packages feed

amazonka-apigatewayv2 (empty) → 2.0

raw patch · 264 files changed

+33503/−0 lines, 264 filesdep +amazonka-apigatewayv2dep +amazonka-coredep +amazonka-test

Dependencies added: amazonka-apigatewayv2, 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 ApiGatewayV2 SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-11-29@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-apigatewayv2)+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.ApiGatewayV2](http://hackage.haskell.org/package/amazonka-apigatewayv2/docs/Amazonka-ApiGatewayV2.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-apigatewayv2` 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-apigatewayv2.cabal view
@@ -0,0 +1,191 @@+cabal-version:      2.2+name:               amazonka-apigatewayv2+version:            2.0+synopsis:           Amazon ApiGatewayV2 SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2018-11-29@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.ApiGatewayV2.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.ApiGatewayV2" 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-apigatewayv2++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.ApiGatewayV2+    Amazonka.ApiGatewayV2.CreateApi+    Amazonka.ApiGatewayV2.CreateApiMapping+    Amazonka.ApiGatewayV2.CreateAuthorizer+    Amazonka.ApiGatewayV2.CreateDeployment+    Amazonka.ApiGatewayV2.CreateDomainName+    Amazonka.ApiGatewayV2.CreateIntegration+    Amazonka.ApiGatewayV2.CreateIntegrationResponse+    Amazonka.ApiGatewayV2.CreateModel+    Amazonka.ApiGatewayV2.CreateRoute+    Amazonka.ApiGatewayV2.CreateRouteResponse+    Amazonka.ApiGatewayV2.CreateStage+    Amazonka.ApiGatewayV2.CreateVpcLink+    Amazonka.ApiGatewayV2.DeleteAccessLogSettings+    Amazonka.ApiGatewayV2.DeleteApi+    Amazonka.ApiGatewayV2.DeleteApiMapping+    Amazonka.ApiGatewayV2.DeleteAuthorizer+    Amazonka.ApiGatewayV2.DeleteCorsConfiguration+    Amazonka.ApiGatewayV2.DeleteDeployment+    Amazonka.ApiGatewayV2.DeleteDomainName+    Amazonka.ApiGatewayV2.DeleteIntegration+    Amazonka.ApiGatewayV2.DeleteIntegrationResponse+    Amazonka.ApiGatewayV2.DeleteModel+    Amazonka.ApiGatewayV2.DeleteRoute+    Amazonka.ApiGatewayV2.DeleteRouteRequestParameter+    Amazonka.ApiGatewayV2.DeleteRouteResponse+    Amazonka.ApiGatewayV2.DeleteRouteSettings+    Amazonka.ApiGatewayV2.DeleteStage+    Amazonka.ApiGatewayV2.DeleteVpcLink+    Amazonka.ApiGatewayV2.ExportApi+    Amazonka.ApiGatewayV2.GetApi+    Amazonka.ApiGatewayV2.GetApiMapping+    Amazonka.ApiGatewayV2.GetApiMappings+    Amazonka.ApiGatewayV2.GetApis+    Amazonka.ApiGatewayV2.GetAuthorizer+    Amazonka.ApiGatewayV2.GetAuthorizers+    Amazonka.ApiGatewayV2.GetDeployment+    Amazonka.ApiGatewayV2.GetDeployments+    Amazonka.ApiGatewayV2.GetDomainName+    Amazonka.ApiGatewayV2.GetDomainNames+    Amazonka.ApiGatewayV2.GetIntegration+    Amazonka.ApiGatewayV2.GetIntegrationResponse+    Amazonka.ApiGatewayV2.GetIntegrationResponses+    Amazonka.ApiGatewayV2.GetIntegrations+    Amazonka.ApiGatewayV2.GetModel+    Amazonka.ApiGatewayV2.GetModels+    Amazonka.ApiGatewayV2.GetModelTemplate+    Amazonka.ApiGatewayV2.GetRoute+    Amazonka.ApiGatewayV2.GetRouteResponse+    Amazonka.ApiGatewayV2.GetRouteResponses+    Amazonka.ApiGatewayV2.GetRoutes+    Amazonka.ApiGatewayV2.GetStage+    Amazonka.ApiGatewayV2.GetStages+    Amazonka.ApiGatewayV2.GetTags+    Amazonka.ApiGatewayV2.GetVpcLink+    Amazonka.ApiGatewayV2.GetVpcLinks+    Amazonka.ApiGatewayV2.ImportApi+    Amazonka.ApiGatewayV2.Lens+    Amazonka.ApiGatewayV2.ReimportApi+    Amazonka.ApiGatewayV2.ResetAuthorizersCache+    Amazonka.ApiGatewayV2.TagResource+    Amazonka.ApiGatewayV2.Types+    Amazonka.ApiGatewayV2.Types.AccessLogSettings+    Amazonka.ApiGatewayV2.Types.Api+    Amazonka.ApiGatewayV2.Types.ApiMapping+    Amazonka.ApiGatewayV2.Types.AuthorizationType+    Amazonka.ApiGatewayV2.Types.Authorizer+    Amazonka.ApiGatewayV2.Types.AuthorizerType+    Amazonka.ApiGatewayV2.Types.ConnectionType+    Amazonka.ApiGatewayV2.Types.ContentHandlingStrategy+    Amazonka.ApiGatewayV2.Types.Cors+    Amazonka.ApiGatewayV2.Types.Deployment+    Amazonka.ApiGatewayV2.Types.DeploymentStatus+    Amazonka.ApiGatewayV2.Types.DomainName+    Amazonka.ApiGatewayV2.Types.DomainNameConfiguration+    Amazonka.ApiGatewayV2.Types.DomainNameStatus+    Amazonka.ApiGatewayV2.Types.EndpointType+    Amazonka.ApiGatewayV2.Types.Integration+    Amazonka.ApiGatewayV2.Types.IntegrationResponse+    Amazonka.ApiGatewayV2.Types.IntegrationType+    Amazonka.ApiGatewayV2.Types.JWTConfiguration+    Amazonka.ApiGatewayV2.Types.LoggingLevel+    Amazonka.ApiGatewayV2.Types.Model+    Amazonka.ApiGatewayV2.Types.MutualTlsAuthentication+    Amazonka.ApiGatewayV2.Types.MutualTlsAuthenticationInput+    Amazonka.ApiGatewayV2.Types.ParameterConstraints+    Amazonka.ApiGatewayV2.Types.PassthroughBehavior+    Amazonka.ApiGatewayV2.Types.ProtocolType+    Amazonka.ApiGatewayV2.Types.Route+    Amazonka.ApiGatewayV2.Types.RouteResponse+    Amazonka.ApiGatewayV2.Types.RouteSettings+    Amazonka.ApiGatewayV2.Types.SecurityPolicy+    Amazonka.ApiGatewayV2.Types.Stage+    Amazonka.ApiGatewayV2.Types.TlsConfig+    Amazonka.ApiGatewayV2.Types.TlsConfigInput+    Amazonka.ApiGatewayV2.Types.VpcLink+    Amazonka.ApiGatewayV2.Types.VpcLinkStatus+    Amazonka.ApiGatewayV2.Types.VpcLinkVersion+    Amazonka.ApiGatewayV2.UntagResource+    Amazonka.ApiGatewayV2.UpdateApi+    Amazonka.ApiGatewayV2.UpdateApiMapping+    Amazonka.ApiGatewayV2.UpdateAuthorizer+    Amazonka.ApiGatewayV2.UpdateDeployment+    Amazonka.ApiGatewayV2.UpdateDomainName+    Amazonka.ApiGatewayV2.UpdateIntegration+    Amazonka.ApiGatewayV2.UpdateIntegrationResponse+    Amazonka.ApiGatewayV2.UpdateModel+    Amazonka.ApiGatewayV2.UpdateRoute+    Amazonka.ApiGatewayV2.UpdateRouteResponse+    Amazonka.ApiGatewayV2.UpdateStage+    Amazonka.ApiGatewayV2.UpdateVpcLink+    Amazonka.ApiGatewayV2.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-apigatewayv2-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.ApiGatewayV2+    Test.Amazonka.ApiGatewayV2.Internal+    Test.Amazonka.Gen.ApiGatewayV2++  build-depends:+    , amazonka-apigatewayv2+    , amazonka-core          >=2.0 && <2.1+    , amazonka-test          >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateApi.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateApiMapping.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateApiMappingResponse.proto view
+ fixture/CreateApiResponse.proto view
+ fixture/CreateAuthorizer.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateAuthorizerResponse.proto view
+ fixture/CreateDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDeploymentResponse.proto view
+ fixture/CreateDomainName.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateDomainNameResponse.proto view
+ fixture/CreateIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateIntegrationResponse.proto view
+ fixture/CreateIntegrationResponse.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateIntegrationResponseResponse.proto view
+ fixture/CreateModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateModelResponse.proto view
+ fixture/CreateRoute.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateRouteResponse.proto view
+ fixture/CreateRouteResponse.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateRouteResponseResponse.proto view
+ fixture/CreateStage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateStageResponse.proto view
+ fixture/CreateVpcLink.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/CreateVpcLinkResponse.proto view
+ fixture/DeleteAccessLogSettings.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteAccessLogSettingsResponse.proto view
+ fixture/DeleteApi.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteApiMapping.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteApiMappingResponse.proto view
+ fixture/DeleteApiResponse.proto view
+ fixture/DeleteAuthorizer.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteAuthorizerResponse.proto view
+ fixture/DeleteCorsConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteCorsConfigurationResponse.proto view
+ fixture/DeleteDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteDeploymentResponse.proto view
+ fixture/DeleteDomainName.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteDomainNameResponse.proto view
+ fixture/DeleteIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteIntegrationResponse.proto view
+ fixture/DeleteIntegrationResponse.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteIntegrationResponseResponse.proto view
+ fixture/DeleteModel.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteModelResponse.proto view
+ fixture/DeleteRoute.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteRouteRequestParameter.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteRouteRequestParameterResponse.proto view
+ fixture/DeleteRouteResponse.proto view
+ fixture/DeleteRouteResponse.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteRouteResponseResponse.proto view
+ fixture/DeleteRouteSettings.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteRouteSettingsResponse.proto view
+ fixture/DeleteStage.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteStageResponse.proto view
+ fixture/DeleteVpcLink.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/DeleteVpcLinkResponse.proto view
+ fixture/ExportApi.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/ExportApiResponse.proto view
+ fixture/GetApi.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetApiMapping.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetApiMappingResponse.proto view
+ fixture/GetApiMappings.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetApiMappingsResponse.proto view
+ fixture/GetApiResponse.proto view
+ fixture/GetApis.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetApisResponse.proto view
+ fixture/GetAuthorizer.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetAuthorizerResponse.proto view
+ fixture/GetAuthorizers.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetAuthorizersResponse.proto view
+ fixture/GetDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetDeploymentResponse.proto view
+ fixture/GetDeployments.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetDeploymentsResponse.proto view
+ fixture/GetDomainName.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetDomainNameResponse.proto view
+ fixture/GetDomainNames.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetDomainNamesResponse.proto view
+ fixture/GetIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetIntegrationResponse.proto view
+ fixture/GetIntegrationResponse.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetIntegrationResponseResponse.proto view
+ fixture/GetIntegrationResponses.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetIntegrationResponsesResponse.proto view
+ fixture/GetIntegrations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetIntegrationsResponse.proto view
+ fixture/GetModel.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetModelResponse.proto view
+ fixture/GetModelTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetModelTemplateResponse.proto view
+ fixture/GetModels.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetModelsResponse.proto view
+ fixture/GetRoute.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetRouteResponse.proto view
+ fixture/GetRouteResponse.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetRouteResponseResponse.proto view
+ fixture/GetRouteResponses.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetRouteResponsesResponse.proto view
+ fixture/GetRoutes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetRoutesResponse.proto view
+ fixture/GetStage.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetStageResponse.proto view
+ fixture/GetStages.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetStagesResponse.proto view
+ fixture/GetTags.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetTagsResponse.proto view
+ fixture/GetVpcLink.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetVpcLinkResponse.proto view
+ fixture/GetVpcLinks.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/GetVpcLinksResponse.proto view
+ fixture/ImportApi.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/ImportApiResponse.proto view
+ fixture/ReimportApi.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/ReimportApiResponse.proto view
+ fixture/ResetAuthorizersCache.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/ResetAuthorizersCacheResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateApi.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateApiMapping.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateApiMappingResponse.proto view
+ fixture/UpdateApiResponse.proto view
+ fixture/UpdateAuthorizer.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateAuthorizerResponse.proto view
+ fixture/UpdateDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateDeploymentResponse.proto view
+ fixture/UpdateDomainName.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateDomainNameResponse.proto view
+ fixture/UpdateIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateIntegrationResponse.proto view
+ fixture/UpdateIntegrationResponse.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateIntegrationResponseResponse.proto view
+ fixture/UpdateModel.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateModelResponse.proto view
+ fixture/UpdateRoute.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateRouteResponse.proto view
+ fixture/UpdateRouteResponse.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateRouteResponseResponse.proto view
+ fixture/UpdateStage.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateStageResponse.proto view
+ fixture/UpdateVpcLink.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  apigateway.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/UpdateVpcLinkResponse.proto view
+ gen/Amazonka/ApiGatewayV2.hs view
@@ -0,0 +1,710 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.ApiGatewayV2+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2018-11-29@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon API Gateway V2+module Amazonka.ApiGatewayV2+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** BadRequestException+    _BadRequestException,++    -- ** ConflictException+    _ConflictException,++    -- ** NotFoundException+    _NotFoundException,++    -- ** TooManyRequestsException+    _TooManyRequestsException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateApi+    CreateApi (CreateApi'),+    newCreateApi,+    CreateApiResponse (CreateApiResponse'),+    newCreateApiResponse,++    -- ** CreateApiMapping+    CreateApiMapping (CreateApiMapping'),+    newCreateApiMapping,+    CreateApiMappingResponse (CreateApiMappingResponse'),+    newCreateApiMappingResponse,++    -- ** CreateAuthorizer+    CreateAuthorizer (CreateAuthorizer'),+    newCreateAuthorizer,+    CreateAuthorizerResponse (CreateAuthorizerResponse'),+    newCreateAuthorizerResponse,++    -- ** CreateDeployment+    CreateDeployment (CreateDeployment'),+    newCreateDeployment,+    CreateDeploymentResponse (CreateDeploymentResponse'),+    newCreateDeploymentResponse,++    -- ** CreateDomainName+    CreateDomainName (CreateDomainName'),+    newCreateDomainName,+    CreateDomainNameResponse (CreateDomainNameResponse'),+    newCreateDomainNameResponse,++    -- ** CreateIntegration+    CreateIntegration (CreateIntegration'),+    newCreateIntegration,+    CreateIntegrationResponse' (CreateIntegrationResponse''),+    newCreateIntegrationResponse',++    -- ** CreateIntegrationResponse+    CreateIntegrationResponse (CreateIntegrationResponse'),+    newCreateIntegrationResponse,+    CreateIntegrationResponseResponse (CreateIntegrationResponseResponse'),+    newCreateIntegrationResponseResponse,++    -- ** CreateModel+    CreateModel (CreateModel'),+    newCreateModel,+    CreateModelResponse (CreateModelResponse'),+    newCreateModelResponse,++    -- ** CreateRoute+    CreateRoute (CreateRoute'),+    newCreateRoute,+    CreateRouteResponse' (CreateRouteResponse''),+    newCreateRouteResponse',++    -- ** CreateRouteResponse+    CreateRouteResponse (CreateRouteResponse'),+    newCreateRouteResponse,+    CreateRouteResponseResponse (CreateRouteResponseResponse'),+    newCreateRouteResponseResponse,++    -- ** CreateStage+    CreateStage (CreateStage'),+    newCreateStage,+    CreateStageResponse (CreateStageResponse'),+    newCreateStageResponse,++    -- ** CreateVpcLink+    CreateVpcLink (CreateVpcLink'),+    newCreateVpcLink,+    CreateVpcLinkResponse (CreateVpcLinkResponse'),+    newCreateVpcLinkResponse,++    -- ** DeleteAccessLogSettings+    DeleteAccessLogSettings (DeleteAccessLogSettings'),+    newDeleteAccessLogSettings,+    DeleteAccessLogSettingsResponse (DeleteAccessLogSettingsResponse'),+    newDeleteAccessLogSettingsResponse,++    -- ** DeleteApi+    DeleteApi (DeleteApi'),+    newDeleteApi,+    DeleteApiResponse (DeleteApiResponse'),+    newDeleteApiResponse,++    -- ** DeleteApiMapping+    DeleteApiMapping (DeleteApiMapping'),+    newDeleteApiMapping,+    DeleteApiMappingResponse (DeleteApiMappingResponse'),+    newDeleteApiMappingResponse,++    -- ** DeleteAuthorizer+    DeleteAuthorizer (DeleteAuthorizer'),+    newDeleteAuthorizer,+    DeleteAuthorizerResponse (DeleteAuthorizerResponse'),+    newDeleteAuthorizerResponse,++    -- ** DeleteCorsConfiguration+    DeleteCorsConfiguration (DeleteCorsConfiguration'),+    newDeleteCorsConfiguration,+    DeleteCorsConfigurationResponse (DeleteCorsConfigurationResponse'),+    newDeleteCorsConfigurationResponse,++    -- ** DeleteDeployment+    DeleteDeployment (DeleteDeployment'),+    newDeleteDeployment,+    DeleteDeploymentResponse (DeleteDeploymentResponse'),+    newDeleteDeploymentResponse,++    -- ** DeleteDomainName+    DeleteDomainName (DeleteDomainName'),+    newDeleteDomainName,+    DeleteDomainNameResponse (DeleteDomainNameResponse'),+    newDeleteDomainNameResponse,++    -- ** DeleteIntegration+    DeleteIntegration (DeleteIntegration'),+    newDeleteIntegration,+    DeleteIntegrationResponse' (DeleteIntegrationResponse''),+    newDeleteIntegrationResponse',++    -- ** DeleteIntegrationResponse+    DeleteIntegrationResponse (DeleteIntegrationResponse'),+    newDeleteIntegrationResponse,+    DeleteIntegrationResponseResponse (DeleteIntegrationResponseResponse'),+    newDeleteIntegrationResponseResponse,++    -- ** DeleteModel+    DeleteModel (DeleteModel'),+    newDeleteModel,+    DeleteModelResponse (DeleteModelResponse'),+    newDeleteModelResponse,++    -- ** DeleteRoute+    DeleteRoute (DeleteRoute'),+    newDeleteRoute,+    DeleteRouteResponse' (DeleteRouteResponse''),+    newDeleteRouteResponse',++    -- ** DeleteRouteRequestParameter+    DeleteRouteRequestParameter (DeleteRouteRequestParameter'),+    newDeleteRouteRequestParameter,+    DeleteRouteRequestParameterResponse (DeleteRouteRequestParameterResponse'),+    newDeleteRouteRequestParameterResponse,++    -- ** DeleteRouteResponse+    DeleteRouteResponse (DeleteRouteResponse'),+    newDeleteRouteResponse,+    DeleteRouteResponseResponse (DeleteRouteResponseResponse'),+    newDeleteRouteResponseResponse,++    -- ** DeleteRouteSettings+    DeleteRouteSettings (DeleteRouteSettings'),+    newDeleteRouteSettings,+    DeleteRouteSettingsResponse (DeleteRouteSettingsResponse'),+    newDeleteRouteSettingsResponse,++    -- ** DeleteStage+    DeleteStage (DeleteStage'),+    newDeleteStage,+    DeleteStageResponse (DeleteStageResponse'),+    newDeleteStageResponse,++    -- ** DeleteVpcLink+    DeleteVpcLink (DeleteVpcLink'),+    newDeleteVpcLink,+    DeleteVpcLinkResponse (DeleteVpcLinkResponse'),+    newDeleteVpcLinkResponse,++    -- ** ExportApi+    ExportApi (ExportApi'),+    newExportApi,+    ExportApiResponse (ExportApiResponse'),+    newExportApiResponse,++    -- ** GetApi+    GetApi (GetApi'),+    newGetApi,+    GetApiResponse (GetApiResponse'),+    newGetApiResponse,++    -- ** GetApiMapping+    GetApiMapping (GetApiMapping'),+    newGetApiMapping,+    GetApiMappingResponse (GetApiMappingResponse'),+    newGetApiMappingResponse,++    -- ** GetApiMappings+    GetApiMappings (GetApiMappings'),+    newGetApiMappings,+    GetApiMappingsResponse (GetApiMappingsResponse'),+    newGetApiMappingsResponse,++    -- ** GetApis (Paginated)+    GetApis (GetApis'),+    newGetApis,+    GetApisResponse (GetApisResponse'),+    newGetApisResponse,++    -- ** GetAuthorizer+    GetAuthorizer (GetAuthorizer'),+    newGetAuthorizer,+    GetAuthorizerResponse (GetAuthorizerResponse'),+    newGetAuthorizerResponse,++    -- ** GetAuthorizers (Paginated)+    GetAuthorizers (GetAuthorizers'),+    newGetAuthorizers,+    GetAuthorizersResponse (GetAuthorizersResponse'),+    newGetAuthorizersResponse,++    -- ** GetDeployment+    GetDeployment (GetDeployment'),+    newGetDeployment,+    GetDeploymentResponse (GetDeploymentResponse'),+    newGetDeploymentResponse,++    -- ** GetDeployments (Paginated)+    GetDeployments (GetDeployments'),+    newGetDeployments,+    GetDeploymentsResponse (GetDeploymentsResponse'),+    newGetDeploymentsResponse,++    -- ** GetDomainName+    GetDomainName (GetDomainName'),+    newGetDomainName,+    GetDomainNameResponse (GetDomainNameResponse'),+    newGetDomainNameResponse,++    -- ** GetDomainNames (Paginated)+    GetDomainNames (GetDomainNames'),+    newGetDomainNames,+    GetDomainNamesResponse (GetDomainNamesResponse'),+    newGetDomainNamesResponse,++    -- ** GetIntegration+    GetIntegration (GetIntegration'),+    newGetIntegration,+    GetIntegrationResponse' (GetIntegrationResponse''),+    newGetIntegrationResponse',++    -- ** GetIntegrationResponse+    GetIntegrationResponse (GetIntegrationResponse'),+    newGetIntegrationResponse,+    GetIntegrationResponseResponse (GetIntegrationResponseResponse'),+    newGetIntegrationResponseResponse,++    -- ** GetIntegrationResponses (Paginated)+    GetIntegrationResponses (GetIntegrationResponses'),+    newGetIntegrationResponses,+    GetIntegrationResponsesResponse (GetIntegrationResponsesResponse'),+    newGetIntegrationResponsesResponse,++    -- ** GetIntegrations (Paginated)+    GetIntegrations (GetIntegrations'),+    newGetIntegrations,+    GetIntegrationsResponse (GetIntegrationsResponse'),+    newGetIntegrationsResponse,++    -- ** GetModel+    GetModel (GetModel'),+    newGetModel,+    GetModelResponse (GetModelResponse'),+    newGetModelResponse,++    -- ** GetModelTemplate+    GetModelTemplate (GetModelTemplate'),+    newGetModelTemplate,+    GetModelTemplateResponse (GetModelTemplateResponse'),+    newGetModelTemplateResponse,++    -- ** GetModels (Paginated)+    GetModels (GetModels'),+    newGetModels,+    GetModelsResponse (GetModelsResponse'),+    newGetModelsResponse,++    -- ** GetRoute+    GetRoute (GetRoute'),+    newGetRoute,+    GetRouteResponse' (GetRouteResponse''),+    newGetRouteResponse',++    -- ** GetRouteResponse+    GetRouteResponse (GetRouteResponse'),+    newGetRouteResponse,+    GetRouteResponseResponse (GetRouteResponseResponse'),+    newGetRouteResponseResponse,++    -- ** GetRouteResponses (Paginated)+    GetRouteResponses (GetRouteResponses'),+    newGetRouteResponses,+    GetRouteResponsesResponse (GetRouteResponsesResponse'),+    newGetRouteResponsesResponse,++    -- ** GetRoutes (Paginated)+    GetRoutes (GetRoutes'),+    newGetRoutes,+    GetRoutesResponse (GetRoutesResponse'),+    newGetRoutesResponse,++    -- ** GetStage+    GetStage (GetStage'),+    newGetStage,+    GetStageResponse (GetStageResponse'),+    newGetStageResponse,++    -- ** GetStages (Paginated)+    GetStages (GetStages'),+    newGetStages,+    GetStagesResponse (GetStagesResponse'),+    newGetStagesResponse,++    -- ** GetTags+    GetTags (GetTags'),+    newGetTags,+    GetTagsResponse (GetTagsResponse'),+    newGetTagsResponse,++    -- ** GetVpcLink+    GetVpcLink (GetVpcLink'),+    newGetVpcLink,+    GetVpcLinkResponse (GetVpcLinkResponse'),+    newGetVpcLinkResponse,++    -- ** GetVpcLinks+    GetVpcLinks (GetVpcLinks'),+    newGetVpcLinks,+    GetVpcLinksResponse (GetVpcLinksResponse'),+    newGetVpcLinksResponse,++    -- ** ImportApi+    ImportApi (ImportApi'),+    newImportApi,+    ImportApiResponse (ImportApiResponse'),+    newImportApiResponse,++    -- ** ReimportApi+    ReimportApi (ReimportApi'),+    newReimportApi,+    ReimportApiResponse (ReimportApiResponse'),+    newReimportApiResponse,++    -- ** ResetAuthorizersCache+    ResetAuthorizersCache (ResetAuthorizersCache'),+    newResetAuthorizersCache,+    ResetAuthorizersCacheResponse (ResetAuthorizersCacheResponse'),+    newResetAuthorizersCacheResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateApi+    UpdateApi (UpdateApi'),+    newUpdateApi,+    UpdateApiResponse (UpdateApiResponse'),+    newUpdateApiResponse,++    -- ** UpdateApiMapping+    UpdateApiMapping (UpdateApiMapping'),+    newUpdateApiMapping,+    UpdateApiMappingResponse (UpdateApiMappingResponse'),+    newUpdateApiMappingResponse,++    -- ** UpdateAuthorizer+    UpdateAuthorizer (UpdateAuthorizer'),+    newUpdateAuthorizer,+    UpdateAuthorizerResponse (UpdateAuthorizerResponse'),+    newUpdateAuthorizerResponse,++    -- ** UpdateDeployment+    UpdateDeployment (UpdateDeployment'),+    newUpdateDeployment,+    UpdateDeploymentResponse (UpdateDeploymentResponse'),+    newUpdateDeploymentResponse,++    -- ** UpdateDomainName+    UpdateDomainName (UpdateDomainName'),+    newUpdateDomainName,+    UpdateDomainNameResponse (UpdateDomainNameResponse'),+    newUpdateDomainNameResponse,++    -- ** UpdateIntegration+    UpdateIntegration (UpdateIntegration'),+    newUpdateIntegration,+    UpdateIntegrationResponse' (UpdateIntegrationResponse''),+    newUpdateIntegrationResponse',++    -- ** UpdateIntegrationResponse+    UpdateIntegrationResponse (UpdateIntegrationResponse'),+    newUpdateIntegrationResponse,+    UpdateIntegrationResponseResponse (UpdateIntegrationResponseResponse'),+    newUpdateIntegrationResponseResponse,++    -- ** UpdateModel+    UpdateModel (UpdateModel'),+    newUpdateModel,+    UpdateModelResponse (UpdateModelResponse'),+    newUpdateModelResponse,++    -- ** UpdateRoute+    UpdateRoute (UpdateRoute'),+    newUpdateRoute,+    UpdateRouteResponse' (UpdateRouteResponse''),+    newUpdateRouteResponse',++    -- ** UpdateRouteResponse+    UpdateRouteResponse (UpdateRouteResponse'),+    newUpdateRouteResponse,+    UpdateRouteResponseResponse (UpdateRouteResponseResponse'),+    newUpdateRouteResponseResponse,++    -- ** UpdateStage+    UpdateStage (UpdateStage'),+    newUpdateStage,+    UpdateStageResponse (UpdateStageResponse'),+    newUpdateStageResponse,++    -- ** UpdateVpcLink+    UpdateVpcLink (UpdateVpcLink'),+    newUpdateVpcLink,+    UpdateVpcLinkResponse (UpdateVpcLinkResponse'),+    newUpdateVpcLinkResponse,++    -- * Types++    -- ** AuthorizationType+    AuthorizationType (..),++    -- ** AuthorizerType+    AuthorizerType (..),++    -- ** ConnectionType+    ConnectionType (..),++    -- ** ContentHandlingStrategy+    ContentHandlingStrategy (..),++    -- ** DeploymentStatus+    DeploymentStatus (..),++    -- ** DomainNameStatus+    DomainNameStatus (..),++    -- ** EndpointType+    EndpointType (..),++    -- ** IntegrationType+    IntegrationType (..),++    -- ** LoggingLevel+    LoggingLevel (..),++    -- ** PassthroughBehavior+    PassthroughBehavior (..),++    -- ** ProtocolType+    ProtocolType (..),++    -- ** SecurityPolicy+    SecurityPolicy (..),++    -- ** VpcLinkStatus+    VpcLinkStatus (..),++    -- ** VpcLinkVersion+    VpcLinkVersion (..),++    -- ** AccessLogSettings+    AccessLogSettings (AccessLogSettings'),+    newAccessLogSettings,++    -- ** Api+    Api (Api'),+    newApi,++    -- ** ApiMapping+    ApiMapping (ApiMapping'),+    newApiMapping,++    -- ** Authorizer+    Authorizer (Authorizer'),+    newAuthorizer,++    -- ** Cors+    Cors (Cors'),+    newCors,++    -- ** Deployment+    Deployment (Deployment'),+    newDeployment,++    -- ** DomainName+    DomainName (DomainName'),+    newDomainName,++    -- ** DomainNameConfiguration+    DomainNameConfiguration (DomainNameConfiguration'),+    newDomainNameConfiguration,++    -- ** Integration+    Integration (Integration'),+    newIntegration,++    -- ** IntegrationResponse+    IntegrationResponse (IntegrationResponse'),+    newIntegrationResponse,++    -- ** JWTConfiguration+    JWTConfiguration (JWTConfiguration'),+    newJWTConfiguration,++    -- ** Model+    Model (Model'),+    newModel,++    -- ** MutualTlsAuthentication+    MutualTlsAuthentication (MutualTlsAuthentication'),+    newMutualTlsAuthentication,++    -- ** MutualTlsAuthenticationInput+    MutualTlsAuthenticationInput (MutualTlsAuthenticationInput'),+    newMutualTlsAuthenticationInput,++    -- ** ParameterConstraints+    ParameterConstraints (ParameterConstraints'),+    newParameterConstraints,++    -- ** Route+    Route (Route'),+    newRoute,++    -- ** RouteResponse+    RouteResponse (RouteResponse'),+    newRouteResponse,++    -- ** RouteSettings+    RouteSettings (RouteSettings'),+    newRouteSettings,++    -- ** Stage+    Stage (Stage'),+    newStage,++    -- ** TlsConfig+    TlsConfig (TlsConfig'),+    newTlsConfig,++    -- ** TlsConfigInput+    TlsConfigInput (TlsConfigInput'),+    newTlsConfigInput,++    -- ** VpcLink+    VpcLink (VpcLink'),+    newVpcLink,+  )+where++import Amazonka.ApiGatewayV2.CreateApi+import Amazonka.ApiGatewayV2.CreateApiMapping+import Amazonka.ApiGatewayV2.CreateAuthorizer+import Amazonka.ApiGatewayV2.CreateDeployment+import Amazonka.ApiGatewayV2.CreateDomainName+import Amazonka.ApiGatewayV2.CreateIntegration+import Amazonka.ApiGatewayV2.CreateIntegrationResponse+import Amazonka.ApiGatewayV2.CreateModel+import Amazonka.ApiGatewayV2.CreateRoute+import Amazonka.ApiGatewayV2.CreateRouteResponse+import Amazonka.ApiGatewayV2.CreateStage+import Amazonka.ApiGatewayV2.CreateVpcLink+import Amazonka.ApiGatewayV2.DeleteAccessLogSettings+import Amazonka.ApiGatewayV2.DeleteApi+import Amazonka.ApiGatewayV2.DeleteApiMapping+import Amazonka.ApiGatewayV2.DeleteAuthorizer+import Amazonka.ApiGatewayV2.DeleteCorsConfiguration+import Amazonka.ApiGatewayV2.DeleteDeployment+import Amazonka.ApiGatewayV2.DeleteDomainName+import Amazonka.ApiGatewayV2.DeleteIntegration+import Amazonka.ApiGatewayV2.DeleteIntegrationResponse+import Amazonka.ApiGatewayV2.DeleteModel+import Amazonka.ApiGatewayV2.DeleteRoute+import Amazonka.ApiGatewayV2.DeleteRouteRequestParameter+import Amazonka.ApiGatewayV2.DeleteRouteResponse+import Amazonka.ApiGatewayV2.DeleteRouteSettings+import Amazonka.ApiGatewayV2.DeleteStage+import Amazonka.ApiGatewayV2.DeleteVpcLink+import Amazonka.ApiGatewayV2.ExportApi+import Amazonka.ApiGatewayV2.GetApi+import Amazonka.ApiGatewayV2.GetApiMapping+import Amazonka.ApiGatewayV2.GetApiMappings+import Amazonka.ApiGatewayV2.GetApis+import Amazonka.ApiGatewayV2.GetAuthorizer+import Amazonka.ApiGatewayV2.GetAuthorizers+import Amazonka.ApiGatewayV2.GetDeployment+import Amazonka.ApiGatewayV2.GetDeployments+import Amazonka.ApiGatewayV2.GetDomainName+import Amazonka.ApiGatewayV2.GetDomainNames+import Amazonka.ApiGatewayV2.GetIntegration+import Amazonka.ApiGatewayV2.GetIntegrationResponse+import Amazonka.ApiGatewayV2.GetIntegrationResponses+import Amazonka.ApiGatewayV2.GetIntegrations+import Amazonka.ApiGatewayV2.GetModel+import Amazonka.ApiGatewayV2.GetModelTemplate+import Amazonka.ApiGatewayV2.GetModels+import Amazonka.ApiGatewayV2.GetRoute+import Amazonka.ApiGatewayV2.GetRouteResponse+import Amazonka.ApiGatewayV2.GetRouteResponses+import Amazonka.ApiGatewayV2.GetRoutes+import Amazonka.ApiGatewayV2.GetStage+import Amazonka.ApiGatewayV2.GetStages+import Amazonka.ApiGatewayV2.GetTags+import Amazonka.ApiGatewayV2.GetVpcLink+import Amazonka.ApiGatewayV2.GetVpcLinks+import Amazonka.ApiGatewayV2.ImportApi+import Amazonka.ApiGatewayV2.Lens+import Amazonka.ApiGatewayV2.ReimportApi+import Amazonka.ApiGatewayV2.ResetAuthorizersCache+import Amazonka.ApiGatewayV2.TagResource+import Amazonka.ApiGatewayV2.Types+import Amazonka.ApiGatewayV2.UntagResource+import Amazonka.ApiGatewayV2.UpdateApi+import Amazonka.ApiGatewayV2.UpdateApiMapping+import Amazonka.ApiGatewayV2.UpdateAuthorizer+import Amazonka.ApiGatewayV2.UpdateDeployment+import Amazonka.ApiGatewayV2.UpdateDomainName+import Amazonka.ApiGatewayV2.UpdateIntegration+import Amazonka.ApiGatewayV2.UpdateIntegrationResponse+import Amazonka.ApiGatewayV2.UpdateModel+import Amazonka.ApiGatewayV2.UpdateRoute+import Amazonka.ApiGatewayV2.UpdateRouteResponse+import Amazonka.ApiGatewayV2.UpdateStage+import Amazonka.ApiGatewayV2.UpdateVpcLink+import Amazonka.ApiGatewayV2.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 'ApiGatewayV2'.++-- $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/ApiGatewayV2/CreateApi.hs view
@@ -0,0 +1,648 @@+{-# 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.ApiGatewayV2.CreateApi+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Api resource.+module Amazonka.ApiGatewayV2.CreateApi+  ( -- * Creating a Request+    CreateApi (..),+    newCreateApi,++    -- * Request Lenses+    createApi_apiKeySelectionExpression,+    createApi_corsConfiguration,+    createApi_credentialsArn,+    createApi_description,+    createApi_disableExecuteApiEndpoint,+    createApi_disableSchemaValidation,+    createApi_routeKey,+    createApi_routeSelectionExpression,+    createApi_tags,+    createApi_target,+    createApi_version,+    createApi_protocolType,+    createApi_name,++    -- * Destructuring the Response+    CreateApiResponse (..),+    newCreateApiResponse,++    -- * Response Lenses+    createApiResponse_apiEndpoint,+    createApiResponse_apiGatewayManaged,+    createApiResponse_apiId,+    createApiResponse_apiKeySelectionExpression,+    createApiResponse_corsConfiguration,+    createApiResponse_createdDate,+    createApiResponse_description,+    createApiResponse_disableExecuteApiEndpoint,+    createApiResponse_disableSchemaValidation,+    createApiResponse_importInfo,+    createApiResponse_name,+    createApiResponse_protocolType,+    createApiResponse_routeSelectionExpression,+    createApiResponse_tags,+    createApiResponse_version,+    createApiResponse_warnings,+    createApiResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new Api resource to represent an API.+--+-- /See:/ 'newCreateApi' smart constructor.+data CreateApi = CreateApi'+  { -- | An API key selection expression. Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+    apiKeySelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A CORS configuration. Supported only for HTTP APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html Configuring CORS>+    -- for more information.+    corsConfiguration :: Prelude.Maybe Cors,+    -- | This property is part of quick create. It specifies the credentials+    -- required for the integration, if any. For a Lambda integration, three+    -- options are available. To specify an IAM Role for API Gateway to assume,+    -- use the role\'s Amazon Resource Name (ARN). To require that the+    -- caller\'s identity be passed through from the request, specify+    -- arn:aws:iam::*:user\/*. To use resource-based permissions on supported+    -- AWS services, specify null. Currently, this property is not used for+    -- HTTP integrations. Supported only for HTTP APIs.+    credentialsArn :: Prelude.Maybe Prelude.Text,+    -- | The description of the API.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether clients can invoke your API by using the default+    -- execute-api endpoint. By default, clients can invoke your API with the+    -- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+    -- To require that clients use a custom domain name to invoke your API,+    -- disable the default endpoint.+    disableExecuteApiEndpoint :: Prelude.Maybe Prelude.Bool,+    -- | Avoid validating models when creating a deployment. Supported only for+    -- WebSocket APIs.+    disableSchemaValidation :: Prelude.Maybe Prelude.Bool,+    -- | This property is part of quick create. If you don\'t specify a routeKey,+    -- a default route of $default is created. The $default route acts as a+    -- catch-all for any request made to your API, for a particular stage. The+    -- \$default route key can\'t be modified. You can add routes after creating+    -- the API, and you can update the route keys of additional routes.+    -- Supported only for HTTP APIs.+    routeKey :: Prelude.Maybe Prelude.Text,+    -- | The route selection expression for the API. For HTTP APIs, the+    -- routeSelectionExpression must be ${request.method} ${request.path}. If+    -- not provided, this will be the default for HTTP APIs. This property is+    -- required for WebSocket APIs.+    routeSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The collection of tags. Each tag element is associated with a given+    -- resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | This property is part of quick create. Quick create produces an API with+    -- an integration, a default catch-all route, and a default stage which is+    -- configured to automatically deploy changes. For HTTP integrations,+    -- specify a fully qualified URL. For Lambda integrations, specify a+    -- function ARN. The type of the integration will be HTTP_PROXY or+    -- AWS_PROXY, respectively. Supported only for HTTP APIs.+    target :: Prelude.Maybe Prelude.Text,+    -- | A version identifier for the API.+    version :: Prelude.Maybe Prelude.Text,+    -- | The API protocol.+    protocolType :: ProtocolType,+    -- | The name of the API.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApi' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiKeySelectionExpression', 'createApi_apiKeySelectionExpression' - An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+--+-- 'corsConfiguration', 'createApi_corsConfiguration' - A CORS configuration. Supported only for HTTP APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html Configuring CORS>+-- for more information.+--+-- 'credentialsArn', 'createApi_credentialsArn' - This property is part of quick create. It specifies the credentials+-- required for the integration, if any. For a Lambda integration, three+-- options are available. To specify an IAM Role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To require that the+-- caller\'s identity be passed through from the request, specify+-- arn:aws:iam::*:user\/*. To use resource-based permissions on supported+-- AWS services, specify null. Currently, this property is not used for+-- HTTP integrations. Supported only for HTTP APIs.+--+-- 'description', 'createApi_description' - The description of the API.+--+-- 'disableExecuteApiEndpoint', 'createApi_disableExecuteApiEndpoint' - Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+--+-- 'disableSchemaValidation', 'createApi_disableSchemaValidation' - Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+--+-- 'routeKey', 'createApi_routeKey' - This property is part of quick create. If you don\'t specify a routeKey,+-- a default route of $default is created. The $default route acts as a+-- catch-all for any request made to your API, for a particular stage. The+-- \$default route key can\'t be modified. You can add routes after creating+-- the API, and you can update the route keys of additional routes.+-- Supported only for HTTP APIs.+--+-- 'routeSelectionExpression', 'createApi_routeSelectionExpression' - The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+--+-- 'tags', 'createApi_tags' - The collection of tags. Each tag element is associated with a given+-- resource.+--+-- 'target', 'createApi_target' - This property is part of quick create. Quick create produces an API with+-- an integration, a default catch-all route, and a default stage which is+-- configured to automatically deploy changes. For HTTP integrations,+-- specify a fully qualified URL. For Lambda integrations, specify a+-- function ARN. The type of the integration will be HTTP_PROXY or+-- AWS_PROXY, respectively. Supported only for HTTP APIs.+--+-- 'version', 'createApi_version' - A version identifier for the API.+--+-- 'protocolType', 'createApi_protocolType' - The API protocol.+--+-- 'name', 'createApi_name' - The name of the API.+newCreateApi ::+  -- | 'protocolType'+  ProtocolType ->+  -- | 'name'+  Prelude.Text ->+  CreateApi+newCreateApi pProtocolType_ pName_ =+  CreateApi'+    { apiKeySelectionExpression =+        Prelude.Nothing,+      corsConfiguration = Prelude.Nothing,+      credentialsArn = Prelude.Nothing,+      description = Prelude.Nothing,+      disableExecuteApiEndpoint = Prelude.Nothing,+      disableSchemaValidation = Prelude.Nothing,+      routeKey = Prelude.Nothing,+      routeSelectionExpression = Prelude.Nothing,+      tags = Prelude.Nothing,+      target = Prelude.Nothing,+      version = Prelude.Nothing,+      protocolType = pProtocolType_,+      name = pName_+    }++-- | An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+createApi_apiKeySelectionExpression :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Text)+createApi_apiKeySelectionExpression = Lens.lens (\CreateApi' {apiKeySelectionExpression} -> apiKeySelectionExpression) (\s@CreateApi' {} a -> s {apiKeySelectionExpression = a} :: CreateApi)++-- | A CORS configuration. Supported only for HTTP APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html Configuring CORS>+-- for more information.+createApi_corsConfiguration :: Lens.Lens' CreateApi (Prelude.Maybe Cors)+createApi_corsConfiguration = Lens.lens (\CreateApi' {corsConfiguration} -> corsConfiguration) (\s@CreateApi' {} a -> s {corsConfiguration = a} :: CreateApi)++-- | This property is part of quick create. It specifies the credentials+-- required for the integration, if any. For a Lambda integration, three+-- options are available. To specify an IAM Role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To require that the+-- caller\'s identity be passed through from the request, specify+-- arn:aws:iam::*:user\/*. To use resource-based permissions on supported+-- AWS services, specify null. Currently, this property is not used for+-- HTTP integrations. Supported only for HTTP APIs.+createApi_credentialsArn :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Text)+createApi_credentialsArn = Lens.lens (\CreateApi' {credentialsArn} -> credentialsArn) (\s@CreateApi' {} a -> s {credentialsArn = a} :: CreateApi)++-- | The description of the API.+createApi_description :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Text)+createApi_description = Lens.lens (\CreateApi' {description} -> description) (\s@CreateApi' {} a -> s {description = a} :: CreateApi)++-- | Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+createApi_disableExecuteApiEndpoint :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Bool)+createApi_disableExecuteApiEndpoint = Lens.lens (\CreateApi' {disableExecuteApiEndpoint} -> disableExecuteApiEndpoint) (\s@CreateApi' {} a -> s {disableExecuteApiEndpoint = a} :: CreateApi)++-- | Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+createApi_disableSchemaValidation :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Bool)+createApi_disableSchemaValidation = Lens.lens (\CreateApi' {disableSchemaValidation} -> disableSchemaValidation) (\s@CreateApi' {} a -> s {disableSchemaValidation = a} :: CreateApi)++-- | This property is part of quick create. If you don\'t specify a routeKey,+-- a default route of $default is created. The $default route acts as a+-- catch-all for any request made to your API, for a particular stage. The+-- \$default route key can\'t be modified. You can add routes after creating+-- the API, and you can update the route keys of additional routes.+-- Supported only for HTTP APIs.+createApi_routeKey :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Text)+createApi_routeKey = Lens.lens (\CreateApi' {routeKey} -> routeKey) (\s@CreateApi' {} a -> s {routeKey = a} :: CreateApi)++-- | The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+createApi_routeSelectionExpression :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Text)+createApi_routeSelectionExpression = Lens.lens (\CreateApi' {routeSelectionExpression} -> routeSelectionExpression) (\s@CreateApi' {} a -> s {routeSelectionExpression = a} :: CreateApi)++-- | The collection of tags. Each tag element is associated with a given+-- resource.+createApi_tags :: Lens.Lens' CreateApi (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createApi_tags = Lens.lens (\CreateApi' {tags} -> tags) (\s@CreateApi' {} a -> s {tags = a} :: CreateApi) Prelude.. Lens.mapping Lens.coerced++-- | This property is part of quick create. Quick create produces an API with+-- an integration, a default catch-all route, and a default stage which is+-- configured to automatically deploy changes. For HTTP integrations,+-- specify a fully qualified URL. For Lambda integrations, specify a+-- function ARN. The type of the integration will be HTTP_PROXY or+-- AWS_PROXY, respectively. Supported only for HTTP APIs.+createApi_target :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Text)+createApi_target = Lens.lens (\CreateApi' {target} -> target) (\s@CreateApi' {} a -> s {target = a} :: CreateApi)++-- | A version identifier for the API.+createApi_version :: Lens.Lens' CreateApi (Prelude.Maybe Prelude.Text)+createApi_version = Lens.lens (\CreateApi' {version} -> version) (\s@CreateApi' {} a -> s {version = a} :: CreateApi)++-- | The API protocol.+createApi_protocolType :: Lens.Lens' CreateApi ProtocolType+createApi_protocolType = Lens.lens (\CreateApi' {protocolType} -> protocolType) (\s@CreateApi' {} a -> s {protocolType = a} :: CreateApi)++-- | The name of the API.+createApi_name :: Lens.Lens' CreateApi Prelude.Text+createApi_name = Lens.lens (\CreateApi' {name} -> name) (\s@CreateApi' {} a -> s {name = a} :: CreateApi)++instance Core.AWSRequest CreateApi where+  type AWSResponse CreateApi = CreateApiResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateApiResponse'+            Prelude.<$> (x Data..?> "apiEndpoint")+            Prelude.<*> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "apiId")+            Prelude.<*> (x Data..?> "apiKeySelectionExpression")+            Prelude.<*> (x Data..?> "corsConfiguration")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "disableExecuteApiEndpoint")+            Prelude.<*> (x Data..?> "disableSchemaValidation")+            Prelude.<*> (x Data..?> "importInfo" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "protocolType")+            Prelude.<*> (x Data..?> "routeSelectionExpression")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (x Data..?> "warnings" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateApi where+  hashWithSalt _salt CreateApi' {..} =+    _salt+      `Prelude.hashWithSalt` apiKeySelectionExpression+      `Prelude.hashWithSalt` corsConfiguration+      `Prelude.hashWithSalt` credentialsArn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` disableExecuteApiEndpoint+      `Prelude.hashWithSalt` disableSchemaValidation+      `Prelude.hashWithSalt` routeKey+      `Prelude.hashWithSalt` routeSelectionExpression+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` target+      `Prelude.hashWithSalt` version+      `Prelude.hashWithSalt` protocolType+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateApi where+  rnf CreateApi' {..} =+    Prelude.rnf apiKeySelectionExpression+      `Prelude.seq` Prelude.rnf corsConfiguration+      `Prelude.seq` Prelude.rnf credentialsArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf disableExecuteApiEndpoint+      `Prelude.seq` Prelude.rnf disableSchemaValidation+      `Prelude.seq` Prelude.rnf routeKey+      `Prelude.seq` Prelude.rnf routeSelectionExpression+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateApi where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateApi where+  toJSON CreateApi' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("apiKeySelectionExpression" Data..=)+              Prelude.<$> apiKeySelectionExpression,+            ("corsConfiguration" Data..=)+              Prelude.<$> corsConfiguration,+            ("credentialsArn" Data..=)+              Prelude.<$> credentialsArn,+            ("description" Data..=) Prelude.<$> description,+            ("disableExecuteApiEndpoint" Data..=)+              Prelude.<$> disableExecuteApiEndpoint,+            ("disableSchemaValidation" Data..=)+              Prelude.<$> disableSchemaValidation,+            ("routeKey" Data..=) Prelude.<$> routeKey,+            ("routeSelectionExpression" Data..=)+              Prelude.<$> routeSelectionExpression,+            ("tags" Data..=) Prelude.<$> tags,+            ("target" Data..=) Prelude.<$> target,+            ("version" Data..=) Prelude.<$> version,+            Prelude.Just ("protocolType" Data..= protocolType),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateApi where+  toPath = Prelude.const "/v2/apis"++instance Data.ToQuery CreateApi where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateApiResponse' smart constructor.+data CreateApiResponse = CreateApiResponse'+  { -- | The URI of the API, of the form+    -- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+    -- appended to this URI to form a complete path to a deployed API stage.+    apiEndpoint :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether an API is managed by API Gateway. You can\'t update or+    -- delete a managed API by using API Gateway. A managed API can be deleted+    -- only through the tooling or service that created it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The API ID.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | An API key selection expression. Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+    apiKeySelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A CORS configuration. Supported only for HTTP APIs.+    corsConfiguration :: Prelude.Maybe Cors,+    -- | The timestamp when the API was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The description of the API.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether clients can invoke your API by using the default+    -- execute-api endpoint. By default, clients can invoke your API with the+    -- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+    -- To require that clients use a custom domain name to invoke your API,+    -- disable the default endpoint.+    disableExecuteApiEndpoint :: Prelude.Maybe Prelude.Bool,+    -- | Avoid validating models when creating a deployment. Supported only for+    -- WebSocket APIs.+    disableSchemaValidation :: Prelude.Maybe Prelude.Bool,+    -- | The validation information during API import. This may include+    -- particular properties of your OpenAPI definition which are ignored+    -- during import. Supported only for HTTP APIs.+    importInfo :: Prelude.Maybe [Prelude.Text],+    -- | The name of the API.+    name :: Prelude.Maybe Prelude.Text,+    -- | The API protocol.+    protocolType :: Prelude.Maybe ProtocolType,+    -- | The route selection expression for the API. For HTTP APIs, the+    -- routeSelectionExpression must be ${request.method} ${request.path}. If+    -- not provided, this will be the default for HTTP APIs. This property is+    -- required for WebSocket APIs.+    routeSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A collection of tags associated with the API.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A version identifier for the API.+    version :: Prelude.Maybe Prelude.Text,+    -- | The warning messages reported when failonwarnings is turned on during+    -- API import.+    warnings :: Prelude.Maybe [Prelude.Text],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApiResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiEndpoint', 'createApiResponse_apiEndpoint' - The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+--+-- 'apiGatewayManaged', 'createApiResponse_apiGatewayManaged' - Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+--+-- 'apiId', 'createApiResponse_apiId' - The API ID.+--+-- 'apiKeySelectionExpression', 'createApiResponse_apiKeySelectionExpression' - An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+--+-- 'corsConfiguration', 'createApiResponse_corsConfiguration' - A CORS configuration. Supported only for HTTP APIs.+--+-- 'createdDate', 'createApiResponse_createdDate' - The timestamp when the API was created.+--+-- 'description', 'createApiResponse_description' - The description of the API.+--+-- 'disableExecuteApiEndpoint', 'createApiResponse_disableExecuteApiEndpoint' - Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+--+-- 'disableSchemaValidation', 'createApiResponse_disableSchemaValidation' - Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+--+-- 'importInfo', 'createApiResponse_importInfo' - The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+--+-- 'name', 'createApiResponse_name' - The name of the API.+--+-- 'protocolType', 'createApiResponse_protocolType' - The API protocol.+--+-- 'routeSelectionExpression', 'createApiResponse_routeSelectionExpression' - The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+--+-- 'tags', 'createApiResponse_tags' - A collection of tags associated with the API.+--+-- 'version', 'createApiResponse_version' - A version identifier for the API.+--+-- 'warnings', 'createApiResponse_warnings' - The warning messages reported when failonwarnings is turned on during+-- API import.+--+-- 'httpStatus', 'createApiResponse_httpStatus' - The response's http status code.+newCreateApiResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateApiResponse+newCreateApiResponse pHttpStatus_ =+  CreateApiResponse'+    { apiEndpoint = Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      apiId = Prelude.Nothing,+      apiKeySelectionExpression = Prelude.Nothing,+      corsConfiguration = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      disableExecuteApiEndpoint = Prelude.Nothing,+      disableSchemaValidation = Prelude.Nothing,+      importInfo = Prelude.Nothing,+      name = Prelude.Nothing,+      protocolType = Prelude.Nothing,+      routeSelectionExpression = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      warnings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+createApiResponse_apiEndpoint :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Text)+createApiResponse_apiEndpoint = Lens.lens (\CreateApiResponse' {apiEndpoint} -> apiEndpoint) (\s@CreateApiResponse' {} a -> s {apiEndpoint = a} :: CreateApiResponse)++-- | Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+createApiResponse_apiGatewayManaged :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Bool)+createApiResponse_apiGatewayManaged = Lens.lens (\CreateApiResponse' {apiGatewayManaged} -> apiGatewayManaged) (\s@CreateApiResponse' {} a -> s {apiGatewayManaged = a} :: CreateApiResponse)++-- | The API ID.+createApiResponse_apiId :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Text)+createApiResponse_apiId = Lens.lens (\CreateApiResponse' {apiId} -> apiId) (\s@CreateApiResponse' {} a -> s {apiId = a} :: CreateApiResponse)++-- | An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+createApiResponse_apiKeySelectionExpression :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Text)+createApiResponse_apiKeySelectionExpression = Lens.lens (\CreateApiResponse' {apiKeySelectionExpression} -> apiKeySelectionExpression) (\s@CreateApiResponse' {} a -> s {apiKeySelectionExpression = a} :: CreateApiResponse)++-- | A CORS configuration. Supported only for HTTP APIs.+createApiResponse_corsConfiguration :: Lens.Lens' CreateApiResponse (Prelude.Maybe Cors)+createApiResponse_corsConfiguration = Lens.lens (\CreateApiResponse' {corsConfiguration} -> corsConfiguration) (\s@CreateApiResponse' {} a -> s {corsConfiguration = a} :: CreateApiResponse)++-- | The timestamp when the API was created.+createApiResponse_createdDate :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.UTCTime)+createApiResponse_createdDate = Lens.lens (\CreateApiResponse' {createdDate} -> createdDate) (\s@CreateApiResponse' {} a -> s {createdDate = a} :: CreateApiResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the API.+createApiResponse_description :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Text)+createApiResponse_description = Lens.lens (\CreateApiResponse' {description} -> description) (\s@CreateApiResponse' {} a -> s {description = a} :: CreateApiResponse)++-- | Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+createApiResponse_disableExecuteApiEndpoint :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Bool)+createApiResponse_disableExecuteApiEndpoint = Lens.lens (\CreateApiResponse' {disableExecuteApiEndpoint} -> disableExecuteApiEndpoint) (\s@CreateApiResponse' {} a -> s {disableExecuteApiEndpoint = a} :: CreateApiResponse)++-- | Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+createApiResponse_disableSchemaValidation :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Bool)+createApiResponse_disableSchemaValidation = Lens.lens (\CreateApiResponse' {disableSchemaValidation} -> disableSchemaValidation) (\s@CreateApiResponse' {} a -> s {disableSchemaValidation = a} :: CreateApiResponse)++-- | The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+createApiResponse_importInfo :: Lens.Lens' CreateApiResponse (Prelude.Maybe [Prelude.Text])+createApiResponse_importInfo = Lens.lens (\CreateApiResponse' {importInfo} -> importInfo) (\s@CreateApiResponse' {} a -> s {importInfo = a} :: CreateApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the API.+createApiResponse_name :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Text)+createApiResponse_name = Lens.lens (\CreateApiResponse' {name} -> name) (\s@CreateApiResponse' {} a -> s {name = a} :: CreateApiResponse)++-- | The API protocol.+createApiResponse_protocolType :: Lens.Lens' CreateApiResponse (Prelude.Maybe ProtocolType)+createApiResponse_protocolType = Lens.lens (\CreateApiResponse' {protocolType} -> protocolType) (\s@CreateApiResponse' {} a -> s {protocolType = a} :: CreateApiResponse)++-- | The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+createApiResponse_routeSelectionExpression :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Text)+createApiResponse_routeSelectionExpression = Lens.lens (\CreateApiResponse' {routeSelectionExpression} -> routeSelectionExpression) (\s@CreateApiResponse' {} a -> s {routeSelectionExpression = a} :: CreateApiResponse)++-- | A collection of tags associated with the API.+createApiResponse_tags :: Lens.Lens' CreateApiResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createApiResponse_tags = Lens.lens (\CreateApiResponse' {tags} -> tags) (\s@CreateApiResponse' {} a -> s {tags = a} :: CreateApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | A version identifier for the API.+createApiResponse_version :: Lens.Lens' CreateApiResponse (Prelude.Maybe Prelude.Text)+createApiResponse_version = Lens.lens (\CreateApiResponse' {version} -> version) (\s@CreateApiResponse' {} a -> s {version = a} :: CreateApiResponse)++-- | The warning messages reported when failonwarnings is turned on during+-- API import.+createApiResponse_warnings :: Lens.Lens' CreateApiResponse (Prelude.Maybe [Prelude.Text])+createApiResponse_warnings = Lens.lens (\CreateApiResponse' {warnings} -> warnings) (\s@CreateApiResponse' {} a -> s {warnings = a} :: CreateApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createApiResponse_httpStatus :: Lens.Lens' CreateApiResponse Prelude.Int+createApiResponse_httpStatus = Lens.lens (\CreateApiResponse' {httpStatus} -> httpStatus) (\s@CreateApiResponse' {} a -> s {httpStatus = a} :: CreateApiResponse)++instance Prelude.NFData CreateApiResponse where+  rnf CreateApiResponse' {..} =+    Prelude.rnf apiEndpoint+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiKeySelectionExpression+      `Prelude.seq` Prelude.rnf corsConfiguration+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf disableExecuteApiEndpoint+      `Prelude.seq` Prelude.rnf disableSchemaValidation+      `Prelude.seq` Prelude.rnf importInfo+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf routeSelectionExpression+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf warnings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateApiMapping.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.CreateApiMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an API mapping.+module Amazonka.ApiGatewayV2.CreateApiMapping+  ( -- * Creating a Request+    CreateApiMapping (..),+    newCreateApiMapping,++    -- * Request Lenses+    createApiMapping_apiMappingKey,+    createApiMapping_domainName,+    createApiMapping_stage,+    createApiMapping_apiId,++    -- * Destructuring the Response+    CreateApiMappingResponse (..),+    newCreateApiMappingResponse,++    -- * Response Lenses+    createApiMappingResponse_apiId,+    createApiMappingResponse_apiMappingId,+    createApiMappingResponse_apiMappingKey,+    createApiMappingResponse_stage,+    createApiMappingResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new ApiMapping resource to represent an API mapping.+--+-- /See:/ 'newCreateApiMapping' smart constructor.+data CreateApiMapping = CreateApiMapping'+  { -- | The API mapping key.+    apiMappingKey :: Prelude.Maybe Prelude.Text,+    -- | The domain name.+    domainName :: Prelude.Text,+    -- | The API stage.+    stage :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApiMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingKey', 'createApiMapping_apiMappingKey' - The API mapping key.+--+-- 'domainName', 'createApiMapping_domainName' - The domain name.+--+-- 'stage', 'createApiMapping_stage' - The API stage.+--+-- 'apiId', 'createApiMapping_apiId' - The API identifier.+newCreateApiMapping ::+  -- | 'domainName'+  Prelude.Text ->+  -- | 'stage'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  CreateApiMapping+newCreateApiMapping pDomainName_ pStage_ pApiId_ =+  CreateApiMapping'+    { apiMappingKey = Prelude.Nothing,+      domainName = pDomainName_,+      stage = pStage_,+      apiId = pApiId_+    }++-- | The API mapping key.+createApiMapping_apiMappingKey :: Lens.Lens' CreateApiMapping (Prelude.Maybe Prelude.Text)+createApiMapping_apiMappingKey = Lens.lens (\CreateApiMapping' {apiMappingKey} -> apiMappingKey) (\s@CreateApiMapping' {} a -> s {apiMappingKey = a} :: CreateApiMapping)++-- | The domain name.+createApiMapping_domainName :: Lens.Lens' CreateApiMapping Prelude.Text+createApiMapping_domainName = Lens.lens (\CreateApiMapping' {domainName} -> domainName) (\s@CreateApiMapping' {} a -> s {domainName = a} :: CreateApiMapping)++-- | The API stage.+createApiMapping_stage :: Lens.Lens' CreateApiMapping Prelude.Text+createApiMapping_stage = Lens.lens (\CreateApiMapping' {stage} -> stage) (\s@CreateApiMapping' {} a -> s {stage = a} :: CreateApiMapping)++-- | The API identifier.+createApiMapping_apiId :: Lens.Lens' CreateApiMapping Prelude.Text+createApiMapping_apiId = Lens.lens (\CreateApiMapping' {apiId} -> apiId) (\s@CreateApiMapping' {} a -> s {apiId = a} :: CreateApiMapping)++instance Core.AWSRequest CreateApiMapping where+  type+    AWSResponse CreateApiMapping =+      CreateApiMappingResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateApiMappingResponse'+            Prelude.<$> (x Data..?> "apiId")+            Prelude.<*> (x Data..?> "apiMappingId")+            Prelude.<*> (x Data..?> "apiMappingKey")+            Prelude.<*> (x Data..?> "stage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateApiMapping where+  hashWithSalt _salt CreateApiMapping' {..} =+    _salt+      `Prelude.hashWithSalt` apiMappingKey+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` stage+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData CreateApiMapping where+  rnf CreateApiMapping' {..} =+    Prelude.rnf apiMappingKey+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders CreateApiMapping where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateApiMapping where+  toJSON CreateApiMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("apiMappingKey" Data..=) Prelude.<$> apiMappingKey,+            Prelude.Just ("stage" Data..= stage),+            Prelude.Just ("apiId" Data..= apiId)+          ]+      )++instance Data.ToPath CreateApiMapping where+  toPath CreateApiMapping' {..} =+    Prelude.mconcat+      [ "/v2/domainnames/",+        Data.toBS domainName,+        "/apimappings"+      ]++instance Data.ToQuery CreateApiMapping where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateApiMappingResponse' smart constructor.+data CreateApiMappingResponse = CreateApiMappingResponse'+  { -- | The API identifier.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | The API mapping identifier.+    apiMappingId :: Prelude.Maybe Prelude.Text,+    -- | The API mapping key.+    apiMappingKey :: Prelude.Maybe Prelude.Text,+    -- | The API stage.+    stage :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApiMappingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'createApiMappingResponse_apiId' - The API identifier.+--+-- 'apiMappingId', 'createApiMappingResponse_apiMappingId' - The API mapping identifier.+--+-- 'apiMappingKey', 'createApiMappingResponse_apiMappingKey' - The API mapping key.+--+-- 'stage', 'createApiMappingResponse_stage' - The API stage.+--+-- 'httpStatus', 'createApiMappingResponse_httpStatus' - The response's http status code.+newCreateApiMappingResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateApiMappingResponse+newCreateApiMappingResponse pHttpStatus_ =+  CreateApiMappingResponse'+    { apiId = Prelude.Nothing,+      apiMappingId = Prelude.Nothing,+      apiMappingKey = Prelude.Nothing,+      stage = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The API identifier.+createApiMappingResponse_apiId :: Lens.Lens' CreateApiMappingResponse (Prelude.Maybe Prelude.Text)+createApiMappingResponse_apiId = Lens.lens (\CreateApiMappingResponse' {apiId} -> apiId) (\s@CreateApiMappingResponse' {} a -> s {apiId = a} :: CreateApiMappingResponse)++-- | The API mapping identifier.+createApiMappingResponse_apiMappingId :: Lens.Lens' CreateApiMappingResponse (Prelude.Maybe Prelude.Text)+createApiMappingResponse_apiMappingId = Lens.lens (\CreateApiMappingResponse' {apiMappingId} -> apiMappingId) (\s@CreateApiMappingResponse' {} a -> s {apiMappingId = a} :: CreateApiMappingResponse)++-- | The API mapping key.+createApiMappingResponse_apiMappingKey :: Lens.Lens' CreateApiMappingResponse (Prelude.Maybe Prelude.Text)+createApiMappingResponse_apiMappingKey = Lens.lens (\CreateApiMappingResponse' {apiMappingKey} -> apiMappingKey) (\s@CreateApiMappingResponse' {} a -> s {apiMappingKey = a} :: CreateApiMappingResponse)++-- | The API stage.+createApiMappingResponse_stage :: Lens.Lens' CreateApiMappingResponse (Prelude.Maybe Prelude.Text)+createApiMappingResponse_stage = Lens.lens (\CreateApiMappingResponse' {stage} -> stage) (\s@CreateApiMappingResponse' {} a -> s {stage = a} :: CreateApiMappingResponse)++-- | The response's http status code.+createApiMappingResponse_httpStatus :: Lens.Lens' CreateApiMappingResponse Prelude.Int+createApiMappingResponse_httpStatus = Lens.lens (\CreateApiMappingResponse' {httpStatus} -> httpStatus) (\s@CreateApiMappingResponse' {} a -> s {httpStatus = a} :: CreateApiMappingResponse)++instance Prelude.NFData CreateApiMappingResponse where+  rnf CreateApiMappingResponse' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiMappingId+      `Prelude.seq` Prelude.rnf apiMappingKey+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateAuthorizer.hs view
@@ -0,0 +1,729 @@+{-# 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.ApiGatewayV2.CreateAuthorizer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Authorizer for an API.+module Amazonka.ApiGatewayV2.CreateAuthorizer+  ( -- * Creating a Request+    CreateAuthorizer (..),+    newCreateAuthorizer,++    -- * Request Lenses+    createAuthorizer_authorizerCredentialsArn,+    createAuthorizer_authorizerPayloadFormatVersion,+    createAuthorizer_authorizerResultTtlInSeconds,+    createAuthorizer_authorizerUri,+    createAuthorizer_enableSimpleResponses,+    createAuthorizer_identityValidationExpression,+    createAuthorizer_jwtConfiguration,+    createAuthorizer_apiId,+    createAuthorizer_authorizerType,+    createAuthorizer_identitySource,+    createAuthorizer_name,++    -- * Destructuring the Response+    CreateAuthorizerResponse (..),+    newCreateAuthorizerResponse,++    -- * Response Lenses+    createAuthorizerResponse_authorizerCredentialsArn,+    createAuthorizerResponse_authorizerId,+    createAuthorizerResponse_authorizerPayloadFormatVersion,+    createAuthorizerResponse_authorizerResultTtlInSeconds,+    createAuthorizerResponse_authorizerType,+    createAuthorizerResponse_authorizerUri,+    createAuthorizerResponse_enableSimpleResponses,+    createAuthorizerResponse_identitySource,+    createAuthorizerResponse_identityValidationExpression,+    createAuthorizerResponse_jwtConfiguration,+    createAuthorizerResponse_name,+    createAuthorizerResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new Authorizer resource to represent an authorizer.+--+-- /See:/ 'newCreateAuthorizer' smart constructor.+data CreateAuthorizer = CreateAuthorizer'+  { -- | Specifies the required credentials as an IAM role for API Gateway to+    -- invoke the authorizer. To specify an IAM role for API Gateway to assume,+    -- use the role\'s Amazon Resource Name (ARN). To use resource-based+    -- permissions on the Lambda function, don\'t specify this parameter.+    -- Supported only for REQUEST authorizers.+    authorizerCredentialsArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies the format of the payload sent to an HTTP API Lambda+    -- authorizer. Required for HTTP API Lambda authorizers. Supported values+    -- are 1.0 and 2.0. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    authorizerPayloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | The time to live (TTL) for cached authorizer results, in seconds. If it+    -- equals 0, authorization caching is disabled. If it is greater than 0,+    -- API Gateway caches authorizer responses. The maximum value is 3600, or 1+    -- hour. Supported only for HTTP API Lambda authorizers.+    authorizerResultTtlInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+    -- authorizers, this must be a well-formed Lambda function URI, for+    -- example,+    -- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+    -- In general, the URI has this form:+    -- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+    -- is the same as the region hosting the Lambda function, path indicates+    -- that the remaining substring in the URI should be treated as the path to+    -- the resource, including the initial \/. For Lambda functions, this is+    -- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+    -- Supported only for REQUEST authorizers.+    authorizerUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether a Lambda authorizer returns a response in a simple+    -- format. By default, a Lambda authorizer must return an IAM policy. If+    -- enabled, the Lambda authorizer can return a boolean value instead of an+    -- IAM policy. Supported only for HTTP APIs. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+    enableSimpleResponses :: Prelude.Maybe Prelude.Bool,+    -- | This parameter is not used.+    identityValidationExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the configuration of a JWT authorizer. Required for the JWT+    -- authorizer type. Supported only for HTTP APIs.+    jwtConfiguration :: Prelude.Maybe JWTConfiguration,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The authorizer type. Specify REQUEST for a Lambda function using+    -- incoming request parameters. Specify JWT to use JSON Web Tokens+    -- (supported only for HTTP APIs).+    authorizerType :: AuthorizerType,+    -- | The identity source for which authorization is requested.+    --+    -- For a REQUEST authorizer, this is optional. The value is a set of one or+    -- more mapping expressions of the specified request parameters. The+    -- identity source can be headers, query string parameters, stage+    -- variables, and context parameters. For example, if an Auth header and a+    -- Name query string parameter are defined as identity sources, this value+    -- is route.request.header.Auth, route.request.querystring.Name for+    -- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+    -- \$, for example, $request.header.Auth, $request.querystring.Name. These+    -- parameters are used to perform runtime validation for Lambda-based+    -- authorizers by verifying all of the identity-related request parameters+    -- are present in the request, not null, and non-empty. Only when this is+    -- true does the authorizer invoke the authorizer Lambda function.+    -- Otherwise, it returns a 401 Unauthorized response without calling the+    -- Lambda function. For HTTP APIs, identity sources are also used as the+    -- cache key when caching is enabled. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    --+    -- For JWT, a single entry that specifies where to extract the JSON Web+    -- Token (JWT) from inbound requests. Currently only header-based and query+    -- parameter-based selections are supported, for example+    -- \$request.header.Authorization.+    identitySource :: [Prelude.Text],+    -- | The name of the authorizer.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAuthorizer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorizerCredentialsArn', 'createAuthorizer_authorizerCredentialsArn' - Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+--+-- 'authorizerPayloadFormatVersion', 'createAuthorizer_authorizerPayloadFormatVersion' - Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- 'authorizerResultTtlInSeconds', 'createAuthorizer_authorizerResultTtlInSeconds' - The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+--+-- 'authorizerUri', 'createAuthorizer_authorizerUri' - The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+--+-- 'enableSimpleResponses', 'createAuthorizer_enableSimpleResponses' - Specifies whether a Lambda authorizer returns a response in a simple+-- format. By default, a Lambda authorizer must return an IAM policy. If+-- enabled, the Lambda authorizer can return a boolean value instead of an+-- IAM policy. Supported only for HTTP APIs. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+--+-- 'identityValidationExpression', 'createAuthorizer_identityValidationExpression' - This parameter is not used.+--+-- 'jwtConfiguration', 'createAuthorizer_jwtConfiguration' - Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+--+-- 'apiId', 'createAuthorizer_apiId' - The API identifier.+--+-- 'authorizerType', 'createAuthorizer_authorizerType' - The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+--+-- 'identitySource', 'createAuthorizer_identitySource' - The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+--+-- 'name', 'createAuthorizer_name' - The name of the authorizer.+newCreateAuthorizer ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'authorizerType'+  AuthorizerType ->+  -- | 'name'+  Prelude.Text ->+  CreateAuthorizer+newCreateAuthorizer pApiId_ pAuthorizerType_ pName_ =+  CreateAuthorizer'+    { authorizerCredentialsArn =+        Prelude.Nothing,+      authorizerPayloadFormatVersion = Prelude.Nothing,+      authorizerResultTtlInSeconds = Prelude.Nothing,+      authorizerUri = Prelude.Nothing,+      enableSimpleResponses = Prelude.Nothing,+      identityValidationExpression = Prelude.Nothing,+      jwtConfiguration = Prelude.Nothing,+      apiId = pApiId_,+      authorizerType = pAuthorizerType_,+      identitySource = Prelude.mempty,+      name = pName_+    }++-- | Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+createAuthorizer_authorizerCredentialsArn :: Lens.Lens' CreateAuthorizer (Prelude.Maybe Prelude.Text)+createAuthorizer_authorizerCredentialsArn = Lens.lens (\CreateAuthorizer' {authorizerCredentialsArn} -> authorizerCredentialsArn) (\s@CreateAuthorizer' {} a -> s {authorizerCredentialsArn = a} :: CreateAuthorizer)++-- | Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+createAuthorizer_authorizerPayloadFormatVersion :: Lens.Lens' CreateAuthorizer (Prelude.Maybe Prelude.Text)+createAuthorizer_authorizerPayloadFormatVersion = Lens.lens (\CreateAuthorizer' {authorizerPayloadFormatVersion} -> authorizerPayloadFormatVersion) (\s@CreateAuthorizer' {} a -> s {authorizerPayloadFormatVersion = a} :: CreateAuthorizer)++-- | The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+createAuthorizer_authorizerResultTtlInSeconds :: Lens.Lens' CreateAuthorizer (Prelude.Maybe Prelude.Natural)+createAuthorizer_authorizerResultTtlInSeconds = Lens.lens (\CreateAuthorizer' {authorizerResultTtlInSeconds} -> authorizerResultTtlInSeconds) (\s@CreateAuthorizer' {} a -> s {authorizerResultTtlInSeconds = a} :: CreateAuthorizer)++-- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+createAuthorizer_authorizerUri :: Lens.Lens' CreateAuthorizer (Prelude.Maybe Prelude.Text)+createAuthorizer_authorizerUri = Lens.lens (\CreateAuthorizer' {authorizerUri} -> authorizerUri) (\s@CreateAuthorizer' {} a -> s {authorizerUri = a} :: CreateAuthorizer)++-- | Specifies whether a Lambda authorizer returns a response in a simple+-- format. By default, a Lambda authorizer must return an IAM policy. If+-- enabled, the Lambda authorizer can return a boolean value instead of an+-- IAM policy. Supported only for HTTP APIs. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+createAuthorizer_enableSimpleResponses :: Lens.Lens' CreateAuthorizer (Prelude.Maybe Prelude.Bool)+createAuthorizer_enableSimpleResponses = Lens.lens (\CreateAuthorizer' {enableSimpleResponses} -> enableSimpleResponses) (\s@CreateAuthorizer' {} a -> s {enableSimpleResponses = a} :: CreateAuthorizer)++-- | This parameter is not used.+createAuthorizer_identityValidationExpression :: Lens.Lens' CreateAuthorizer (Prelude.Maybe Prelude.Text)+createAuthorizer_identityValidationExpression = Lens.lens (\CreateAuthorizer' {identityValidationExpression} -> identityValidationExpression) (\s@CreateAuthorizer' {} a -> s {identityValidationExpression = a} :: CreateAuthorizer)++-- | Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+createAuthorizer_jwtConfiguration :: Lens.Lens' CreateAuthorizer (Prelude.Maybe JWTConfiguration)+createAuthorizer_jwtConfiguration = Lens.lens (\CreateAuthorizer' {jwtConfiguration} -> jwtConfiguration) (\s@CreateAuthorizer' {} a -> s {jwtConfiguration = a} :: CreateAuthorizer)++-- | The API identifier.+createAuthorizer_apiId :: Lens.Lens' CreateAuthorizer Prelude.Text+createAuthorizer_apiId = Lens.lens (\CreateAuthorizer' {apiId} -> apiId) (\s@CreateAuthorizer' {} a -> s {apiId = a} :: CreateAuthorizer)++-- | The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+createAuthorizer_authorizerType :: Lens.Lens' CreateAuthorizer AuthorizerType+createAuthorizer_authorizerType = Lens.lens (\CreateAuthorizer' {authorizerType} -> authorizerType) (\s@CreateAuthorizer' {} a -> s {authorizerType = a} :: CreateAuthorizer)++-- | The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+createAuthorizer_identitySource :: Lens.Lens' CreateAuthorizer [Prelude.Text]+createAuthorizer_identitySource = Lens.lens (\CreateAuthorizer' {identitySource} -> identitySource) (\s@CreateAuthorizer' {} a -> s {identitySource = a} :: CreateAuthorizer) Prelude.. Lens.coerced++-- | The name of the authorizer.+createAuthorizer_name :: Lens.Lens' CreateAuthorizer Prelude.Text+createAuthorizer_name = Lens.lens (\CreateAuthorizer' {name} -> name) (\s@CreateAuthorizer' {} a -> s {name = a} :: CreateAuthorizer)++instance Core.AWSRequest CreateAuthorizer where+  type+    AWSResponse CreateAuthorizer =+      CreateAuthorizerResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAuthorizerResponse'+            Prelude.<$> (x Data..?> "authorizerCredentialsArn")+            Prelude.<*> (x Data..?> "authorizerId")+            Prelude.<*> (x Data..?> "authorizerPayloadFormatVersion")+            Prelude.<*> (x Data..?> "authorizerResultTtlInSeconds")+            Prelude.<*> (x Data..?> "authorizerType")+            Prelude.<*> (x Data..?> "authorizerUri")+            Prelude.<*> (x Data..?> "enableSimpleResponses")+            Prelude.<*> (x Data..?> "identitySource" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "identityValidationExpression")+            Prelude.<*> (x Data..?> "jwtConfiguration")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAuthorizer where+  hashWithSalt _salt CreateAuthorizer' {..} =+    _salt+      `Prelude.hashWithSalt` authorizerCredentialsArn+      `Prelude.hashWithSalt` authorizerPayloadFormatVersion+      `Prelude.hashWithSalt` authorizerResultTtlInSeconds+      `Prelude.hashWithSalt` authorizerUri+      `Prelude.hashWithSalt` enableSimpleResponses+      `Prelude.hashWithSalt` identityValidationExpression+      `Prelude.hashWithSalt` jwtConfiguration+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` authorizerType+      `Prelude.hashWithSalt` identitySource+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateAuthorizer where+  rnf CreateAuthorizer' {..} =+    Prelude.rnf authorizerCredentialsArn+      `Prelude.seq` Prelude.rnf authorizerPayloadFormatVersion+      `Prelude.seq` Prelude.rnf authorizerResultTtlInSeconds+      `Prelude.seq` Prelude.rnf authorizerUri+      `Prelude.seq` Prelude.rnf enableSimpleResponses+      `Prelude.seq` Prelude.rnf identityValidationExpression+      `Prelude.seq` Prelude.rnf jwtConfiguration+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf authorizerType+      `Prelude.seq` Prelude.rnf identitySource+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateAuthorizer where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAuthorizer where+  toJSON CreateAuthorizer' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("authorizerCredentialsArn" Data..=)+              Prelude.<$> authorizerCredentialsArn,+            ("authorizerPayloadFormatVersion" Data..=)+              Prelude.<$> authorizerPayloadFormatVersion,+            ("authorizerResultTtlInSeconds" Data..=)+              Prelude.<$> authorizerResultTtlInSeconds,+            ("authorizerUri" Data..=) Prelude.<$> authorizerUri,+            ("enableSimpleResponses" Data..=)+              Prelude.<$> enableSimpleResponses,+            ("identityValidationExpression" Data..=)+              Prelude.<$> identityValidationExpression,+            ("jwtConfiguration" Data..=)+              Prelude.<$> jwtConfiguration,+            Prelude.Just+              ("authorizerType" Data..= authorizerType),+            Prelude.Just+              ("identitySource" Data..= identitySource),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateAuthorizer where+  toPath CreateAuthorizer' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/authorizers"]++instance Data.ToQuery CreateAuthorizer where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAuthorizerResponse' smart constructor.+data CreateAuthorizerResponse = CreateAuthorizerResponse'+  { -- | Specifies the required credentials as an IAM role for API Gateway to+    -- invoke the authorizer. To specify an IAM role for API Gateway to assume,+    -- use the role\'s Amazon Resource Name (ARN). To use resource-based+    -- permissions on the Lambda function, don\'t specify this parameter.+    -- Supported only for REQUEST authorizers.+    authorizerCredentialsArn :: Prelude.Maybe Prelude.Text,+    -- | The authorizer identifier.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the format of the payload sent to an HTTP API Lambda+    -- authorizer. Required for HTTP API Lambda authorizers. Supported values+    -- are 1.0 and 2.0. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    authorizerPayloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | The time to live (TTL) for cached authorizer results, in seconds. If it+    -- equals 0, authorization caching is disabled. If it is greater than 0,+    -- API Gateway caches authorizer responses. The maximum value is 3600, or 1+    -- hour. Supported only for HTTP API Lambda authorizers.+    authorizerResultTtlInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The authorizer type. Specify REQUEST for a Lambda function using+    -- incoming request parameters. Specify JWT to use JSON Web Tokens+    -- (supported only for HTTP APIs).+    authorizerType :: Prelude.Maybe AuthorizerType,+    -- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+    -- authorizers, this must be a well-formed Lambda function URI, for+    -- example,+    -- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+    -- In general, the URI has this form:+    -- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+    -- is the same as the region hosting the Lambda function, path indicates+    -- that the remaining substring in the URI should be treated as the path to+    -- the resource, including the initial \/. For Lambda functions, this is+    -- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+    -- Supported only for REQUEST authorizers.+    authorizerUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether a Lambda authorizer returns a response in a simple+    -- format. If enabled, the Lambda authorizer can return a boolean value+    -- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+    -- see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+    enableSimpleResponses :: Prelude.Maybe Prelude.Bool,+    -- | The identity source for which authorization is requested.+    --+    -- For a REQUEST authorizer, this is optional. The value is a set of one or+    -- more mapping expressions of the specified request parameters. The+    -- identity source can be headers, query string parameters, stage+    -- variables, and context parameters. For example, if an Auth header and a+    -- Name query string parameter are defined as identity sources, this value+    -- is route.request.header.Auth, route.request.querystring.Name for+    -- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+    -- \$, for example, $request.header.Auth, $request.querystring.Name. These+    -- parameters are used to perform runtime validation for Lambda-based+    -- authorizers by verifying all of the identity-related request parameters+    -- are present in the request, not null, and non-empty. Only when this is+    -- true does the authorizer invoke the authorizer Lambda function.+    -- Otherwise, it returns a 401 Unauthorized response without calling the+    -- Lambda function. For HTTP APIs, identity sources are also used as the+    -- cache key when caching is enabled. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    --+    -- For JWT, a single entry that specifies where to extract the JSON Web+    -- Token (JWT) from inbound requests. Currently only header-based and query+    -- parameter-based selections are supported, for example+    -- \$request.header.Authorization.+    identitySource :: Prelude.Maybe [Prelude.Text],+    -- | The validation expression does not apply to the REQUEST authorizer.+    identityValidationExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the configuration of a JWT authorizer. Required for the JWT+    -- authorizer type. Supported only for HTTP APIs.+    jwtConfiguration :: Prelude.Maybe JWTConfiguration,+    -- | The name of the authorizer.+    name :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAuthorizerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorizerCredentialsArn', 'createAuthorizerResponse_authorizerCredentialsArn' - Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+--+-- 'authorizerId', 'createAuthorizerResponse_authorizerId' - The authorizer identifier.+--+-- 'authorizerPayloadFormatVersion', 'createAuthorizerResponse_authorizerPayloadFormatVersion' - Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- 'authorizerResultTtlInSeconds', 'createAuthorizerResponse_authorizerResultTtlInSeconds' - The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+--+-- 'authorizerType', 'createAuthorizerResponse_authorizerType' - The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+--+-- 'authorizerUri', 'createAuthorizerResponse_authorizerUri' - The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+--+-- 'enableSimpleResponses', 'createAuthorizerResponse_enableSimpleResponses' - Specifies whether a Lambda authorizer returns a response in a simple+-- format. If enabled, the Lambda authorizer can return a boolean value+-- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+-- see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+--+-- 'identitySource', 'createAuthorizerResponse_identitySource' - The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+--+-- 'identityValidationExpression', 'createAuthorizerResponse_identityValidationExpression' - The validation expression does not apply to the REQUEST authorizer.+--+-- 'jwtConfiguration', 'createAuthorizerResponse_jwtConfiguration' - Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+--+-- 'name', 'createAuthorizerResponse_name' - The name of the authorizer.+--+-- 'httpStatus', 'createAuthorizerResponse_httpStatus' - The response's http status code.+newCreateAuthorizerResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAuthorizerResponse+newCreateAuthorizerResponse pHttpStatus_ =+  CreateAuthorizerResponse'+    { authorizerCredentialsArn =+        Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      authorizerPayloadFormatVersion = Prelude.Nothing,+      authorizerResultTtlInSeconds = Prelude.Nothing,+      authorizerType = Prelude.Nothing,+      authorizerUri = Prelude.Nothing,+      enableSimpleResponses = Prelude.Nothing,+      identitySource = Prelude.Nothing,+      identityValidationExpression = Prelude.Nothing,+      jwtConfiguration = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+createAuthorizerResponse_authorizerCredentialsArn :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe Prelude.Text)+createAuthorizerResponse_authorizerCredentialsArn = Lens.lens (\CreateAuthorizerResponse' {authorizerCredentialsArn} -> authorizerCredentialsArn) (\s@CreateAuthorizerResponse' {} a -> s {authorizerCredentialsArn = a} :: CreateAuthorizerResponse)++-- | The authorizer identifier.+createAuthorizerResponse_authorizerId :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe Prelude.Text)+createAuthorizerResponse_authorizerId = Lens.lens (\CreateAuthorizerResponse' {authorizerId} -> authorizerId) (\s@CreateAuthorizerResponse' {} a -> s {authorizerId = a} :: CreateAuthorizerResponse)++-- | Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+createAuthorizerResponse_authorizerPayloadFormatVersion :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe Prelude.Text)+createAuthorizerResponse_authorizerPayloadFormatVersion = Lens.lens (\CreateAuthorizerResponse' {authorizerPayloadFormatVersion} -> authorizerPayloadFormatVersion) (\s@CreateAuthorizerResponse' {} a -> s {authorizerPayloadFormatVersion = a} :: CreateAuthorizerResponse)++-- | The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+createAuthorizerResponse_authorizerResultTtlInSeconds :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe Prelude.Natural)+createAuthorizerResponse_authorizerResultTtlInSeconds = Lens.lens (\CreateAuthorizerResponse' {authorizerResultTtlInSeconds} -> authorizerResultTtlInSeconds) (\s@CreateAuthorizerResponse' {} a -> s {authorizerResultTtlInSeconds = a} :: CreateAuthorizerResponse)++-- | The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+createAuthorizerResponse_authorizerType :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe AuthorizerType)+createAuthorizerResponse_authorizerType = Lens.lens (\CreateAuthorizerResponse' {authorizerType} -> authorizerType) (\s@CreateAuthorizerResponse' {} a -> s {authorizerType = a} :: CreateAuthorizerResponse)++-- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+createAuthorizerResponse_authorizerUri :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe Prelude.Text)+createAuthorizerResponse_authorizerUri = Lens.lens (\CreateAuthorizerResponse' {authorizerUri} -> authorizerUri) (\s@CreateAuthorizerResponse' {} a -> s {authorizerUri = a} :: CreateAuthorizerResponse)++-- | Specifies whether a Lambda authorizer returns a response in a simple+-- format. If enabled, the Lambda authorizer can return a boolean value+-- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+-- see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+createAuthorizerResponse_enableSimpleResponses :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe Prelude.Bool)+createAuthorizerResponse_enableSimpleResponses = Lens.lens (\CreateAuthorizerResponse' {enableSimpleResponses} -> enableSimpleResponses) (\s@CreateAuthorizerResponse' {} a -> s {enableSimpleResponses = a} :: CreateAuthorizerResponse)++-- | The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+createAuthorizerResponse_identitySource :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe [Prelude.Text])+createAuthorizerResponse_identitySource = Lens.lens (\CreateAuthorizerResponse' {identitySource} -> identitySource) (\s@CreateAuthorizerResponse' {} a -> s {identitySource = a} :: CreateAuthorizerResponse) Prelude.. Lens.mapping Lens.coerced++-- | The validation expression does not apply to the REQUEST authorizer.+createAuthorizerResponse_identityValidationExpression :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe Prelude.Text)+createAuthorizerResponse_identityValidationExpression = Lens.lens (\CreateAuthorizerResponse' {identityValidationExpression} -> identityValidationExpression) (\s@CreateAuthorizerResponse' {} a -> s {identityValidationExpression = a} :: CreateAuthorizerResponse)++-- | Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+createAuthorizerResponse_jwtConfiguration :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe JWTConfiguration)+createAuthorizerResponse_jwtConfiguration = Lens.lens (\CreateAuthorizerResponse' {jwtConfiguration} -> jwtConfiguration) (\s@CreateAuthorizerResponse' {} a -> s {jwtConfiguration = a} :: CreateAuthorizerResponse)++-- | The name of the authorizer.+createAuthorizerResponse_name :: Lens.Lens' CreateAuthorizerResponse (Prelude.Maybe Prelude.Text)+createAuthorizerResponse_name = Lens.lens (\CreateAuthorizerResponse' {name} -> name) (\s@CreateAuthorizerResponse' {} a -> s {name = a} :: CreateAuthorizerResponse)++-- | The response's http status code.+createAuthorizerResponse_httpStatus :: Lens.Lens' CreateAuthorizerResponse Prelude.Int+createAuthorizerResponse_httpStatus = Lens.lens (\CreateAuthorizerResponse' {httpStatus} -> httpStatus) (\s@CreateAuthorizerResponse' {} a -> s {httpStatus = a} :: CreateAuthorizerResponse)++instance Prelude.NFData CreateAuthorizerResponse where+  rnf CreateAuthorizerResponse' {..} =+    Prelude.rnf authorizerCredentialsArn+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf authorizerPayloadFormatVersion+      `Prelude.seq` Prelude.rnf authorizerResultTtlInSeconds+      `Prelude.seq` Prelude.rnf authorizerType+      `Prelude.seq` Prelude.rnf authorizerUri+      `Prelude.seq` Prelude.rnf enableSimpleResponses+      `Prelude.seq` Prelude.rnf identitySource+      `Prelude.seq` Prelude.rnf identityValidationExpression+      `Prelude.seq` Prelude.rnf jwtConfiguration+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateDeployment.hs view
@@ -0,0 +1,258 @@+{-# 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.ApiGatewayV2.CreateDeployment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a Deployment for an API.+module Amazonka.ApiGatewayV2.CreateDeployment+  ( -- * Creating a Request+    CreateDeployment (..),+    newCreateDeployment,++    -- * Request Lenses+    createDeployment_description,+    createDeployment_stageName,+    createDeployment_apiId,++    -- * Destructuring the Response+    CreateDeploymentResponse (..),+    newCreateDeploymentResponse,++    -- * Response Lenses+    createDeploymentResponse_autoDeployed,+    createDeploymentResponse_createdDate,+    createDeploymentResponse_deploymentId,+    createDeploymentResponse_deploymentStatus,+    createDeploymentResponse_deploymentStatusMessage,+    createDeploymentResponse_description,+    createDeploymentResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new Deployment resource to represent a deployment.+--+-- /See:/ 'newCreateDeployment' smart constructor.+data CreateDeployment = CreateDeployment'+  { -- | The description for the deployment resource.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the Stage resource for the Deployment resource to create.+    stageName :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createDeployment_description' - The description for the deployment resource.+--+-- 'stageName', 'createDeployment_stageName' - The name of the Stage resource for the Deployment resource to create.+--+-- 'apiId', 'createDeployment_apiId' - The API identifier.+newCreateDeployment ::+  -- | 'apiId'+  Prelude.Text ->+  CreateDeployment+newCreateDeployment pApiId_ =+  CreateDeployment'+    { description = Prelude.Nothing,+      stageName = Prelude.Nothing,+      apiId = pApiId_+    }++-- | The description for the deployment resource.+createDeployment_description :: Lens.Lens' CreateDeployment (Prelude.Maybe Prelude.Text)+createDeployment_description = Lens.lens (\CreateDeployment' {description} -> description) (\s@CreateDeployment' {} a -> s {description = a} :: CreateDeployment)++-- | The name of the Stage resource for the Deployment resource to create.+createDeployment_stageName :: Lens.Lens' CreateDeployment (Prelude.Maybe Prelude.Text)+createDeployment_stageName = Lens.lens (\CreateDeployment' {stageName} -> stageName) (\s@CreateDeployment' {} a -> s {stageName = a} :: CreateDeployment)++-- | The API identifier.+createDeployment_apiId :: Lens.Lens' CreateDeployment Prelude.Text+createDeployment_apiId = Lens.lens (\CreateDeployment' {apiId} -> apiId) (\s@CreateDeployment' {} a -> s {apiId = a} :: CreateDeployment)++instance Core.AWSRequest CreateDeployment where+  type+    AWSResponse CreateDeployment =+      CreateDeploymentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDeploymentResponse'+            Prelude.<$> (x Data..?> "autoDeployed")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "deploymentId")+            Prelude.<*> (x Data..?> "deploymentStatus")+            Prelude.<*> (x Data..?> "deploymentStatusMessage")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDeployment where+  hashWithSalt _salt CreateDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` stageName+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData CreateDeployment where+  rnf CreateDeployment' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders CreateDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDeployment where+  toJSON CreateDeployment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("stageName" Data..=) Prelude.<$> stageName+          ]+      )++instance Data.ToPath CreateDeployment where+  toPath CreateDeployment' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/deployments"]++instance Data.ToQuery CreateDeployment where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDeploymentResponse' smart constructor.+data CreateDeploymentResponse = CreateDeploymentResponse'+  { -- | Specifies whether a deployment was automatically released.+    autoDeployed :: Prelude.Maybe Prelude.Bool,+    -- | The date and time when the Deployment resource was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The identifier for the deployment.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The status of the deployment: PENDING, FAILED, or SUCCEEDED.+    deploymentStatus :: Prelude.Maybe DeploymentStatus,+    -- | May contain additional feedback on the status of an API deployment.+    deploymentStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The description for the deployment.+    description :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoDeployed', 'createDeploymentResponse_autoDeployed' - Specifies whether a deployment was automatically released.+--+-- 'createdDate', 'createDeploymentResponse_createdDate' - The date and time when the Deployment resource was created.+--+-- 'deploymentId', 'createDeploymentResponse_deploymentId' - The identifier for the deployment.+--+-- 'deploymentStatus', 'createDeploymentResponse_deploymentStatus' - The status of the deployment: PENDING, FAILED, or SUCCEEDED.+--+-- 'deploymentStatusMessage', 'createDeploymentResponse_deploymentStatusMessage' - May contain additional feedback on the status of an API deployment.+--+-- 'description', 'createDeploymentResponse_description' - The description for the deployment.+--+-- 'httpStatus', 'createDeploymentResponse_httpStatus' - The response's http status code.+newCreateDeploymentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDeploymentResponse+newCreateDeploymentResponse pHttpStatus_ =+  CreateDeploymentResponse'+    { autoDeployed =+        Prelude.Nothing,+      createdDate = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      deploymentStatus = Prelude.Nothing,+      deploymentStatusMessage = Prelude.Nothing,+      description = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether a deployment was automatically released.+createDeploymentResponse_autoDeployed :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.Bool)+createDeploymentResponse_autoDeployed = Lens.lens (\CreateDeploymentResponse' {autoDeployed} -> autoDeployed) (\s@CreateDeploymentResponse' {} a -> s {autoDeployed = a} :: CreateDeploymentResponse)++-- | The date and time when the Deployment resource was created.+createDeploymentResponse_createdDate :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.UTCTime)+createDeploymentResponse_createdDate = Lens.lens (\CreateDeploymentResponse' {createdDate} -> createdDate) (\s@CreateDeploymentResponse' {} a -> s {createdDate = a} :: CreateDeploymentResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier for the deployment.+createDeploymentResponse_deploymentId :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.Text)+createDeploymentResponse_deploymentId = Lens.lens (\CreateDeploymentResponse' {deploymentId} -> deploymentId) (\s@CreateDeploymentResponse' {} a -> s {deploymentId = a} :: CreateDeploymentResponse)++-- | The status of the deployment: PENDING, FAILED, or SUCCEEDED.+createDeploymentResponse_deploymentStatus :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe DeploymentStatus)+createDeploymentResponse_deploymentStatus = Lens.lens (\CreateDeploymentResponse' {deploymentStatus} -> deploymentStatus) (\s@CreateDeploymentResponse' {} a -> s {deploymentStatus = a} :: CreateDeploymentResponse)++-- | May contain additional feedback on the status of an API deployment.+createDeploymentResponse_deploymentStatusMessage :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.Text)+createDeploymentResponse_deploymentStatusMessage = Lens.lens (\CreateDeploymentResponse' {deploymentStatusMessage} -> deploymentStatusMessage) (\s@CreateDeploymentResponse' {} a -> s {deploymentStatusMessage = a} :: CreateDeploymentResponse)++-- | The description for the deployment.+createDeploymentResponse_description :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.Text)+createDeploymentResponse_description = Lens.lens (\CreateDeploymentResponse' {description} -> description) (\s@CreateDeploymentResponse' {} a -> s {description = a} :: CreateDeploymentResponse)++-- | The response's http status code.+createDeploymentResponse_httpStatus :: Lens.Lens' CreateDeploymentResponse Prelude.Int+createDeploymentResponse_httpStatus = Lens.lens (\CreateDeploymentResponse' {httpStatus} -> httpStatus) (\s@CreateDeploymentResponse' {} a -> s {httpStatus = a} :: CreateDeploymentResponse)++instance Prelude.NFData CreateDeploymentResponse where+  rnf CreateDeploymentResponse' {..} =+    Prelude.rnf autoDeployed+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf deploymentStatus+      `Prelude.seq` Prelude.rnf deploymentStatusMessage+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateDomainName.hs view
@@ -0,0 +1,264 @@+{-# 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.ApiGatewayV2.CreateDomainName+-- 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 domain name.+module Amazonka.ApiGatewayV2.CreateDomainName+  ( -- * Creating a Request+    CreateDomainName (..),+    newCreateDomainName,++    -- * Request Lenses+    createDomainName_domainNameConfigurations,+    createDomainName_mutualTlsAuthentication,+    createDomainName_tags,+    createDomainName_domainName,++    -- * Destructuring the Response+    CreateDomainNameResponse (..),+    newCreateDomainNameResponse,++    -- * Response Lenses+    createDomainNameResponse_apiMappingSelectionExpression,+    createDomainNameResponse_domainName,+    createDomainNameResponse_domainNameConfigurations,+    createDomainNameResponse_mutualTlsAuthentication,+    createDomainNameResponse_tags,+    createDomainNameResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new DomainName resource to represent a domain name.+--+-- /See:/ 'newCreateDomainName' smart constructor.+data CreateDomainName = CreateDomainName'+  { -- | The domain name configurations.+    domainNameConfigurations :: Prelude.Maybe [DomainNameConfiguration],+    -- | The mutual TLS authentication configuration for a custom domain name.+    mutualTlsAuthentication :: Prelude.Maybe MutualTlsAuthenticationInput,+    -- | The collection of tags associated with a domain name.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The domain name.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDomainName' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainNameConfigurations', 'createDomainName_domainNameConfigurations' - The domain name configurations.+--+-- 'mutualTlsAuthentication', 'createDomainName_mutualTlsAuthentication' - The mutual TLS authentication configuration for a custom domain name.+--+-- 'tags', 'createDomainName_tags' - The collection of tags associated with a domain name.+--+-- 'domainName', 'createDomainName_domainName' - The domain name.+newCreateDomainName ::+  -- | 'domainName'+  Prelude.Text ->+  CreateDomainName+newCreateDomainName pDomainName_ =+  CreateDomainName'+    { domainNameConfigurations =+        Prelude.Nothing,+      mutualTlsAuthentication = Prelude.Nothing,+      tags = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | The domain name configurations.+createDomainName_domainNameConfigurations :: Lens.Lens' CreateDomainName (Prelude.Maybe [DomainNameConfiguration])+createDomainName_domainNameConfigurations = Lens.lens (\CreateDomainName' {domainNameConfigurations} -> domainNameConfigurations) (\s@CreateDomainName' {} a -> s {domainNameConfigurations = a} :: CreateDomainName) Prelude.. Lens.mapping Lens.coerced++-- | The mutual TLS authentication configuration for a custom domain name.+createDomainName_mutualTlsAuthentication :: Lens.Lens' CreateDomainName (Prelude.Maybe MutualTlsAuthenticationInput)+createDomainName_mutualTlsAuthentication = Lens.lens (\CreateDomainName' {mutualTlsAuthentication} -> mutualTlsAuthentication) (\s@CreateDomainName' {} a -> s {mutualTlsAuthentication = a} :: CreateDomainName)++-- | The collection of tags associated with a domain name.+createDomainName_tags :: Lens.Lens' CreateDomainName (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDomainName_tags = Lens.lens (\CreateDomainName' {tags} -> tags) (\s@CreateDomainName' {} a -> s {tags = a} :: CreateDomainName) Prelude.. Lens.mapping Lens.coerced++-- | The domain name.+createDomainName_domainName :: Lens.Lens' CreateDomainName Prelude.Text+createDomainName_domainName = Lens.lens (\CreateDomainName' {domainName} -> domainName) (\s@CreateDomainName' {} a -> s {domainName = a} :: CreateDomainName)++instance Core.AWSRequest CreateDomainName where+  type+    AWSResponse CreateDomainName =+      CreateDomainNameResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDomainNameResponse'+            Prelude.<$> (x Data..?> "apiMappingSelectionExpression")+            Prelude.<*> (x Data..?> "domainName")+            Prelude.<*> ( x+                            Data..?> "domainNameConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "mutualTlsAuthentication")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDomainName where+  hashWithSalt _salt CreateDomainName' {..} =+    _salt+      `Prelude.hashWithSalt` domainNameConfigurations+      `Prelude.hashWithSalt` mutualTlsAuthentication+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData CreateDomainName where+  rnf CreateDomainName' {..} =+    Prelude.rnf domainNameConfigurations+      `Prelude.seq` Prelude.rnf mutualTlsAuthentication+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders CreateDomainName where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDomainName where+  toJSON CreateDomainName' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("domainNameConfigurations" Data..=)+              Prelude.<$> domainNameConfigurations,+            ("mutualTlsAuthentication" Data..=)+              Prelude.<$> mutualTlsAuthentication,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("domainName" Data..= domainName)+          ]+      )++instance Data.ToPath CreateDomainName where+  toPath = Prelude.const "/v2/domainnames"++instance Data.ToQuery CreateDomainName where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDomainNameResponse' smart constructor.+data CreateDomainNameResponse = CreateDomainNameResponse'+  { -- | The API mapping selection expression.+    apiMappingSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The name of the DomainName resource.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | The domain name configurations.+    domainNameConfigurations :: Prelude.Maybe [DomainNameConfiguration],+    -- | The mutual TLS authentication configuration for a custom domain name.+    mutualTlsAuthentication :: Prelude.Maybe MutualTlsAuthentication,+    -- | The collection of tags associated with a domain name.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDomainNameResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingSelectionExpression', 'createDomainNameResponse_apiMappingSelectionExpression' - The API mapping selection expression.+--+-- 'domainName', 'createDomainNameResponse_domainName' - The name of the DomainName resource.+--+-- 'domainNameConfigurations', 'createDomainNameResponse_domainNameConfigurations' - The domain name configurations.+--+-- 'mutualTlsAuthentication', 'createDomainNameResponse_mutualTlsAuthentication' - The mutual TLS authentication configuration for a custom domain name.+--+-- 'tags', 'createDomainNameResponse_tags' - The collection of tags associated with a domain name.+--+-- 'httpStatus', 'createDomainNameResponse_httpStatus' - The response's http status code.+newCreateDomainNameResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDomainNameResponse+newCreateDomainNameResponse pHttpStatus_ =+  CreateDomainNameResponse'+    { apiMappingSelectionExpression =+        Prelude.Nothing,+      domainName = Prelude.Nothing,+      domainNameConfigurations = Prelude.Nothing,+      mutualTlsAuthentication = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The API mapping selection expression.+createDomainNameResponse_apiMappingSelectionExpression :: Lens.Lens' CreateDomainNameResponse (Prelude.Maybe Prelude.Text)+createDomainNameResponse_apiMappingSelectionExpression = Lens.lens (\CreateDomainNameResponse' {apiMappingSelectionExpression} -> apiMappingSelectionExpression) (\s@CreateDomainNameResponse' {} a -> s {apiMappingSelectionExpression = a} :: CreateDomainNameResponse)++-- | The name of the DomainName resource.+createDomainNameResponse_domainName :: Lens.Lens' CreateDomainNameResponse (Prelude.Maybe Prelude.Text)+createDomainNameResponse_domainName = Lens.lens (\CreateDomainNameResponse' {domainName} -> domainName) (\s@CreateDomainNameResponse' {} a -> s {domainName = a} :: CreateDomainNameResponse)++-- | The domain name configurations.+createDomainNameResponse_domainNameConfigurations :: Lens.Lens' CreateDomainNameResponse (Prelude.Maybe [DomainNameConfiguration])+createDomainNameResponse_domainNameConfigurations = Lens.lens (\CreateDomainNameResponse' {domainNameConfigurations} -> domainNameConfigurations) (\s@CreateDomainNameResponse' {} a -> s {domainNameConfigurations = a} :: CreateDomainNameResponse) Prelude.. Lens.mapping Lens.coerced++-- | The mutual TLS authentication configuration for a custom domain name.+createDomainNameResponse_mutualTlsAuthentication :: Lens.Lens' CreateDomainNameResponse (Prelude.Maybe MutualTlsAuthentication)+createDomainNameResponse_mutualTlsAuthentication = Lens.lens (\CreateDomainNameResponse' {mutualTlsAuthentication} -> mutualTlsAuthentication) (\s@CreateDomainNameResponse' {} a -> s {mutualTlsAuthentication = a} :: CreateDomainNameResponse)++-- | The collection of tags associated with a domain name.+createDomainNameResponse_tags :: Lens.Lens' CreateDomainNameResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDomainNameResponse_tags = Lens.lens (\CreateDomainNameResponse' {tags} -> tags) (\s@CreateDomainNameResponse' {} a -> s {tags = a} :: CreateDomainNameResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createDomainNameResponse_httpStatus :: Lens.Lens' CreateDomainNameResponse Prelude.Int+createDomainNameResponse_httpStatus = Lens.lens (\CreateDomainNameResponse' {httpStatus} -> httpStatus) (\s@CreateDomainNameResponse' {} a -> s {httpStatus = a} :: CreateDomainNameResponse)++instance Prelude.NFData CreateDomainNameResponse where+  rnf CreateDomainNameResponse' {..} =+    Prelude.rnf apiMappingSelectionExpression+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf domainNameConfigurations+      `Prelude.seq` Prelude.rnf mutualTlsAuthentication+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateIntegration.hs view
@@ -0,0 +1,1341 @@+{-# 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.ApiGatewayV2.CreateIntegration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Integration.+module Amazonka.ApiGatewayV2.CreateIntegration+  ( -- * Creating a Request+    CreateIntegration (..),+    newCreateIntegration,++    -- * Request Lenses+    createIntegration_connectionId,+    createIntegration_connectionType,+    createIntegration_contentHandlingStrategy,+    createIntegration_credentialsArn,+    createIntegration_description,+    createIntegration_integrationMethod,+    createIntegration_integrationSubtype,+    createIntegration_integrationUri,+    createIntegration_passthroughBehavior,+    createIntegration_payloadFormatVersion,+    createIntegration_requestParameters,+    createIntegration_requestTemplates,+    createIntegration_responseParameters,+    createIntegration_templateSelectionExpression,+    createIntegration_timeoutInMillis,+    createIntegration_tlsConfig,+    createIntegration_apiId,+    createIntegration_integrationType,++    -- * Destructuring the Response+    CreateIntegrationResponse' (..),+    newCreateIntegrationResponse',++    -- * Response Lenses+    createIntegrationResponse'_apiGatewayManaged,+    createIntegrationResponse'_connectionId,+    createIntegrationResponse'_connectionType,+    createIntegrationResponse'_contentHandlingStrategy,+    createIntegrationResponse'_credentialsArn,+    createIntegrationResponse'_description,+    createIntegrationResponse'_integrationId,+    createIntegrationResponse'_integrationMethod,+    createIntegrationResponse'_integrationResponseSelectionExpression,+    createIntegrationResponse'_integrationSubtype,+    createIntegrationResponse'_integrationType,+    createIntegrationResponse'_integrationUri,+    createIntegrationResponse'_passthroughBehavior,+    createIntegrationResponse'_payloadFormatVersion,+    createIntegrationResponse'_requestParameters,+    createIntegrationResponse'_requestTemplates,+    createIntegrationResponse'_responseParameters,+    createIntegrationResponse'_templateSelectionExpression,+    createIntegrationResponse'_timeoutInMillis,+    createIntegrationResponse'_tlsConfig,+    createIntegrationResponse'_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new Integration resource to represent an integration.+--+-- /See:/ 'newCreateIntegration' smart constructor.+data CreateIntegration = CreateIntegration'+  { -- | The ID of the VPC link for a private integration. Supported only for+    -- HTTP APIs.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | The type of the network connection to the integration endpoint. Specify+    -- INTERNET for connections through the public routable internet or+    -- VPC_LINK for private connections between API Gateway and resources in a+    -- VPC. The default value is INTERNET.+    connectionType :: Prelude.Maybe ConnectionType,+    -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | Specifies the credentials required for the integration, if any. For AWS+    -- integrations, three options are available. To specify an IAM Role for+    -- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+    -- require that the caller\'s identity be passed through from the request,+    -- specify the string arn:aws:iam::*:user\/*. To use resource-based+    -- permissions on supported AWS services, specify null.+    credentialsArn :: Prelude.Maybe Prelude.Text,+    -- | The description of the integration.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies the integration\'s HTTP method type.+    integrationMethod :: Prelude.Maybe Prelude.Text,+    -- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+    -- service action to invoke. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+    integrationSubtype :: Prelude.Maybe Prelude.Text,+    -- | For a Lambda integration, specify the URI of a Lambda function.+    --+    -- For an HTTP integration, specify a fully-qualified URL.+    --+    -- For an HTTP API private integration, specify the ARN of an Application+    -- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+    -- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+    -- uses DiscoverInstances to identify resources. You can use query+    -- parameters to target specific resources. To learn more, see+    -- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+    -- For private integrations, all resources must be owned by the same AWS+    -- account.+    integrationUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies the pass-through behavior for incoming requests based on the+    -- Content-Type header in the request, and the available mapping templates+    -- specified as the requestTemplates property on the Integration resource.+    -- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+    -- NEVER. Supported only for WebSocket APIs.+    --+    -- WHEN_NO_MATCH passes the request body for unmapped content types through+    -- to the integration backend without transformation.+    --+    -- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+    -- Type response.+    --+    -- WHEN_NO_TEMPLATES allows pass-through when the integration has no+    -- content types mapped to templates. However, if there is at least one+    -- content type defined, unmapped content types will be rejected with the+    -- same HTTP 415 Unsupported Media Type response.+    passthroughBehavior :: Prelude.Maybe PassthroughBehavior,+    -- | Specifies the format of the payload sent to an integration. Required for+    -- HTTP APIs.+    payloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | For WebSocket APIs, a key-value map specifying request parameters that+    -- are passed from the method request to the backend. The key is an+    -- integration request parameter name and the associated value is a method+    -- request parameter value or static value that must be enclosed within+    -- single quotes and pre-encoded as required by the backend. The method+    -- request parameter value must match the pattern of+    -- method.request.{location}.{name} , where {location} is querystring,+    -- path, or header; and {name} must be a valid and unique method request+    -- parameter name.+    --+    -- For HTTP API integrations with a specified integrationSubtype, request+    -- parameters are a key-value map specifying parameters that are passed to+    -- AWS_PROXY integrations. You can provide static values, or map request+    -- data, stage variables, or context variables that are evaluated at+    -- runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+    --+    -- For HTTP API integrations without a specified integrationSubtype request+    -- parameters are a key-value map specifying how to transform HTTP requests+    -- before sending them to the backend. The key should follow the pattern+    -- \<action>:\<header|querystring|path>.\<location> where action can be+    -- append, overwrite or remove. For values, you can provide static values,+    -- or map request data, stage variables, or context variables that are+    -- evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents a map of Velocity templates that are applied on the request+    -- payload based on the value of the Content-Type header sent by the+    -- client. The content type value is the key in this map, and the template+    -- (as a String) is the value. Supported only for WebSocket APIs.+    requestTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Supported only for HTTP APIs. You use response parameters to transform+    -- the HTTP response from a backend integration before returning the+    -- response to clients. Specify a key-value map from a selection key to+    -- response parameters. The selection key must be a valid HTTP status code+    -- within the range of 200-599. Response parameters are a key-value map.+    -- The key must match pattern \<action>:\<header>.\<location> or+    -- overwrite.statuscode. The action can be append, overwrite or remove. The+    -- value can be a static value, or map to response data, stage variables,+    -- or context variables that are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The template selection expression for the integration.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+    -- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+    -- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+    timeoutInMillis :: Prelude.Maybe Prelude.Natural,+    -- | The TLS configuration for a private integration. If you specify a TLS+    -- configuration, private integration traffic uses the HTTPS protocol.+    -- Supported only for HTTP APIs.+    tlsConfig :: Prelude.Maybe TlsConfigInput,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The integration type of an integration. One of the following:+    --+    -- AWS: for integrating the route or method request with an AWS service+    -- action, including the Lambda function-invoking action. With the Lambda+    -- function-invoking action, this is referred to as the Lambda custom+    -- integration. With any other AWS service action, this is known as AWS+    -- integration. Supported only for WebSocket APIs.+    --+    -- AWS_PROXY: for integrating the route or method request with a Lambda+    -- function or other AWS service action. This integration is also referred+    -- to as a Lambda proxy integration.+    --+    -- HTTP: for integrating the route or method request with an HTTP endpoint.+    -- This integration is also referred to as the HTTP custom integration.+    -- Supported only for WebSocket APIs.+    --+    -- HTTP_PROXY: for integrating the route or method request with an HTTP+    -- endpoint, with the client request passed through as-is. This is also+    -- referred to as HTTP proxy integration. For HTTP API private+    -- integrations, use an HTTP_PROXY integration.+    --+    -- MOCK: for integrating the route or method request with API Gateway as a+    -- \"loopback\" endpoint without invoking any backend. Supported only for+    -- WebSocket APIs.+    integrationType :: IntegrationType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'connectionId', 'createIntegration_connectionId' - The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+--+-- 'connectionType', 'createIntegration_connectionType' - The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+--+-- 'contentHandlingStrategy', 'createIntegration_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'credentialsArn', 'createIntegration_credentialsArn' - Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+--+-- 'description', 'createIntegration_description' - The description of the integration.+--+-- 'integrationMethod', 'createIntegration_integrationMethod' - Specifies the integration\'s HTTP method type.+--+-- 'integrationSubtype', 'createIntegration_integrationSubtype' - Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+--+-- 'integrationUri', 'createIntegration_integrationUri' - For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+--+-- 'passthroughBehavior', 'createIntegration_passthroughBehavior' - Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+--+-- 'payloadFormatVersion', 'createIntegration_payloadFormatVersion' - Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+--+-- 'requestParameters', 'createIntegration_requestParameters' - For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API integrations without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to the backend. The key should follow the pattern+-- \<action>:\<header|querystring|path>.\<location> where action can be+-- append, overwrite or remove. For values, you can provide static values,+-- or map request data, stage variables, or context variables that are+-- evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'requestTemplates', 'createIntegration_requestTemplates' - Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+--+-- 'responseParameters', 'createIntegration_responseParameters' - Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'templateSelectionExpression', 'createIntegration_templateSelectionExpression' - The template selection expression for the integration.+--+-- 'timeoutInMillis', 'createIntegration_timeoutInMillis' - Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+--+-- 'tlsConfig', 'createIntegration_tlsConfig' - The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+--+-- 'apiId', 'createIntegration_apiId' - The API identifier.+--+-- 'integrationType', 'createIntegration_integrationType' - The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration. For HTTP API private+-- integrations, use an HTTP_PROXY integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+newCreateIntegration ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'integrationType'+  IntegrationType ->+  CreateIntegration+newCreateIntegration pApiId_ pIntegrationType_ =+  CreateIntegration'+    { connectionId = Prelude.Nothing,+      connectionType = Prelude.Nothing,+      contentHandlingStrategy = Prelude.Nothing,+      credentialsArn = Prelude.Nothing,+      description = Prelude.Nothing,+      integrationMethod = Prelude.Nothing,+      integrationSubtype = Prelude.Nothing,+      integrationUri = Prelude.Nothing,+      passthroughBehavior = Prelude.Nothing,+      payloadFormatVersion = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      requestTemplates = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      templateSelectionExpression = Prelude.Nothing,+      timeoutInMillis = Prelude.Nothing,+      tlsConfig = Prelude.Nothing,+      apiId = pApiId_,+      integrationType = pIntegrationType_+    }++-- | The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+createIntegration_connectionId :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Text)+createIntegration_connectionId = Lens.lens (\CreateIntegration' {connectionId} -> connectionId) (\s@CreateIntegration' {} a -> s {connectionId = a} :: CreateIntegration)++-- | The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+createIntegration_connectionType :: Lens.Lens' CreateIntegration (Prelude.Maybe ConnectionType)+createIntegration_connectionType = Lens.lens (\CreateIntegration' {connectionType} -> connectionType) (\s@CreateIntegration' {} a -> s {connectionType = a} :: CreateIntegration)++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+createIntegration_contentHandlingStrategy :: Lens.Lens' CreateIntegration (Prelude.Maybe ContentHandlingStrategy)+createIntegration_contentHandlingStrategy = Lens.lens (\CreateIntegration' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@CreateIntegration' {} a -> s {contentHandlingStrategy = a} :: CreateIntegration)++-- | Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+createIntegration_credentialsArn :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Text)+createIntegration_credentialsArn = Lens.lens (\CreateIntegration' {credentialsArn} -> credentialsArn) (\s@CreateIntegration' {} a -> s {credentialsArn = a} :: CreateIntegration)++-- | The description of the integration.+createIntegration_description :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Text)+createIntegration_description = Lens.lens (\CreateIntegration' {description} -> description) (\s@CreateIntegration' {} a -> s {description = a} :: CreateIntegration)++-- | Specifies the integration\'s HTTP method type.+createIntegration_integrationMethod :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Text)+createIntegration_integrationMethod = Lens.lens (\CreateIntegration' {integrationMethod} -> integrationMethod) (\s@CreateIntegration' {} a -> s {integrationMethod = a} :: CreateIntegration)++-- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+createIntegration_integrationSubtype :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Text)+createIntegration_integrationSubtype = Lens.lens (\CreateIntegration' {integrationSubtype} -> integrationSubtype) (\s@CreateIntegration' {} a -> s {integrationSubtype = a} :: CreateIntegration)++-- | For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+createIntegration_integrationUri :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Text)+createIntegration_integrationUri = Lens.lens (\CreateIntegration' {integrationUri} -> integrationUri) (\s@CreateIntegration' {} a -> s {integrationUri = a} :: CreateIntegration)++-- | Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+createIntegration_passthroughBehavior :: Lens.Lens' CreateIntegration (Prelude.Maybe PassthroughBehavior)+createIntegration_passthroughBehavior = Lens.lens (\CreateIntegration' {passthroughBehavior} -> passthroughBehavior) (\s@CreateIntegration' {} a -> s {passthroughBehavior = a} :: CreateIntegration)++-- | Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+createIntegration_payloadFormatVersion :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Text)+createIntegration_payloadFormatVersion = Lens.lens (\CreateIntegration' {payloadFormatVersion} -> payloadFormatVersion) (\s@CreateIntegration' {} a -> s {payloadFormatVersion = a} :: CreateIntegration)++-- | For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API integrations without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to the backend. The key should follow the pattern+-- \<action>:\<header|querystring|path>.\<location> where action can be+-- append, overwrite or remove. For values, you can provide static values,+-- or map request data, stage variables, or context variables that are+-- evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+createIntegration_requestParameters :: Lens.Lens' CreateIntegration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegration_requestParameters = Lens.lens (\CreateIntegration' {requestParameters} -> requestParameters) (\s@CreateIntegration' {} a -> s {requestParameters = a} :: CreateIntegration) Prelude.. Lens.mapping Lens.coerced++-- | Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+createIntegration_requestTemplates :: Lens.Lens' CreateIntegration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegration_requestTemplates = Lens.lens (\CreateIntegration' {requestTemplates} -> requestTemplates) (\s@CreateIntegration' {} a -> s {requestTemplates = a} :: CreateIntegration) Prelude.. Lens.mapping Lens.coerced++-- | Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+createIntegration_responseParameters :: Lens.Lens' CreateIntegration (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+createIntegration_responseParameters = Lens.lens (\CreateIntegration' {responseParameters} -> responseParameters) (\s@CreateIntegration' {} a -> s {responseParameters = a} :: CreateIntegration) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expression for the integration.+createIntegration_templateSelectionExpression :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Text)+createIntegration_templateSelectionExpression = Lens.lens (\CreateIntegration' {templateSelectionExpression} -> templateSelectionExpression) (\s@CreateIntegration' {} a -> s {templateSelectionExpression = a} :: CreateIntegration)++-- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+createIntegration_timeoutInMillis :: Lens.Lens' CreateIntegration (Prelude.Maybe Prelude.Natural)+createIntegration_timeoutInMillis = Lens.lens (\CreateIntegration' {timeoutInMillis} -> timeoutInMillis) (\s@CreateIntegration' {} a -> s {timeoutInMillis = a} :: CreateIntegration)++-- | The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+createIntegration_tlsConfig :: Lens.Lens' CreateIntegration (Prelude.Maybe TlsConfigInput)+createIntegration_tlsConfig = Lens.lens (\CreateIntegration' {tlsConfig} -> tlsConfig) (\s@CreateIntegration' {} a -> s {tlsConfig = a} :: CreateIntegration)++-- | The API identifier.+createIntegration_apiId :: Lens.Lens' CreateIntegration Prelude.Text+createIntegration_apiId = Lens.lens (\CreateIntegration' {apiId} -> apiId) (\s@CreateIntegration' {} a -> s {apiId = a} :: CreateIntegration)++-- | The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration. For HTTP API private+-- integrations, use an HTTP_PROXY integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+createIntegration_integrationType :: Lens.Lens' CreateIntegration IntegrationType+createIntegration_integrationType = Lens.lens (\CreateIntegration' {integrationType} -> integrationType) (\s@CreateIntegration' {} a -> s {integrationType = a} :: CreateIntegration)++instance Core.AWSRequest CreateIntegration where+  type+    AWSResponse CreateIntegration =+      CreateIntegrationResponse'+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateIntegrationResponse''+            Prelude.<$> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "connectionId")+            Prelude.<*> (x Data..?> "connectionType")+            Prelude.<*> (x Data..?> "contentHandlingStrategy")+            Prelude.<*> (x Data..?> "credentialsArn")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "integrationId")+            Prelude.<*> (x Data..?> "integrationMethod")+            Prelude.<*> (x Data..?> "integrationResponseSelectionExpression")+            Prelude.<*> (x Data..?> "integrationSubtype")+            Prelude.<*> (x Data..?> "integrationType")+            Prelude.<*> (x Data..?> "integrationUri")+            Prelude.<*> (x Data..?> "passthroughBehavior")+            Prelude.<*> (x Data..?> "payloadFormatVersion")+            Prelude.<*> ( x+                            Data..?> "requestParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "requestTemplates"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "templateSelectionExpression")+            Prelude.<*> (x Data..?> "timeoutInMillis")+            Prelude.<*> (x Data..?> "tlsConfig")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateIntegration where+  hashWithSalt _salt CreateIntegration' {..} =+    _salt+      `Prelude.hashWithSalt` connectionId+      `Prelude.hashWithSalt` connectionType+      `Prelude.hashWithSalt` contentHandlingStrategy+      `Prelude.hashWithSalt` credentialsArn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` integrationMethod+      `Prelude.hashWithSalt` integrationSubtype+      `Prelude.hashWithSalt` integrationUri+      `Prelude.hashWithSalt` passthroughBehavior+      `Prelude.hashWithSalt` payloadFormatVersion+      `Prelude.hashWithSalt` requestParameters+      `Prelude.hashWithSalt` requestTemplates+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` templateSelectionExpression+      `Prelude.hashWithSalt` timeoutInMillis+      `Prelude.hashWithSalt` tlsConfig+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` integrationType++instance Prelude.NFData CreateIntegration where+  rnf CreateIntegration' {..} =+    Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionType+      `Prelude.seq` Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf credentialsArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf integrationMethod+      `Prelude.seq` Prelude.rnf integrationSubtype+      `Prelude.seq` Prelude.rnf integrationUri+      `Prelude.seq` Prelude.rnf passthroughBehavior+      `Prelude.seq` Prelude.rnf payloadFormatVersion+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf requestTemplates+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf templateSelectionExpression+      `Prelude.seq` Prelude.rnf timeoutInMillis+      `Prelude.seq` Prelude.rnf tlsConfig+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf integrationType++instance Data.ToHeaders CreateIntegration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateIntegration where+  toJSON CreateIntegration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("connectionId" Data..=) Prelude.<$> connectionId,+            ("connectionType" Data..=)+              Prelude.<$> connectionType,+            ("contentHandlingStrategy" Data..=)+              Prelude.<$> contentHandlingStrategy,+            ("credentialsArn" Data..=)+              Prelude.<$> credentialsArn,+            ("description" Data..=) Prelude.<$> description,+            ("integrationMethod" Data..=)+              Prelude.<$> integrationMethod,+            ("integrationSubtype" Data..=)+              Prelude.<$> integrationSubtype,+            ("integrationUri" Data..=)+              Prelude.<$> integrationUri,+            ("passthroughBehavior" Data..=)+              Prelude.<$> passthroughBehavior,+            ("payloadFormatVersion" Data..=)+              Prelude.<$> payloadFormatVersion,+            ("requestParameters" Data..=)+              Prelude.<$> requestParameters,+            ("requestTemplates" Data..=)+              Prelude.<$> requestTemplates,+            ("responseParameters" Data..=)+              Prelude.<$> responseParameters,+            ("templateSelectionExpression" Data..=)+              Prelude.<$> templateSelectionExpression,+            ("timeoutInMillis" Data..=)+              Prelude.<$> timeoutInMillis,+            ("tlsConfig" Data..=) Prelude.<$> tlsConfig,+            Prelude.Just+              ("integrationType" Data..= integrationType)+          ]+      )++instance Data.ToPath CreateIntegration where+  toPath CreateIntegration' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/integrations"]++instance Data.ToQuery CreateIntegration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateIntegrationResponse'' smart constructor.+data CreateIntegrationResponse' = CreateIntegrationResponse''+  { -- | Specifies whether an integration is managed by API Gateway. If you+    -- created an API using using quick create, the resulting integration is+    -- managed by API Gateway. You can update a managed integration, but you+    -- can\'t delete it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the VPC link for a private integration. Supported only for+    -- HTTP APIs.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | The type of the network connection to the integration endpoint. Specify+    -- INTERNET for connections through the public routable internet or+    -- VPC_LINK for private connections between API Gateway and resources in a+    -- VPC. The default value is INTERNET.+    connectionType :: Prelude.Maybe ConnectionType,+    -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | Specifies the credentials required for the integration, if any. For AWS+    -- integrations, three options are available. To specify an IAM Role for+    -- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+    -- require that the caller\'s identity be passed through from the request,+    -- specify the string arn:aws:iam::*:user\/*. To use resource-based+    -- permissions on supported AWS services, specify null.+    credentialsArn :: Prelude.Maybe Prelude.Text,+    -- | Represents the description of an integration.+    description :: Prelude.Maybe Prelude.Text,+    -- | Represents the identifier of an integration.+    integrationId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the integration\'s HTTP method type.+    integrationMethod :: Prelude.Maybe Prelude.Text,+    -- | The integration response selection expression for the integration.+    -- Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+    integrationResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+    -- service action to invoke. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+    integrationSubtype :: Prelude.Maybe Prelude.Text,+    -- | The integration type of an integration. One of the following:+    --+    -- AWS: for integrating the route or method request with an AWS service+    -- action, including the Lambda function-invoking action. With the Lambda+    -- function-invoking action, this is referred to as the Lambda custom+    -- integration. With any other AWS service action, this is known as AWS+    -- integration. Supported only for WebSocket APIs.+    --+    -- AWS_PROXY: for integrating the route or method request with a Lambda+    -- function or other AWS service action. This integration is also referred+    -- to as a Lambda proxy integration.+    --+    -- HTTP: for integrating the route or method request with an HTTP endpoint.+    -- This integration is also referred to as the HTTP custom integration.+    -- Supported only for WebSocket APIs.+    --+    -- HTTP_PROXY: for integrating the route or method request with an HTTP+    -- endpoint, with the client request passed through as-is. This is also+    -- referred to as HTTP proxy integration.+    --+    -- MOCK: for integrating the route or method request with API Gateway as a+    -- \"loopback\" endpoint without invoking any backend. Supported only for+    -- WebSocket APIs.+    integrationType :: Prelude.Maybe IntegrationType,+    -- | For a Lambda integration, specify the URI of a Lambda function.+    --+    -- For an HTTP integration, specify a fully-qualified URL.+    --+    -- For an HTTP API private integration, specify the ARN of an Application+    -- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+    -- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+    -- uses DiscoverInstances to identify resources. You can use query+    -- parameters to target specific resources. To learn more, see+    -- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+    -- For private integrations, all resources must be owned by the same AWS+    -- account.+    integrationUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies the pass-through behavior for incoming requests based on the+    -- Content-Type header in the request, and the available mapping templates+    -- specified as the requestTemplates property on the Integration resource.+    -- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+    -- NEVER. Supported only for WebSocket APIs.+    --+    -- WHEN_NO_MATCH passes the request body for unmapped content types through+    -- to the integration backend without transformation.+    --+    -- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+    -- Type response.+    --+    -- WHEN_NO_TEMPLATES allows pass-through when the integration has no+    -- content types mapped to templates. However, if there is at least one+    -- content type defined, unmapped content types will be rejected with the+    -- same HTTP 415 Unsupported Media Type response.+    passthroughBehavior :: Prelude.Maybe PassthroughBehavior,+    -- | Specifies the format of the payload sent to an integration. Required for+    -- HTTP APIs.+    payloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | For WebSocket APIs, a key-value map specifying request parameters that+    -- are passed from the method request to the backend. The key is an+    -- integration request parameter name and the associated value is a method+    -- request parameter value or static value that must be enclosed within+    -- single quotes and pre-encoded as required by the backend. The method+    -- request parameter value must match the pattern of+    -- method.request.{location}.{name} , where {location} is querystring,+    -- path, or header; and {name} must be a valid and unique method request+    -- parameter name.+    --+    -- For HTTP API integrations with a specified integrationSubtype, request+    -- parameters are a key-value map specifying parameters that are passed to+    -- AWS_PROXY integrations. You can provide static values, or map request+    -- data, stage variables, or context variables that are evaluated at+    -- runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+    --+    -- For HTTP API itegrations, without a specified integrationSubtype request+    -- parameters are a key-value map specifying how to transform HTTP requests+    -- before sending them to backend integrations. The key should follow the+    -- pattern \<action>:\<header|querystring|path>.\<location>. The action can+    -- be append, overwrite or remove. For values, you can provide static+    -- values, or map request data, stage variables, or context variables that+    -- are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents a map of Velocity templates that are applied on the request+    -- payload based on the value of the Content-Type header sent by the+    -- client. The content type value is the key in this map, and the template+    -- (as a String) is the value. Supported only for WebSocket APIs.+    requestTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Supported only for HTTP APIs. You use response parameters to transform+    -- the HTTP response from a backend integration before returning the+    -- response to clients. Specify a key-value map from a selection key to+    -- response parameters. The selection key must be a valid HTTP status code+    -- within the range of 200-599. Response parameters are a key-value map.+    -- The key must match pattern \<action>:\<header>.\<location> or+    -- overwrite.statuscode. The action can be append, overwrite or remove. The+    -- value can be a static value, or map to response data, stage variables,+    -- or context variables that are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The template selection expression for the integration. Supported only+    -- for WebSocket APIs.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+    -- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+    -- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+    timeoutInMillis :: Prelude.Maybe Prelude.Natural,+    -- | The TLS configuration for a private integration. If you specify a TLS+    -- configuration, private integration traffic uses the HTTPS protocol.+    -- Supported only for HTTP APIs.+    tlsConfig :: Prelude.Maybe TlsConfig,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIntegrationResponse'' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayManaged', 'createIntegrationResponse'_apiGatewayManaged' - Specifies whether an integration is managed by API Gateway. If you+-- created an API using using quick create, the resulting integration is+-- managed by API Gateway. You can update a managed integration, but you+-- can\'t delete it.+--+-- 'connectionId', 'createIntegrationResponse'_connectionId' - The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+--+-- 'connectionType', 'createIntegrationResponse'_connectionType' - The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+--+-- 'contentHandlingStrategy', 'createIntegrationResponse'_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'credentialsArn', 'createIntegrationResponse'_credentialsArn' - Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+--+-- 'description', 'createIntegrationResponse'_description' - Represents the description of an integration.+--+-- 'integrationId', 'createIntegrationResponse'_integrationId' - Represents the identifier of an integration.+--+-- 'integrationMethod', 'createIntegrationResponse'_integrationMethod' - Specifies the integration\'s HTTP method type.+--+-- 'integrationResponseSelectionExpression', 'createIntegrationResponse'_integrationResponseSelectionExpression' - The integration response selection expression for the integration.+-- Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+--+-- 'integrationSubtype', 'createIntegrationResponse'_integrationSubtype' - Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+--+-- 'integrationType', 'createIntegrationResponse'_integrationType' - The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+--+-- 'integrationUri', 'createIntegrationResponse'_integrationUri' - For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+--+-- 'passthroughBehavior', 'createIntegrationResponse'_passthroughBehavior' - Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+--+-- 'payloadFormatVersion', 'createIntegrationResponse'_payloadFormatVersion' - Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+--+-- 'requestParameters', 'createIntegrationResponse'_requestParameters' - For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API itegrations, without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to backend integrations. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location>. The action can+-- be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'requestTemplates', 'createIntegrationResponse'_requestTemplates' - Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+--+-- 'responseParameters', 'createIntegrationResponse'_responseParameters' - Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'templateSelectionExpression', 'createIntegrationResponse'_templateSelectionExpression' - The template selection expression for the integration. Supported only+-- for WebSocket APIs.+--+-- 'timeoutInMillis', 'createIntegrationResponse'_timeoutInMillis' - Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+--+-- 'tlsConfig', 'createIntegrationResponse'_tlsConfig' - The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+--+-- 'httpStatus', 'createIntegrationResponse'_httpStatus' - The response's http status code.+newCreateIntegrationResponse' ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateIntegrationResponse'+newCreateIntegrationResponse' pHttpStatus_ =+  CreateIntegrationResponse''+    { apiGatewayManaged =+        Prelude.Nothing,+      connectionId = Prelude.Nothing,+      connectionType = Prelude.Nothing,+      contentHandlingStrategy = Prelude.Nothing,+      credentialsArn = Prelude.Nothing,+      description = Prelude.Nothing,+      integrationId = Prelude.Nothing,+      integrationMethod = Prelude.Nothing,+      integrationResponseSelectionExpression =+        Prelude.Nothing,+      integrationSubtype = Prelude.Nothing,+      integrationType = Prelude.Nothing,+      integrationUri = Prelude.Nothing,+      passthroughBehavior = Prelude.Nothing,+      payloadFormatVersion = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      requestTemplates = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      templateSelectionExpression = Prelude.Nothing,+      timeoutInMillis = Prelude.Nothing,+      tlsConfig = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether an integration is managed by API Gateway. If you+-- created an API using using quick create, the resulting integration is+-- managed by API Gateway. You can update a managed integration, but you+-- can\'t delete it.+createIntegrationResponse'_apiGatewayManaged :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Bool)+createIntegrationResponse'_apiGatewayManaged = Lens.lens (\CreateIntegrationResponse'' {apiGatewayManaged} -> apiGatewayManaged) (\s@CreateIntegrationResponse'' {} a -> s {apiGatewayManaged = a} :: CreateIntegrationResponse')++-- | The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+createIntegrationResponse'_connectionId :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_connectionId = Lens.lens (\CreateIntegrationResponse'' {connectionId} -> connectionId) (\s@CreateIntegrationResponse'' {} a -> s {connectionId = a} :: CreateIntegrationResponse')++-- | The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+createIntegrationResponse'_connectionType :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe ConnectionType)+createIntegrationResponse'_connectionType = Lens.lens (\CreateIntegrationResponse'' {connectionType} -> connectionType) (\s@CreateIntegrationResponse'' {} a -> s {connectionType = a} :: CreateIntegrationResponse')++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+createIntegrationResponse'_contentHandlingStrategy :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe ContentHandlingStrategy)+createIntegrationResponse'_contentHandlingStrategy = Lens.lens (\CreateIntegrationResponse'' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@CreateIntegrationResponse'' {} a -> s {contentHandlingStrategy = a} :: CreateIntegrationResponse')++-- | Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+createIntegrationResponse'_credentialsArn :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_credentialsArn = Lens.lens (\CreateIntegrationResponse'' {credentialsArn} -> credentialsArn) (\s@CreateIntegrationResponse'' {} a -> s {credentialsArn = a} :: CreateIntegrationResponse')++-- | Represents the description of an integration.+createIntegrationResponse'_description :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_description = Lens.lens (\CreateIntegrationResponse'' {description} -> description) (\s@CreateIntegrationResponse'' {} a -> s {description = a} :: CreateIntegrationResponse')++-- | Represents the identifier of an integration.+createIntegrationResponse'_integrationId :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_integrationId = Lens.lens (\CreateIntegrationResponse'' {integrationId} -> integrationId) (\s@CreateIntegrationResponse'' {} a -> s {integrationId = a} :: CreateIntegrationResponse')++-- | Specifies the integration\'s HTTP method type.+createIntegrationResponse'_integrationMethod :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_integrationMethod = Lens.lens (\CreateIntegrationResponse'' {integrationMethod} -> integrationMethod) (\s@CreateIntegrationResponse'' {} a -> s {integrationMethod = a} :: CreateIntegrationResponse')++-- | The integration response selection expression for the integration.+-- Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+createIntegrationResponse'_integrationResponseSelectionExpression :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_integrationResponseSelectionExpression = Lens.lens (\CreateIntegrationResponse'' {integrationResponseSelectionExpression} -> integrationResponseSelectionExpression) (\s@CreateIntegrationResponse'' {} a -> s {integrationResponseSelectionExpression = a} :: CreateIntegrationResponse')++-- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+createIntegrationResponse'_integrationSubtype :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_integrationSubtype = Lens.lens (\CreateIntegrationResponse'' {integrationSubtype} -> integrationSubtype) (\s@CreateIntegrationResponse'' {} a -> s {integrationSubtype = a} :: CreateIntegrationResponse')++-- | The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+createIntegrationResponse'_integrationType :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe IntegrationType)+createIntegrationResponse'_integrationType = Lens.lens (\CreateIntegrationResponse'' {integrationType} -> integrationType) (\s@CreateIntegrationResponse'' {} a -> s {integrationType = a} :: CreateIntegrationResponse')++-- | For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+createIntegrationResponse'_integrationUri :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_integrationUri = Lens.lens (\CreateIntegrationResponse'' {integrationUri} -> integrationUri) (\s@CreateIntegrationResponse'' {} a -> s {integrationUri = a} :: CreateIntegrationResponse')++-- | Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+createIntegrationResponse'_passthroughBehavior :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe PassthroughBehavior)+createIntegrationResponse'_passthroughBehavior = Lens.lens (\CreateIntegrationResponse'' {passthroughBehavior} -> passthroughBehavior) (\s@CreateIntegrationResponse'' {} a -> s {passthroughBehavior = a} :: CreateIntegrationResponse')++-- | Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+createIntegrationResponse'_payloadFormatVersion :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_payloadFormatVersion = Lens.lens (\CreateIntegrationResponse'' {payloadFormatVersion} -> payloadFormatVersion) (\s@CreateIntegrationResponse'' {} a -> s {payloadFormatVersion = a} :: CreateIntegrationResponse')++-- | For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API itegrations, without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to backend integrations. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location>. The action can+-- be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+createIntegrationResponse'_requestParameters :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegrationResponse'_requestParameters = Lens.lens (\CreateIntegrationResponse'' {requestParameters} -> requestParameters) (\s@CreateIntegrationResponse'' {} a -> s {requestParameters = a} :: CreateIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+createIntegrationResponse'_requestTemplates :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegrationResponse'_requestTemplates = Lens.lens (\CreateIntegrationResponse'' {requestTemplates} -> requestTemplates) (\s@CreateIntegrationResponse'' {} a -> s {requestTemplates = a} :: CreateIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+createIntegrationResponse'_responseParameters :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+createIntegrationResponse'_responseParameters = Lens.lens (\CreateIntegrationResponse'' {responseParameters} -> responseParameters) (\s@CreateIntegrationResponse'' {} a -> s {responseParameters = a} :: CreateIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | The template selection expression for the integration. Supported only+-- for WebSocket APIs.+createIntegrationResponse'_templateSelectionExpression :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Text)+createIntegrationResponse'_templateSelectionExpression = Lens.lens (\CreateIntegrationResponse'' {templateSelectionExpression} -> templateSelectionExpression) (\s@CreateIntegrationResponse'' {} a -> s {templateSelectionExpression = a} :: CreateIntegrationResponse')++-- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+createIntegrationResponse'_timeoutInMillis :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe Prelude.Natural)+createIntegrationResponse'_timeoutInMillis = Lens.lens (\CreateIntegrationResponse'' {timeoutInMillis} -> timeoutInMillis) (\s@CreateIntegrationResponse'' {} a -> s {timeoutInMillis = a} :: CreateIntegrationResponse')++-- | The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+createIntegrationResponse'_tlsConfig :: Lens.Lens' CreateIntegrationResponse' (Prelude.Maybe TlsConfig)+createIntegrationResponse'_tlsConfig = Lens.lens (\CreateIntegrationResponse'' {tlsConfig} -> tlsConfig) (\s@CreateIntegrationResponse'' {} a -> s {tlsConfig = a} :: CreateIntegrationResponse')++-- | The response's http status code.+createIntegrationResponse'_httpStatus :: Lens.Lens' CreateIntegrationResponse' Prelude.Int+createIntegrationResponse'_httpStatus = Lens.lens (\CreateIntegrationResponse'' {httpStatus} -> httpStatus) (\s@CreateIntegrationResponse'' {} a -> s {httpStatus = a} :: CreateIntegrationResponse')++instance Prelude.NFData CreateIntegrationResponse' where+  rnf CreateIntegrationResponse'' {..} =+    Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionType+      `Prelude.seq` Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf credentialsArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf integrationId+      `Prelude.seq` Prelude.rnf integrationMethod+      `Prelude.seq` Prelude.rnf integrationResponseSelectionExpression+      `Prelude.seq` Prelude.rnf integrationSubtype+      `Prelude.seq` Prelude.rnf integrationType+      `Prelude.seq` Prelude.rnf integrationUri+      `Prelude.seq` Prelude.rnf passthroughBehavior+      `Prelude.seq` Prelude.rnf payloadFormatVersion+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf requestTemplates+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf+        templateSelectionExpression+      `Prelude.seq` Prelude.rnf timeoutInMillis+      `Prelude.seq` Prelude.rnf tlsConfig+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateIntegrationResponse.hs view
@@ -0,0 +1,494 @@+{-# 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.ApiGatewayV2.CreateIntegrationResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an IntegrationResponses.+module Amazonka.ApiGatewayV2.CreateIntegrationResponse+  ( -- * Creating a Request+    CreateIntegrationResponse (..),+    newCreateIntegrationResponse,++    -- * Request Lenses+    createIntegrationResponse_contentHandlingStrategy,+    createIntegrationResponse_responseParameters,+    createIntegrationResponse_responseTemplates,+    createIntegrationResponse_templateSelectionExpression,+    createIntegrationResponse_apiId,+    createIntegrationResponse_integrationId,+    createIntegrationResponse_integrationResponseKey,++    -- * Destructuring the Response+    CreateIntegrationResponseResponse (..),+    newCreateIntegrationResponseResponse,++    -- * Response Lenses+    createIntegrationResponseResponse_contentHandlingStrategy,+    createIntegrationResponseResponse_integrationResponseId,+    createIntegrationResponseResponse_integrationResponseKey,+    createIntegrationResponseResponse_responseParameters,+    createIntegrationResponseResponse_responseTemplates,+    createIntegrationResponseResponse_templateSelectionExpression,+    createIntegrationResponseResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new IntegrationResponse resource to represent an integration+-- response.+--+-- /See:/ 'newCreateIntegrationResponse' smart constructor.+data CreateIntegrationResponse = CreateIntegrationResponse'+  { -- | Specifies how to handle response payload content type conversions.+    -- Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the+    -- following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | A key-value map specifying response parameters that are passed to the+    -- method response from the backend. The key is a method response header+    -- parameter name and the mapped value is an integration response header+    -- value, a static value enclosed within a pair of single quotes, or a JSON+    -- expression from the integration response body. The mapping key must+    -- match the pattern of method.response.header.{name}, where {name} is a+    -- valid and unique header name. The mapped non-static value must match the+    -- pattern of integration.response.header.{name} or+    -- integration.response.body.{JSON-expression}, where {name} is a valid and+    -- unique response header name and {JSON-expression} is a valid JSON+    -- expression without the $ prefix.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of response templates for the integration response as a+    -- string-to-string map of key-value pairs. Response templates are+    -- represented as a key\/value map, with a content-type as the key and a+    -- template as the value.+    responseTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The template selection expression for the integration response.+    -- Supported only for WebSocket APIs.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The integration ID.+    integrationId :: Prelude.Text,+    -- | The integration response key.+    integrationResponseKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentHandlingStrategy', 'createIntegrationResponse_contentHandlingStrategy' - Specifies how to handle response payload content type conversions.+-- Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the+-- following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'responseParameters', 'createIntegrationResponse_responseParameters' - A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where {name} is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where {name} is a valid and+-- unique response header name and {JSON-expression} is a valid JSON+-- expression without the $ prefix.+--+-- 'responseTemplates', 'createIntegrationResponse_responseTemplates' - The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+--+-- 'templateSelectionExpression', 'createIntegrationResponse_templateSelectionExpression' - The template selection expression for the integration response.+-- Supported only for WebSocket APIs.+--+-- 'apiId', 'createIntegrationResponse_apiId' - The API identifier.+--+-- 'integrationId', 'createIntegrationResponse_integrationId' - The integration ID.+--+-- 'integrationResponseKey', 'createIntegrationResponse_integrationResponseKey' - The integration response key.+newCreateIntegrationResponse ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'integrationId'+  Prelude.Text ->+  -- | 'integrationResponseKey'+  Prelude.Text ->+  CreateIntegrationResponse+newCreateIntegrationResponse+  pApiId_+  pIntegrationId_+  pIntegrationResponseKey_ =+    CreateIntegrationResponse'+      { contentHandlingStrategy =+          Prelude.Nothing,+        responseParameters = Prelude.Nothing,+        responseTemplates = Prelude.Nothing,+        templateSelectionExpression = Prelude.Nothing,+        apiId = pApiId_,+        integrationId = pIntegrationId_,+        integrationResponseKey =+          pIntegrationResponseKey_+      }++-- | Specifies how to handle response payload content type conversions.+-- Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the+-- following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+createIntegrationResponse_contentHandlingStrategy :: Lens.Lens' CreateIntegrationResponse (Prelude.Maybe ContentHandlingStrategy)+createIntegrationResponse_contentHandlingStrategy = Lens.lens (\CreateIntegrationResponse' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@CreateIntegrationResponse' {} a -> s {contentHandlingStrategy = a} :: CreateIntegrationResponse)++-- | A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where {name} is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where {name} is a valid and+-- unique response header name and {JSON-expression} is a valid JSON+-- expression without the $ prefix.+createIntegrationResponse_responseParameters :: Lens.Lens' CreateIntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegrationResponse_responseParameters = Lens.lens (\CreateIntegrationResponse' {responseParameters} -> responseParameters) (\s@CreateIntegrationResponse' {} a -> s {responseParameters = a} :: CreateIntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+createIntegrationResponse_responseTemplates :: Lens.Lens' CreateIntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegrationResponse_responseTemplates = Lens.lens (\CreateIntegrationResponse' {responseTemplates} -> responseTemplates) (\s@CreateIntegrationResponse' {} a -> s {responseTemplates = a} :: CreateIntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expression for the integration response.+-- Supported only for WebSocket APIs.+createIntegrationResponse_templateSelectionExpression :: Lens.Lens' CreateIntegrationResponse (Prelude.Maybe Prelude.Text)+createIntegrationResponse_templateSelectionExpression = Lens.lens (\CreateIntegrationResponse' {templateSelectionExpression} -> templateSelectionExpression) (\s@CreateIntegrationResponse' {} a -> s {templateSelectionExpression = a} :: CreateIntegrationResponse)++-- | The API identifier.+createIntegrationResponse_apiId :: Lens.Lens' CreateIntegrationResponse Prelude.Text+createIntegrationResponse_apiId = Lens.lens (\CreateIntegrationResponse' {apiId} -> apiId) (\s@CreateIntegrationResponse' {} a -> s {apiId = a} :: CreateIntegrationResponse)++-- | The integration ID.+createIntegrationResponse_integrationId :: Lens.Lens' CreateIntegrationResponse Prelude.Text+createIntegrationResponse_integrationId = Lens.lens (\CreateIntegrationResponse' {integrationId} -> integrationId) (\s@CreateIntegrationResponse' {} a -> s {integrationId = a} :: CreateIntegrationResponse)++-- | The integration response key.+createIntegrationResponse_integrationResponseKey :: Lens.Lens' CreateIntegrationResponse Prelude.Text+createIntegrationResponse_integrationResponseKey = Lens.lens (\CreateIntegrationResponse' {integrationResponseKey} -> integrationResponseKey) (\s@CreateIntegrationResponse' {} a -> s {integrationResponseKey = a} :: CreateIntegrationResponse)++instance Core.AWSRequest CreateIntegrationResponse where+  type+    AWSResponse CreateIntegrationResponse =+      CreateIntegrationResponseResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateIntegrationResponseResponse'+            Prelude.<$> (x Data..?> "contentHandlingStrategy")+            Prelude.<*> (x Data..?> "integrationResponseId")+            Prelude.<*> (x Data..?> "integrationResponseKey")+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "responseTemplates"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "templateSelectionExpression")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateIntegrationResponse where+  hashWithSalt _salt CreateIntegrationResponse' {..} =+    _salt+      `Prelude.hashWithSalt` contentHandlingStrategy+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` responseTemplates+      `Prelude.hashWithSalt` templateSelectionExpression+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` integrationId+      `Prelude.hashWithSalt` integrationResponseKey++instance Prelude.NFData CreateIntegrationResponse where+  rnf CreateIntegrationResponse' {..} =+    Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf responseTemplates+      `Prelude.seq` Prelude.rnf templateSelectionExpression+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf integrationId+      `Prelude.seq` Prelude.rnf integrationResponseKey++instance Data.ToHeaders CreateIntegrationResponse where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateIntegrationResponse where+  toJSON CreateIntegrationResponse' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("contentHandlingStrategy" Data..=)+              Prelude.<$> contentHandlingStrategy,+            ("responseParameters" Data..=)+              Prelude.<$> responseParameters,+            ("responseTemplates" Data..=)+              Prelude.<$> responseTemplates,+            ("templateSelectionExpression" Data..=)+              Prelude.<$> templateSelectionExpression,+            Prelude.Just+              ( "integrationResponseKey"+                  Data..= integrationResponseKey+              )+          ]+      )++instance Data.ToPath CreateIntegrationResponse where+  toPath CreateIntegrationResponse' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/integrations/",+        Data.toBS integrationId,+        "/integrationresponses"+      ]++instance Data.ToQuery CreateIntegrationResponse where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateIntegrationResponseResponse' smart constructor.+data CreateIntegrationResponseResponse = CreateIntegrationResponseResponse'+  { -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | The integration response ID.+    integrationResponseId :: Prelude.Maybe Prelude.Text,+    -- | The integration response key.+    integrationResponseKey :: Prelude.Maybe Prelude.Text,+    -- | A key-value map specifying response parameters that are passed to the+    -- method response from the backend. The key is a method response header+    -- parameter name and the mapped value is an integration response header+    -- value, a static value enclosed within a pair of single quotes, or a JSON+    -- expression from the integration response body. The mapping key must+    -- match the pattern of method.response.header.{name}, where name is a+    -- valid and unique header name. The mapped non-static value must match the+    -- pattern of integration.response.header.{name} or+    -- integration.response.body.{JSON-expression}, where name is a valid and+    -- unique response header name and JSON-expression is a valid JSON+    -- expression without the $ prefix.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of response templates for the integration response as a+    -- string-to-string map of key-value pairs. Response templates are+    -- represented as a key\/value map, with a content-type as the key and a+    -- template as the value.+    responseTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The template selection expressions for the integration response.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIntegrationResponseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentHandlingStrategy', 'createIntegrationResponseResponse_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'integrationResponseId', 'createIntegrationResponseResponse_integrationResponseId' - The integration response ID.+--+-- 'integrationResponseKey', 'createIntegrationResponseResponse_integrationResponseKey' - The integration response key.+--+-- 'responseParameters', 'createIntegrationResponseResponse_responseParameters' - A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where name is a valid and+-- unique response header name and JSON-expression is a valid JSON+-- expression without the $ prefix.+--+-- 'responseTemplates', 'createIntegrationResponseResponse_responseTemplates' - The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+--+-- 'templateSelectionExpression', 'createIntegrationResponseResponse_templateSelectionExpression' - The template selection expressions for the integration response.+--+-- 'httpStatus', 'createIntegrationResponseResponse_httpStatus' - The response's http status code.+newCreateIntegrationResponseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateIntegrationResponseResponse+newCreateIntegrationResponseResponse pHttpStatus_ =+  CreateIntegrationResponseResponse'+    { contentHandlingStrategy =+        Prelude.Nothing,+      integrationResponseId = Prelude.Nothing,+      integrationResponseKey = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      responseTemplates = Prelude.Nothing,+      templateSelectionExpression =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+createIntegrationResponseResponse_contentHandlingStrategy :: Lens.Lens' CreateIntegrationResponseResponse (Prelude.Maybe ContentHandlingStrategy)+createIntegrationResponseResponse_contentHandlingStrategy = Lens.lens (\CreateIntegrationResponseResponse' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@CreateIntegrationResponseResponse' {} a -> s {contentHandlingStrategy = a} :: CreateIntegrationResponseResponse)++-- | The integration response ID.+createIntegrationResponseResponse_integrationResponseId :: Lens.Lens' CreateIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+createIntegrationResponseResponse_integrationResponseId = Lens.lens (\CreateIntegrationResponseResponse' {integrationResponseId} -> integrationResponseId) (\s@CreateIntegrationResponseResponse' {} a -> s {integrationResponseId = a} :: CreateIntegrationResponseResponse)++-- | The integration response key.+createIntegrationResponseResponse_integrationResponseKey :: Lens.Lens' CreateIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+createIntegrationResponseResponse_integrationResponseKey = Lens.lens (\CreateIntegrationResponseResponse' {integrationResponseKey} -> integrationResponseKey) (\s@CreateIntegrationResponseResponse' {} a -> s {integrationResponseKey = a} :: CreateIntegrationResponseResponse)++-- | A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where name is a valid and+-- unique response header name and JSON-expression is a valid JSON+-- expression without the $ prefix.+createIntegrationResponseResponse_responseParameters :: Lens.Lens' CreateIntegrationResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegrationResponseResponse_responseParameters = Lens.lens (\CreateIntegrationResponseResponse' {responseParameters} -> responseParameters) (\s@CreateIntegrationResponseResponse' {} a -> s {responseParameters = a} :: CreateIntegrationResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+createIntegrationResponseResponse_responseTemplates :: Lens.Lens' CreateIntegrationResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegrationResponseResponse_responseTemplates = Lens.lens (\CreateIntegrationResponseResponse' {responseTemplates} -> responseTemplates) (\s@CreateIntegrationResponseResponse' {} a -> s {responseTemplates = a} :: CreateIntegrationResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expressions for the integration response.+createIntegrationResponseResponse_templateSelectionExpression :: Lens.Lens' CreateIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+createIntegrationResponseResponse_templateSelectionExpression = Lens.lens (\CreateIntegrationResponseResponse' {templateSelectionExpression} -> templateSelectionExpression) (\s@CreateIntegrationResponseResponse' {} a -> s {templateSelectionExpression = a} :: CreateIntegrationResponseResponse)++-- | The response's http status code.+createIntegrationResponseResponse_httpStatus :: Lens.Lens' CreateIntegrationResponseResponse Prelude.Int+createIntegrationResponseResponse_httpStatus = Lens.lens (\CreateIntegrationResponseResponse' {httpStatus} -> httpStatus) (\s@CreateIntegrationResponseResponse' {} a -> s {httpStatus = a} :: CreateIntegrationResponseResponse)++instance+  Prelude.NFData+    CreateIntegrationResponseResponse+  where+  rnf CreateIntegrationResponseResponse' {..} =+    Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf integrationResponseId+      `Prelude.seq` Prelude.rnf integrationResponseKey+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf responseTemplates+      `Prelude.seq` Prelude.rnf templateSelectionExpression+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateModel.hs view
@@ -0,0 +1,279 @@+{-# 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.ApiGatewayV2.CreateModel+-- 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 Model for an API.+module Amazonka.ApiGatewayV2.CreateModel+  ( -- * Creating a Request+    CreateModel (..),+    newCreateModel,++    -- * Request Lenses+    createModel_contentType,+    createModel_description,+    createModel_apiId,+    createModel_schema,+    createModel_name,++    -- * Destructuring the Response+    CreateModelResponse (..),+    newCreateModelResponse,++    -- * Response Lenses+    createModelResponse_contentType,+    createModelResponse_description,+    createModelResponse_modelId,+    createModelResponse_name,+    createModelResponse_schema,+    createModelResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new Model.+--+-- /See:/ 'newCreateModel' smart constructor.+data CreateModel = CreateModel'+  { -- | The content-type for the model, for example, \"application\/json\".+    contentType :: Prelude.Maybe Prelude.Text,+    -- | The description of the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The schema for the model. For application\/json models, this should be+    -- JSON schema draft 4 model.+    schema :: Prelude.Text,+    -- | The name of the model. Must be alphanumeric.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentType', 'createModel_contentType' - The content-type for the model, for example, \"application\/json\".+--+-- 'description', 'createModel_description' - The description of the model.+--+-- 'apiId', 'createModel_apiId' - The API identifier.+--+-- 'schema', 'createModel_schema' - The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+--+-- 'name', 'createModel_name' - The name of the model. Must be alphanumeric.+newCreateModel ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'schema'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateModel+newCreateModel pApiId_ pSchema_ pName_ =+  CreateModel'+    { contentType = Prelude.Nothing,+      description = Prelude.Nothing,+      apiId = pApiId_,+      schema = pSchema_,+      name = pName_+    }++-- | The content-type for the model, for example, \"application\/json\".+createModel_contentType :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)+createModel_contentType = Lens.lens (\CreateModel' {contentType} -> contentType) (\s@CreateModel' {} a -> s {contentType = a} :: CreateModel)++-- | The description of the model.+createModel_description :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)+createModel_description = Lens.lens (\CreateModel' {description} -> description) (\s@CreateModel' {} a -> s {description = a} :: CreateModel)++-- | The API identifier.+createModel_apiId :: Lens.Lens' CreateModel Prelude.Text+createModel_apiId = Lens.lens (\CreateModel' {apiId} -> apiId) (\s@CreateModel' {} a -> s {apiId = a} :: CreateModel)++-- | The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+createModel_schema :: Lens.Lens' CreateModel Prelude.Text+createModel_schema = Lens.lens (\CreateModel' {schema} -> schema) (\s@CreateModel' {} a -> s {schema = a} :: CreateModel)++-- | The name of the model. Must be alphanumeric.+createModel_name :: Lens.Lens' CreateModel Prelude.Text+createModel_name = Lens.lens (\CreateModel' {name} -> name) (\s@CreateModel' {} a -> s {name = a} :: CreateModel)++instance Core.AWSRequest CreateModel where+  type AWSResponse CreateModel = CreateModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateModelResponse'+            Prelude.<$> (x Data..?> "contentType")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "modelId")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "schema")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateModel where+  hashWithSalt _salt CreateModel' {..} =+    _salt+      `Prelude.hashWithSalt` contentType+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` schema+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateModel where+  rnf CreateModel' {..} =+    Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf schema+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateModel where+  toJSON CreateModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("contentType" Data..=) Prelude.<$> contentType,+            ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("schema" Data..= schema),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateModel where+  toPath CreateModel' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/models"]++instance Data.ToQuery CreateModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateModelResponse' smart constructor.+data CreateModelResponse = CreateModelResponse'+  { -- | The content-type for the model, for example, \"application\/json\".+    contentType :: Prelude.Maybe Prelude.Text,+    -- | The description of the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The model identifier.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The name of the model. Must be alphanumeric.+    name :: Prelude.Maybe Prelude.Text,+    -- | The schema for the model. For application\/json models, this should be+    -- JSON schema draft 4 model.+    schema :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentType', 'createModelResponse_contentType' - The content-type for the model, for example, \"application\/json\".+--+-- 'description', 'createModelResponse_description' - The description of the model.+--+-- 'modelId', 'createModelResponse_modelId' - The model identifier.+--+-- 'name', 'createModelResponse_name' - The name of the model. Must be alphanumeric.+--+-- 'schema', 'createModelResponse_schema' - The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+--+-- 'httpStatus', 'createModelResponse_httpStatus' - The response's http status code.+newCreateModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateModelResponse+newCreateModelResponse pHttpStatus_ =+  CreateModelResponse'+    { contentType = Prelude.Nothing,+      description = Prelude.Nothing,+      modelId = Prelude.Nothing,+      name = Prelude.Nothing,+      schema = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The content-type for the model, for example, \"application\/json\".+createModelResponse_contentType :: Lens.Lens' CreateModelResponse (Prelude.Maybe Prelude.Text)+createModelResponse_contentType = Lens.lens (\CreateModelResponse' {contentType} -> contentType) (\s@CreateModelResponse' {} a -> s {contentType = a} :: CreateModelResponse)++-- | The description of the model.+createModelResponse_description :: Lens.Lens' CreateModelResponse (Prelude.Maybe Prelude.Text)+createModelResponse_description = Lens.lens (\CreateModelResponse' {description} -> description) (\s@CreateModelResponse' {} a -> s {description = a} :: CreateModelResponse)++-- | The model identifier.+createModelResponse_modelId :: Lens.Lens' CreateModelResponse (Prelude.Maybe Prelude.Text)+createModelResponse_modelId = Lens.lens (\CreateModelResponse' {modelId} -> modelId) (\s@CreateModelResponse' {} a -> s {modelId = a} :: CreateModelResponse)++-- | The name of the model. Must be alphanumeric.+createModelResponse_name :: Lens.Lens' CreateModelResponse (Prelude.Maybe Prelude.Text)+createModelResponse_name = Lens.lens (\CreateModelResponse' {name} -> name) (\s@CreateModelResponse' {} a -> s {name = a} :: CreateModelResponse)++-- | The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+createModelResponse_schema :: Lens.Lens' CreateModelResponse (Prelude.Maybe Prelude.Text)+createModelResponse_schema = Lens.lens (\CreateModelResponse' {schema} -> schema) (\s@CreateModelResponse' {} a -> s {schema = a} :: CreateModelResponse)++-- | The response's http status code.+createModelResponse_httpStatus :: Lens.Lens' CreateModelResponse Prelude.Int+createModelResponse_httpStatus = Lens.lens (\CreateModelResponse' {httpStatus} -> httpStatus) (\s@CreateModelResponse' {} a -> s {httpStatus = a} :: CreateModelResponse)++instance Prelude.NFData CreateModelResponse where+  rnf CreateModelResponse' {..} =+    Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schema+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateRoute.hs view
@@ -0,0 +1,552 @@+{-# 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.ApiGatewayV2.CreateRoute+-- 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 Route for an API.+module Amazonka.ApiGatewayV2.CreateRoute+  ( -- * Creating a Request+    CreateRoute (..),+    newCreateRoute,++    -- * Request Lenses+    createRoute_apiKeyRequired,+    createRoute_authorizationScopes,+    createRoute_authorizationType,+    createRoute_authorizerId,+    createRoute_modelSelectionExpression,+    createRoute_operationName,+    createRoute_requestModels,+    createRoute_requestParameters,+    createRoute_routeResponseSelectionExpression,+    createRoute_target,+    createRoute_apiId,+    createRoute_routeKey,++    -- * Destructuring the Response+    CreateRouteResponse' (..),+    newCreateRouteResponse',++    -- * Response Lenses+    createRouteResponse'_apiGatewayManaged,+    createRouteResponse'_apiKeyRequired,+    createRouteResponse'_authorizationScopes,+    createRouteResponse'_authorizationType,+    createRouteResponse'_authorizerId,+    createRouteResponse'_modelSelectionExpression,+    createRouteResponse'_operationName,+    createRouteResponse'_requestModels,+    createRouteResponse'_requestParameters,+    createRouteResponse'_routeId,+    createRouteResponse'_routeKey,+    createRouteResponse'_routeResponseSelectionExpression,+    createRouteResponse'_target,+    createRouteResponse'_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new Route resource to represent a route.+--+-- /See:/ 'newCreateRoute' smart constructor.+data CreateRoute = CreateRoute'+  { -- | Specifies whether an API key is required for the route. Supported only+    -- for WebSocket APIs.+    apiKeyRequired :: Prelude.Maybe Prelude.Bool,+    -- | The authorization scopes supported by this route.+    authorizationScopes :: Prelude.Maybe [Prelude.Text],+    -- | The authorization type for the route. For WebSocket APIs, valid values+    -- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+    -- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+    -- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+    -- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+    authorizationType :: Prelude.Maybe AuthorizationType,+    -- | The identifier of the Authorizer resource to be associated with this+    -- route. The authorizer identifier is generated by API Gateway when you+    -- created the authorizer.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | The model selection expression for the route. Supported only for+    -- WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The operation name for the route.+    operationName :: Prelude.Maybe Prelude.Text,+    -- | The request models for the route. Supported only for WebSocket APIs.+    requestModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The request parameters for the route. Supported only for WebSocket APIs.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | The route response selection expression for the route. Supported only+    -- for WebSocket APIs.+    routeResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The target for the route.+    target :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route key for the route.+    routeKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiKeyRequired', 'createRoute_apiKeyRequired' - Specifies whether an API key is required for the route. Supported only+-- for WebSocket APIs.+--+-- 'authorizationScopes', 'createRoute_authorizationScopes' - The authorization scopes supported by this route.+--+-- 'authorizationType', 'createRoute_authorizationType' - The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+--+-- 'authorizerId', 'createRoute_authorizerId' - The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+--+-- 'modelSelectionExpression', 'createRoute_modelSelectionExpression' - The model selection expression for the route. Supported only for+-- WebSocket APIs.+--+-- 'operationName', 'createRoute_operationName' - The operation name for the route.+--+-- 'requestModels', 'createRoute_requestModels' - The request models for the route. Supported only for WebSocket APIs.+--+-- 'requestParameters', 'createRoute_requestParameters' - The request parameters for the route. Supported only for WebSocket APIs.+--+-- 'routeResponseSelectionExpression', 'createRoute_routeResponseSelectionExpression' - The route response selection expression for the route. Supported only+-- for WebSocket APIs.+--+-- 'target', 'createRoute_target' - The target for the route.+--+-- 'apiId', 'createRoute_apiId' - The API identifier.+--+-- 'routeKey', 'createRoute_routeKey' - The route key for the route.+newCreateRoute ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeKey'+  Prelude.Text ->+  CreateRoute+newCreateRoute pApiId_ pRouteKey_ =+  CreateRoute'+    { apiKeyRequired = Prelude.Nothing,+      authorizationScopes = Prelude.Nothing,+      authorizationType = Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      modelSelectionExpression = Prelude.Nothing,+      operationName = Prelude.Nothing,+      requestModels = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      routeResponseSelectionExpression = Prelude.Nothing,+      target = Prelude.Nothing,+      apiId = pApiId_,+      routeKey = pRouteKey_+    }++-- | Specifies whether an API key is required for the route. Supported only+-- for WebSocket APIs.+createRoute_apiKeyRequired :: Lens.Lens' CreateRoute (Prelude.Maybe Prelude.Bool)+createRoute_apiKeyRequired = Lens.lens (\CreateRoute' {apiKeyRequired} -> apiKeyRequired) (\s@CreateRoute' {} a -> s {apiKeyRequired = a} :: CreateRoute)++-- | The authorization scopes supported by this route.+createRoute_authorizationScopes :: Lens.Lens' CreateRoute (Prelude.Maybe [Prelude.Text])+createRoute_authorizationScopes = Lens.lens (\CreateRoute' {authorizationScopes} -> authorizationScopes) (\s@CreateRoute' {} a -> s {authorizationScopes = a} :: CreateRoute) Prelude.. Lens.mapping Lens.coerced++-- | The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+createRoute_authorizationType :: Lens.Lens' CreateRoute (Prelude.Maybe AuthorizationType)+createRoute_authorizationType = Lens.lens (\CreateRoute' {authorizationType} -> authorizationType) (\s@CreateRoute' {} a -> s {authorizationType = a} :: CreateRoute)++-- | The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+createRoute_authorizerId :: Lens.Lens' CreateRoute (Prelude.Maybe Prelude.Text)+createRoute_authorizerId = Lens.lens (\CreateRoute' {authorizerId} -> authorizerId) (\s@CreateRoute' {} a -> s {authorizerId = a} :: CreateRoute)++-- | The model selection expression for the route. Supported only for+-- WebSocket APIs.+createRoute_modelSelectionExpression :: Lens.Lens' CreateRoute (Prelude.Maybe Prelude.Text)+createRoute_modelSelectionExpression = Lens.lens (\CreateRoute' {modelSelectionExpression} -> modelSelectionExpression) (\s@CreateRoute' {} a -> s {modelSelectionExpression = a} :: CreateRoute)++-- | The operation name for the route.+createRoute_operationName :: Lens.Lens' CreateRoute (Prelude.Maybe Prelude.Text)+createRoute_operationName = Lens.lens (\CreateRoute' {operationName} -> operationName) (\s@CreateRoute' {} a -> s {operationName = a} :: CreateRoute)++-- | The request models for the route. Supported only for WebSocket APIs.+createRoute_requestModels :: Lens.Lens' CreateRoute (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRoute_requestModels = Lens.lens (\CreateRoute' {requestModels} -> requestModels) (\s@CreateRoute' {} a -> s {requestModels = a} :: CreateRoute) Prelude.. Lens.mapping Lens.coerced++-- | The request parameters for the route. Supported only for WebSocket APIs.+createRoute_requestParameters :: Lens.Lens' CreateRoute (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+createRoute_requestParameters = Lens.lens (\CreateRoute' {requestParameters} -> requestParameters) (\s@CreateRoute' {} a -> s {requestParameters = a} :: CreateRoute) Prelude.. Lens.mapping Lens.coerced++-- | The route response selection expression for the route. Supported only+-- for WebSocket APIs.+createRoute_routeResponseSelectionExpression :: Lens.Lens' CreateRoute (Prelude.Maybe Prelude.Text)+createRoute_routeResponseSelectionExpression = Lens.lens (\CreateRoute' {routeResponseSelectionExpression} -> routeResponseSelectionExpression) (\s@CreateRoute' {} a -> s {routeResponseSelectionExpression = a} :: CreateRoute)++-- | The target for the route.+createRoute_target :: Lens.Lens' CreateRoute (Prelude.Maybe Prelude.Text)+createRoute_target = Lens.lens (\CreateRoute' {target} -> target) (\s@CreateRoute' {} a -> s {target = a} :: CreateRoute)++-- | The API identifier.+createRoute_apiId :: Lens.Lens' CreateRoute Prelude.Text+createRoute_apiId = Lens.lens (\CreateRoute' {apiId} -> apiId) (\s@CreateRoute' {} a -> s {apiId = a} :: CreateRoute)++-- | The route key for the route.+createRoute_routeKey :: Lens.Lens' CreateRoute Prelude.Text+createRoute_routeKey = Lens.lens (\CreateRoute' {routeKey} -> routeKey) (\s@CreateRoute' {} a -> s {routeKey = a} :: CreateRoute)++instance Core.AWSRequest CreateRoute where+  type AWSResponse CreateRoute = CreateRouteResponse'+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRouteResponse''+            Prelude.<$> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "apiKeyRequired")+            Prelude.<*> ( x+                            Data..?> "authorizationScopes"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "authorizationType")+            Prelude.<*> (x Data..?> "authorizerId")+            Prelude.<*> (x Data..?> "modelSelectionExpression")+            Prelude.<*> (x Data..?> "operationName")+            Prelude.<*> (x Data..?> "requestModels" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "requestParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "routeId")+            Prelude.<*> (x Data..?> "routeKey")+            Prelude.<*> (x Data..?> "routeResponseSelectionExpression")+            Prelude.<*> (x Data..?> "target")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateRoute where+  hashWithSalt _salt CreateRoute' {..} =+    _salt+      `Prelude.hashWithSalt` apiKeyRequired+      `Prelude.hashWithSalt` authorizationScopes+      `Prelude.hashWithSalt` authorizationType+      `Prelude.hashWithSalt` authorizerId+      `Prelude.hashWithSalt` modelSelectionExpression+      `Prelude.hashWithSalt` operationName+      `Prelude.hashWithSalt` requestModels+      `Prelude.hashWithSalt` requestParameters+      `Prelude.hashWithSalt` routeResponseSelectionExpression+      `Prelude.hashWithSalt` target+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeKey++instance Prelude.NFData CreateRoute where+  rnf CreateRoute' {..} =+    Prelude.rnf apiKeyRequired+      `Prelude.seq` Prelude.rnf authorizationScopes+      `Prelude.seq` Prelude.rnf authorizationType+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf operationName+      `Prelude.seq` Prelude.rnf requestModels+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf routeResponseSelectionExpression+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf routeKey++instance Data.ToHeaders CreateRoute where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRoute where+  toJSON CreateRoute' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("apiKeyRequired" Data..=)+              Prelude.<$> apiKeyRequired,+            ("authorizationScopes" Data..=)+              Prelude.<$> authorizationScopes,+            ("authorizationType" Data..=)+              Prelude.<$> authorizationType,+            ("authorizerId" Data..=) Prelude.<$> authorizerId,+            ("modelSelectionExpression" Data..=)+              Prelude.<$> modelSelectionExpression,+            ("operationName" Data..=) Prelude.<$> operationName,+            ("requestModels" Data..=) Prelude.<$> requestModels,+            ("requestParameters" Data..=)+              Prelude.<$> requestParameters,+            ("routeResponseSelectionExpression" Data..=)+              Prelude.<$> routeResponseSelectionExpression,+            ("target" Data..=) Prelude.<$> target,+            Prelude.Just ("routeKey" Data..= routeKey)+          ]+      )++instance Data.ToPath CreateRoute where+  toPath CreateRoute' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/routes"]++instance Data.ToQuery CreateRoute where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRouteResponse'' smart constructor.+data CreateRouteResponse' = CreateRouteResponse''+  { -- | Specifies whether a route is managed by API Gateway. If you created an+    -- API using quick create, the $default route is managed by API Gateway.+    -- You can\'t modify the $default route key.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether an API key is required for this route. Supported only+    -- for WebSocket APIs.+    apiKeyRequired :: Prelude.Maybe Prelude.Bool,+    -- | A list of authorization scopes configured on a route. The scopes are+    -- used with a JWT authorizer to authorize the method invocation. The+    -- authorization works by matching the route scopes against the scopes+    -- parsed from the access token in the incoming request. The method+    -- invocation is authorized if any route scope matches a claimed scope in+    -- the access token. Otherwise, the invocation is not authorized. When the+    -- route scope is configured, the client must provide an access token+    -- instead of an identity token for authorization purposes.+    authorizationScopes :: Prelude.Maybe [Prelude.Text],+    -- | The authorization type for the route. For WebSocket APIs, valid values+    -- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+    -- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+    -- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+    -- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+    authorizationType :: Prelude.Maybe AuthorizationType,+    -- | The identifier of the Authorizer resource to be associated with this+    -- route. The authorizer identifier is generated by API Gateway when you+    -- created the authorizer.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | The model selection expression for the route. Supported only for+    -- WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The operation name for the route.+    operationName :: Prelude.Maybe Prelude.Text,+    -- | The request models for the route. Supported only for WebSocket APIs.+    requestModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The request parameters for the route. Supported only for WebSocket APIs.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | The route ID.+    routeId :: Prelude.Maybe Prelude.Text,+    -- | The route key for the route.+    routeKey :: Prelude.Maybe Prelude.Text,+    -- | The route response selection expression for the route. Supported only+    -- for WebSocket APIs.+    routeResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The target for the route.+    target :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRouteResponse'' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayManaged', 'createRouteResponse'_apiGatewayManaged' - Specifies whether a route is managed by API Gateway. If you created an+-- API using quick create, the $default route is managed by API Gateway.+-- You can\'t modify the $default route key.+--+-- 'apiKeyRequired', 'createRouteResponse'_apiKeyRequired' - Specifies whether an API key is required for this route. Supported only+-- for WebSocket APIs.+--+-- 'authorizationScopes', 'createRouteResponse'_authorizationScopes' - A list of authorization scopes configured on a route. The scopes are+-- used with a JWT authorizer to authorize the method invocation. The+-- authorization works by matching the route scopes against the scopes+-- parsed from the access token in the incoming request. The method+-- invocation is authorized if any route scope matches a claimed scope in+-- the access token. Otherwise, the invocation is not authorized. When the+-- route scope is configured, the client must provide an access token+-- instead of an identity token for authorization purposes.+--+-- 'authorizationType', 'createRouteResponse'_authorizationType' - The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+--+-- 'authorizerId', 'createRouteResponse'_authorizerId' - The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+--+-- 'modelSelectionExpression', 'createRouteResponse'_modelSelectionExpression' - The model selection expression for the route. Supported only for+-- WebSocket APIs.+--+-- 'operationName', 'createRouteResponse'_operationName' - The operation name for the route.+--+-- 'requestModels', 'createRouteResponse'_requestModels' - The request models for the route. Supported only for WebSocket APIs.+--+-- 'requestParameters', 'createRouteResponse'_requestParameters' - The request parameters for the route. Supported only for WebSocket APIs.+--+-- 'routeId', 'createRouteResponse'_routeId' - The route ID.+--+-- 'routeKey', 'createRouteResponse'_routeKey' - The route key for the route.+--+-- 'routeResponseSelectionExpression', 'createRouteResponse'_routeResponseSelectionExpression' - The route response selection expression for the route. Supported only+-- for WebSocket APIs.+--+-- 'target', 'createRouteResponse'_target' - The target for the route.+--+-- 'httpStatus', 'createRouteResponse'_httpStatus' - The response's http status code.+newCreateRouteResponse' ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateRouteResponse'+newCreateRouteResponse' pHttpStatus_ =+  CreateRouteResponse''+    { apiGatewayManaged =+        Prelude.Nothing,+      apiKeyRequired = Prelude.Nothing,+      authorizationScopes = Prelude.Nothing,+      authorizationType = Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      modelSelectionExpression = Prelude.Nothing,+      operationName = Prelude.Nothing,+      requestModels = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      routeId = Prelude.Nothing,+      routeKey = Prelude.Nothing,+      routeResponseSelectionExpression = Prelude.Nothing,+      target = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether a route is managed by API Gateway. If you created an+-- API using quick create, the $default route is managed by API Gateway.+-- You can\'t modify the $default route key.+createRouteResponse'_apiGatewayManaged :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Bool)+createRouteResponse'_apiGatewayManaged = Lens.lens (\CreateRouteResponse'' {apiGatewayManaged} -> apiGatewayManaged) (\s@CreateRouteResponse'' {} a -> s {apiGatewayManaged = a} :: CreateRouteResponse')++-- | Specifies whether an API key is required for this route. Supported only+-- for WebSocket APIs.+createRouteResponse'_apiKeyRequired :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Bool)+createRouteResponse'_apiKeyRequired = Lens.lens (\CreateRouteResponse'' {apiKeyRequired} -> apiKeyRequired) (\s@CreateRouteResponse'' {} a -> s {apiKeyRequired = a} :: CreateRouteResponse')++-- | A list of authorization scopes configured on a route. The scopes are+-- used with a JWT authorizer to authorize the method invocation. The+-- authorization works by matching the route scopes against the scopes+-- parsed from the access token in the incoming request. The method+-- invocation is authorized if any route scope matches a claimed scope in+-- the access token. Otherwise, the invocation is not authorized. When the+-- route scope is configured, the client must provide an access token+-- instead of an identity token for authorization purposes.+createRouteResponse'_authorizationScopes :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe [Prelude.Text])+createRouteResponse'_authorizationScopes = Lens.lens (\CreateRouteResponse'' {authorizationScopes} -> authorizationScopes) (\s@CreateRouteResponse'' {} a -> s {authorizationScopes = a} :: CreateRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+createRouteResponse'_authorizationType :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe AuthorizationType)+createRouteResponse'_authorizationType = Lens.lens (\CreateRouteResponse'' {authorizationType} -> authorizationType) (\s@CreateRouteResponse'' {} a -> s {authorizationType = a} :: CreateRouteResponse')++-- | The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+createRouteResponse'_authorizerId :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Text)+createRouteResponse'_authorizerId = Lens.lens (\CreateRouteResponse'' {authorizerId} -> authorizerId) (\s@CreateRouteResponse'' {} a -> s {authorizerId = a} :: CreateRouteResponse')++-- | The model selection expression for the route. Supported only for+-- WebSocket APIs.+createRouteResponse'_modelSelectionExpression :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Text)+createRouteResponse'_modelSelectionExpression = Lens.lens (\CreateRouteResponse'' {modelSelectionExpression} -> modelSelectionExpression) (\s@CreateRouteResponse'' {} a -> s {modelSelectionExpression = a} :: CreateRouteResponse')++-- | The operation name for the route.+createRouteResponse'_operationName :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Text)+createRouteResponse'_operationName = Lens.lens (\CreateRouteResponse'' {operationName} -> operationName) (\s@CreateRouteResponse'' {} a -> s {operationName = a} :: CreateRouteResponse')++-- | The request models for the route. Supported only for WebSocket APIs.+createRouteResponse'_requestModels :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRouteResponse'_requestModels = Lens.lens (\CreateRouteResponse'' {requestModels} -> requestModels) (\s@CreateRouteResponse'' {} a -> s {requestModels = a} :: CreateRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The request parameters for the route. Supported only for WebSocket APIs.+createRouteResponse'_requestParameters :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+createRouteResponse'_requestParameters = Lens.lens (\CreateRouteResponse'' {requestParameters} -> requestParameters) (\s@CreateRouteResponse'' {} a -> s {requestParameters = a} :: CreateRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The route ID.+createRouteResponse'_routeId :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Text)+createRouteResponse'_routeId = Lens.lens (\CreateRouteResponse'' {routeId} -> routeId) (\s@CreateRouteResponse'' {} a -> s {routeId = a} :: CreateRouteResponse')++-- | The route key for the route.+createRouteResponse'_routeKey :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Text)+createRouteResponse'_routeKey = Lens.lens (\CreateRouteResponse'' {routeKey} -> routeKey) (\s@CreateRouteResponse'' {} a -> s {routeKey = a} :: CreateRouteResponse')++-- | The route response selection expression for the route. Supported only+-- for WebSocket APIs.+createRouteResponse'_routeResponseSelectionExpression :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Text)+createRouteResponse'_routeResponseSelectionExpression = Lens.lens (\CreateRouteResponse'' {routeResponseSelectionExpression} -> routeResponseSelectionExpression) (\s@CreateRouteResponse'' {} a -> s {routeResponseSelectionExpression = a} :: CreateRouteResponse')++-- | The target for the route.+createRouteResponse'_target :: Lens.Lens' CreateRouteResponse' (Prelude.Maybe Prelude.Text)+createRouteResponse'_target = Lens.lens (\CreateRouteResponse'' {target} -> target) (\s@CreateRouteResponse'' {} a -> s {target = a} :: CreateRouteResponse')++-- | The response's http status code.+createRouteResponse'_httpStatus :: Lens.Lens' CreateRouteResponse' Prelude.Int+createRouteResponse'_httpStatus = Lens.lens (\CreateRouteResponse'' {httpStatus} -> httpStatus) (\s@CreateRouteResponse'' {} a -> s {httpStatus = a} :: CreateRouteResponse')++instance Prelude.NFData CreateRouteResponse' where+  rnf CreateRouteResponse'' {..} =+    Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiKeyRequired+      `Prelude.seq` Prelude.rnf authorizationScopes+      `Prelude.seq` Prelude.rnf authorizationType+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf operationName+      `Prelude.seq` Prelude.rnf requestModels+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf routeId+      `Prelude.seq` Prelude.rnf routeKey+      `Prelude.seq` Prelude.rnf routeResponseSelectionExpression+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateRouteResponse.hs view
@@ -0,0 +1,310 @@+{-# 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.ApiGatewayV2.CreateRouteResponse+-- 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 RouteResponse for a Route.+module Amazonka.ApiGatewayV2.CreateRouteResponse+  ( -- * Creating a Request+    CreateRouteResponse (..),+    newCreateRouteResponse,++    -- * Request Lenses+    createRouteResponse_modelSelectionExpression,+    createRouteResponse_responseModels,+    createRouteResponse_responseParameters,+    createRouteResponse_apiId,+    createRouteResponse_routeId,+    createRouteResponse_routeResponseKey,++    -- * Destructuring the Response+    CreateRouteResponseResponse (..),+    newCreateRouteResponseResponse,++    -- * Response Lenses+    createRouteResponseResponse_modelSelectionExpression,+    createRouteResponseResponse_responseModels,+    createRouteResponseResponse_responseParameters,+    createRouteResponseResponse_routeResponseId,+    createRouteResponseResponse_routeResponseKey,+    createRouteResponseResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new RouteResponse resource to represent a route response.+--+-- /See:/ 'newCreateRouteResponse' smart constructor.+data CreateRouteResponse = CreateRouteResponse'+  { -- | The model selection expression for the route response. Supported only+    -- for WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The response models for the route response.+    responseModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The route response parameters.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text,+    -- | The route response key.+    routeResponseKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelSelectionExpression', 'createRouteResponse_modelSelectionExpression' - The model selection expression for the route response. Supported only+-- for WebSocket APIs.+--+-- 'responseModels', 'createRouteResponse_responseModels' - The response models for the route response.+--+-- 'responseParameters', 'createRouteResponse_responseParameters' - The route response parameters.+--+-- 'apiId', 'createRouteResponse_apiId' - The API identifier.+--+-- 'routeId', 'createRouteResponse_routeId' - The route ID.+--+-- 'routeResponseKey', 'createRouteResponse_routeResponseKey' - The route response key.+newCreateRouteResponse ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeId'+  Prelude.Text ->+  -- | 'routeResponseKey'+  Prelude.Text ->+  CreateRouteResponse+newCreateRouteResponse+  pApiId_+  pRouteId_+  pRouteResponseKey_ =+    CreateRouteResponse'+      { modelSelectionExpression =+          Prelude.Nothing,+        responseModels = Prelude.Nothing,+        responseParameters = Prelude.Nothing,+        apiId = pApiId_,+        routeId = pRouteId_,+        routeResponseKey = pRouteResponseKey_+      }++-- | The model selection expression for the route response. Supported only+-- for WebSocket APIs.+createRouteResponse_modelSelectionExpression :: Lens.Lens' CreateRouteResponse (Prelude.Maybe Prelude.Text)+createRouteResponse_modelSelectionExpression = Lens.lens (\CreateRouteResponse' {modelSelectionExpression} -> modelSelectionExpression) (\s@CreateRouteResponse' {} a -> s {modelSelectionExpression = a} :: CreateRouteResponse)++-- | The response models for the route response.+createRouteResponse_responseModels :: Lens.Lens' CreateRouteResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRouteResponse_responseModels = Lens.lens (\CreateRouteResponse' {responseModels} -> responseModels) (\s@CreateRouteResponse' {} a -> s {responseModels = a} :: CreateRouteResponse) Prelude.. Lens.mapping Lens.coerced++-- | The route response parameters.+createRouteResponse_responseParameters :: Lens.Lens' CreateRouteResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+createRouteResponse_responseParameters = Lens.lens (\CreateRouteResponse' {responseParameters} -> responseParameters) (\s@CreateRouteResponse' {} a -> s {responseParameters = a} :: CreateRouteResponse) Prelude.. Lens.mapping Lens.coerced++-- | The API identifier.+createRouteResponse_apiId :: Lens.Lens' CreateRouteResponse Prelude.Text+createRouteResponse_apiId = Lens.lens (\CreateRouteResponse' {apiId} -> apiId) (\s@CreateRouteResponse' {} a -> s {apiId = a} :: CreateRouteResponse)++-- | The route ID.+createRouteResponse_routeId :: Lens.Lens' CreateRouteResponse Prelude.Text+createRouteResponse_routeId = Lens.lens (\CreateRouteResponse' {routeId} -> routeId) (\s@CreateRouteResponse' {} a -> s {routeId = a} :: CreateRouteResponse)++-- | The route response key.+createRouteResponse_routeResponseKey :: Lens.Lens' CreateRouteResponse Prelude.Text+createRouteResponse_routeResponseKey = Lens.lens (\CreateRouteResponse' {routeResponseKey} -> routeResponseKey) (\s@CreateRouteResponse' {} a -> s {routeResponseKey = a} :: CreateRouteResponse)++instance Core.AWSRequest CreateRouteResponse where+  type+    AWSResponse CreateRouteResponse =+      CreateRouteResponseResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRouteResponseResponse'+            Prelude.<$> (x Data..?> "modelSelectionExpression")+            Prelude.<*> (x Data..?> "responseModels" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "routeResponseId")+            Prelude.<*> (x Data..?> "routeResponseKey")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateRouteResponse where+  hashWithSalt _salt CreateRouteResponse' {..} =+    _salt+      `Prelude.hashWithSalt` modelSelectionExpression+      `Prelude.hashWithSalt` responseModels+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeId+      `Prelude.hashWithSalt` routeResponseKey++instance Prelude.NFData CreateRouteResponse where+  rnf CreateRouteResponse' {..} =+    Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf responseModels+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf routeId+      `Prelude.seq` Prelude.rnf routeResponseKey++instance Data.ToHeaders CreateRouteResponse where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRouteResponse where+  toJSON CreateRouteResponse' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("modelSelectionExpression" Data..=)+              Prelude.<$> modelSelectionExpression,+            ("responseModels" Data..=)+              Prelude.<$> responseModels,+            ("responseParameters" Data..=)+              Prelude.<$> responseParameters,+            Prelude.Just+              ("routeResponseKey" Data..= routeResponseKey)+          ]+      )++instance Data.ToPath CreateRouteResponse where+  toPath CreateRouteResponse' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId,+        "/routeresponses"+      ]++instance Data.ToQuery CreateRouteResponse where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRouteResponseResponse' smart constructor.+data CreateRouteResponseResponse = CreateRouteResponseResponse'+  { -- | Represents the model selection expression of a route response. Supported+    -- only for WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the response models of a route response.+    responseModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents the response parameters of a route response.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | Represents the identifier of a route response.+    routeResponseId :: Prelude.Maybe Prelude.Text,+    -- | Represents the route response key of a route response.+    routeResponseKey :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRouteResponseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelSelectionExpression', 'createRouteResponseResponse_modelSelectionExpression' - Represents the model selection expression of a route response. Supported+-- only for WebSocket APIs.+--+-- 'responseModels', 'createRouteResponseResponse_responseModels' - Represents the response models of a route response.+--+-- 'responseParameters', 'createRouteResponseResponse_responseParameters' - Represents the response parameters of a route response.+--+-- 'routeResponseId', 'createRouteResponseResponse_routeResponseId' - Represents the identifier of a route response.+--+-- 'routeResponseKey', 'createRouteResponseResponse_routeResponseKey' - Represents the route response key of a route response.+--+-- 'httpStatus', 'createRouteResponseResponse_httpStatus' - The response's http status code.+newCreateRouteResponseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateRouteResponseResponse+newCreateRouteResponseResponse pHttpStatus_ =+  CreateRouteResponseResponse'+    { modelSelectionExpression =+        Prelude.Nothing,+      responseModels = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      routeResponseId = Prelude.Nothing,+      routeResponseKey = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Represents the model selection expression of a route response. Supported+-- only for WebSocket APIs.+createRouteResponseResponse_modelSelectionExpression :: Lens.Lens' CreateRouteResponseResponse (Prelude.Maybe Prelude.Text)+createRouteResponseResponse_modelSelectionExpression = Lens.lens (\CreateRouteResponseResponse' {modelSelectionExpression} -> modelSelectionExpression) (\s@CreateRouteResponseResponse' {} a -> s {modelSelectionExpression = a} :: CreateRouteResponseResponse)++-- | Represents the response models of a route response.+createRouteResponseResponse_responseModels :: Lens.Lens' CreateRouteResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRouteResponseResponse_responseModels = Lens.lens (\CreateRouteResponseResponse' {responseModels} -> responseModels) (\s@CreateRouteResponseResponse' {} a -> s {responseModels = a} :: CreateRouteResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents the response parameters of a route response.+createRouteResponseResponse_responseParameters :: Lens.Lens' CreateRouteResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+createRouteResponseResponse_responseParameters = Lens.lens (\CreateRouteResponseResponse' {responseParameters} -> responseParameters) (\s@CreateRouteResponseResponse' {} a -> s {responseParameters = a} :: CreateRouteResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents the identifier of a route response.+createRouteResponseResponse_routeResponseId :: Lens.Lens' CreateRouteResponseResponse (Prelude.Maybe Prelude.Text)+createRouteResponseResponse_routeResponseId = Lens.lens (\CreateRouteResponseResponse' {routeResponseId} -> routeResponseId) (\s@CreateRouteResponseResponse' {} a -> s {routeResponseId = a} :: CreateRouteResponseResponse)++-- | Represents the route response key of a route response.+createRouteResponseResponse_routeResponseKey :: Lens.Lens' CreateRouteResponseResponse (Prelude.Maybe Prelude.Text)+createRouteResponseResponse_routeResponseKey = Lens.lens (\CreateRouteResponseResponse' {routeResponseKey} -> routeResponseKey) (\s@CreateRouteResponseResponse' {} a -> s {routeResponseKey = a} :: CreateRouteResponseResponse)++-- | The response's http status code.+createRouteResponseResponse_httpStatus :: Lens.Lens' CreateRouteResponseResponse Prelude.Int+createRouteResponseResponse_httpStatus = Lens.lens (\CreateRouteResponseResponse' {httpStatus} -> httpStatus) (\s@CreateRouteResponseResponse' {} a -> s {httpStatus = a} :: CreateRouteResponseResponse)++instance Prelude.NFData CreateRouteResponseResponse where+  rnf CreateRouteResponseResponse' {..} =+    Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf responseModels+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf routeResponseId+      `Prelude.seq` Prelude.rnf routeResponseKey+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateStage.hs view
@@ -0,0 +1,504 @@+{-# 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.ApiGatewayV2.CreateStage+-- 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 Stage for an API.+module Amazonka.ApiGatewayV2.CreateStage+  ( -- * Creating a Request+    CreateStage (..),+    newCreateStage,++    -- * Request Lenses+    createStage_accessLogSettings,+    createStage_autoDeploy,+    createStage_clientCertificateId,+    createStage_defaultRouteSettings,+    createStage_deploymentId,+    createStage_description,+    createStage_routeSettings,+    createStage_stageVariables,+    createStage_tags,+    createStage_apiId,+    createStage_stageName,++    -- * Destructuring the Response+    CreateStageResponse (..),+    newCreateStageResponse,++    -- * Response Lenses+    createStageResponse_accessLogSettings,+    createStageResponse_apiGatewayManaged,+    createStageResponse_autoDeploy,+    createStageResponse_clientCertificateId,+    createStageResponse_createdDate,+    createStageResponse_defaultRouteSettings,+    createStageResponse_deploymentId,+    createStageResponse_description,+    createStageResponse_lastDeploymentStatusMessage,+    createStageResponse_lastUpdatedDate,+    createStageResponse_routeSettings,+    createStageResponse_stageName,+    createStageResponse_stageVariables,+    createStageResponse_tags,+    createStageResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new Stage resource to represent a stage.+--+-- /See:/ 'newCreateStage' smart constructor.+data CreateStage = CreateStage'+  { -- | Settings for logging access in this stage.+    accessLogSettings :: Prelude.Maybe AccessLogSettings,+    -- | Specifies whether updates to an API automatically trigger a new+    -- deployment. The default value is false.+    autoDeploy :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of a client certificate for a Stage. Supported only for+    -- WebSocket APIs.+    clientCertificateId :: Prelude.Maybe Prelude.Text,+    -- | The default route settings for the stage.+    defaultRouteSettings :: Prelude.Maybe RouteSettings,+    -- | The deployment identifier of the API stage.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The description for the API stage.+    description :: Prelude.Maybe Prelude.Text,+    -- | Route settings for the stage, by routeKey.+    routeSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings),+    -- | A map that defines the stage variables for a Stage. Variable names can+    -- have alphanumeric and underscore characters, and the values must match+    -- [A-Za-z0-9-._~:\/?#&=,]+.+    stageVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of tags. Each tag element is associated with a given+    -- resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The name of the stage.+    stageName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessLogSettings', 'createStage_accessLogSettings' - Settings for logging access in this stage.+--+-- 'autoDeploy', 'createStage_autoDeploy' - Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+--+-- 'clientCertificateId', 'createStage_clientCertificateId' - The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+--+-- 'defaultRouteSettings', 'createStage_defaultRouteSettings' - The default route settings for the stage.+--+-- 'deploymentId', 'createStage_deploymentId' - The deployment identifier of the API stage.+--+-- 'description', 'createStage_description' - The description for the API stage.+--+-- 'routeSettings', 'createStage_routeSettings' - Route settings for the stage, by routeKey.+--+-- 'stageVariables', 'createStage_stageVariables' - A map that defines the stage variables for a Stage. Variable names can+-- have alphanumeric and underscore characters, and the values must match+-- [A-Za-z0-9-._~:\/?#&=,]+.+--+-- 'tags', 'createStage_tags' - The collection of tags. Each tag element is associated with a given+-- resource.+--+-- 'apiId', 'createStage_apiId' - The API identifier.+--+-- 'stageName', 'createStage_stageName' - The name of the stage.+newCreateStage ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'stageName'+  Prelude.Text ->+  CreateStage+newCreateStage pApiId_ pStageName_ =+  CreateStage'+    { accessLogSettings = Prelude.Nothing,+      autoDeploy = Prelude.Nothing,+      clientCertificateId = Prelude.Nothing,+      defaultRouteSettings = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      description = Prelude.Nothing,+      routeSettings = Prelude.Nothing,+      stageVariables = Prelude.Nothing,+      tags = Prelude.Nothing,+      apiId = pApiId_,+      stageName = pStageName_+    }++-- | Settings for logging access in this stage.+createStage_accessLogSettings :: Lens.Lens' CreateStage (Prelude.Maybe AccessLogSettings)+createStage_accessLogSettings = Lens.lens (\CreateStage' {accessLogSettings} -> accessLogSettings) (\s@CreateStage' {} a -> s {accessLogSettings = a} :: CreateStage)++-- | Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+createStage_autoDeploy :: Lens.Lens' CreateStage (Prelude.Maybe Prelude.Bool)+createStage_autoDeploy = Lens.lens (\CreateStage' {autoDeploy} -> autoDeploy) (\s@CreateStage' {} a -> s {autoDeploy = a} :: CreateStage)++-- | The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+createStage_clientCertificateId :: Lens.Lens' CreateStage (Prelude.Maybe Prelude.Text)+createStage_clientCertificateId = Lens.lens (\CreateStage' {clientCertificateId} -> clientCertificateId) (\s@CreateStage' {} a -> s {clientCertificateId = a} :: CreateStage)++-- | The default route settings for the stage.+createStage_defaultRouteSettings :: Lens.Lens' CreateStage (Prelude.Maybe RouteSettings)+createStage_defaultRouteSettings = Lens.lens (\CreateStage' {defaultRouteSettings} -> defaultRouteSettings) (\s@CreateStage' {} a -> s {defaultRouteSettings = a} :: CreateStage)++-- | The deployment identifier of the API stage.+createStage_deploymentId :: Lens.Lens' CreateStage (Prelude.Maybe Prelude.Text)+createStage_deploymentId = Lens.lens (\CreateStage' {deploymentId} -> deploymentId) (\s@CreateStage' {} a -> s {deploymentId = a} :: CreateStage)++-- | The description for the API stage.+createStage_description :: Lens.Lens' CreateStage (Prelude.Maybe Prelude.Text)+createStage_description = Lens.lens (\CreateStage' {description} -> description) (\s@CreateStage' {} a -> s {description = a} :: CreateStage)++-- | Route settings for the stage, by routeKey.+createStage_routeSettings :: Lens.Lens' CreateStage (Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings))+createStage_routeSettings = Lens.lens (\CreateStage' {routeSettings} -> routeSettings) (\s@CreateStage' {} a -> s {routeSettings = a} :: CreateStage) Prelude.. Lens.mapping Lens.coerced++-- | A map that defines the stage variables for a Stage. Variable names can+-- have alphanumeric and underscore characters, and the values must match+-- [A-Za-z0-9-._~:\/?#&=,]+.+createStage_stageVariables :: Lens.Lens' CreateStage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStage_stageVariables = Lens.lens (\CreateStage' {stageVariables} -> stageVariables) (\s@CreateStage' {} a -> s {stageVariables = a} :: CreateStage) Prelude.. Lens.mapping Lens.coerced++-- | The collection of tags. Each tag element is associated with a given+-- resource.+createStage_tags :: Lens.Lens' CreateStage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStage_tags = Lens.lens (\CreateStage' {tags} -> tags) (\s@CreateStage' {} a -> s {tags = a} :: CreateStage) Prelude.. Lens.mapping Lens.coerced++-- | The API identifier.+createStage_apiId :: Lens.Lens' CreateStage Prelude.Text+createStage_apiId = Lens.lens (\CreateStage' {apiId} -> apiId) (\s@CreateStage' {} a -> s {apiId = a} :: CreateStage)++-- | The name of the stage.+createStage_stageName :: Lens.Lens' CreateStage Prelude.Text+createStage_stageName = Lens.lens (\CreateStage' {stageName} -> stageName) (\s@CreateStage' {} a -> s {stageName = a} :: CreateStage)++instance Core.AWSRequest CreateStage where+  type AWSResponse CreateStage = CreateStageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateStageResponse'+            Prelude.<$> (x Data..?> "accessLogSettings")+            Prelude.<*> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "autoDeploy")+            Prelude.<*> (x Data..?> "clientCertificateId")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "defaultRouteSettings")+            Prelude.<*> (x Data..?> "deploymentId")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "lastDeploymentStatusMessage")+            Prelude.<*> (x Data..?> "lastUpdatedDate")+            Prelude.<*> (x Data..?> "routeSettings" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "stageName")+            Prelude.<*> (x Data..?> "stageVariables" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateStage where+  hashWithSalt _salt CreateStage' {..} =+    _salt+      `Prelude.hashWithSalt` accessLogSettings+      `Prelude.hashWithSalt` autoDeploy+      `Prelude.hashWithSalt` clientCertificateId+      `Prelude.hashWithSalt` defaultRouteSettings+      `Prelude.hashWithSalt` deploymentId+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` routeSettings+      `Prelude.hashWithSalt` stageVariables+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` stageName++instance Prelude.NFData CreateStage where+  rnf CreateStage' {..} =+    Prelude.rnf accessLogSettings+      `Prelude.seq` Prelude.rnf autoDeploy+      `Prelude.seq` Prelude.rnf clientCertificateId+      `Prelude.seq` Prelude.rnf defaultRouteSettings+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf routeSettings+      `Prelude.seq` Prelude.rnf stageVariables+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf stageName++instance Data.ToHeaders CreateStage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateStage where+  toJSON CreateStage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("accessLogSettings" Data..=)+              Prelude.<$> accessLogSettings,+            ("autoDeploy" Data..=) Prelude.<$> autoDeploy,+            ("clientCertificateId" Data..=)+              Prelude.<$> clientCertificateId,+            ("defaultRouteSettings" Data..=)+              Prelude.<$> defaultRouteSettings,+            ("deploymentId" Data..=) Prelude.<$> deploymentId,+            ("description" Data..=) Prelude.<$> description,+            ("routeSettings" Data..=) Prelude.<$> routeSettings,+            ("stageVariables" Data..=)+              Prelude.<$> stageVariables,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("stageName" Data..= stageName)+          ]+      )++instance Data.ToPath CreateStage where+  toPath CreateStage' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/stages"]++instance Data.ToQuery CreateStage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateStageResponse' smart constructor.+data CreateStageResponse = CreateStageResponse'+  { -- | Settings for logging access in this stage.+    accessLogSettings :: Prelude.Maybe AccessLogSettings,+    -- | Specifies whether a stage is managed by API Gateway. If you created an+    -- API using quick create, the $default stage is managed by API Gateway.+    -- You can\'t modify the $default stage.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether updates to an API automatically trigger a new+    -- deployment. The default value is false.+    autoDeploy :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of a client certificate for a Stage. Supported only for+    -- WebSocket APIs.+    clientCertificateId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the stage was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | Default route settings for the stage.+    defaultRouteSettings :: Prelude.Maybe RouteSettings,+    -- | The identifier of the Deployment that the Stage is associated with.+    -- Can\'t be updated if autoDeploy is enabled.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The description of the stage.+    description :: Prelude.Maybe Prelude.Text,+    -- | Describes the status of the last deployment of a stage. Supported only+    -- for stages with autoDeploy enabled.+    lastDeploymentStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the stage was last updated.+    lastUpdatedDate :: Prelude.Maybe Data.ISO8601,+    -- | Route settings for the stage, by routeKey.+    routeSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings),+    -- | The name of the stage.+    stageName :: Prelude.Maybe Prelude.Text,+    -- | A map that defines the stage variables for a stage resource. Variable+    -- names can have alphanumeric and underscore characters, and the values+    -- must match [A-Za-z0-9-._~:\/?#&=,]+.+    stageVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of tags. Each tag element is associated with a given+    -- resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessLogSettings', 'createStageResponse_accessLogSettings' - Settings for logging access in this stage.+--+-- 'apiGatewayManaged', 'createStageResponse_apiGatewayManaged' - Specifies whether a stage is managed by API Gateway. If you created an+-- API using quick create, the $default stage is managed by API Gateway.+-- You can\'t modify the $default stage.+--+-- 'autoDeploy', 'createStageResponse_autoDeploy' - Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+--+-- 'clientCertificateId', 'createStageResponse_clientCertificateId' - The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+--+-- 'createdDate', 'createStageResponse_createdDate' - The timestamp when the stage was created.+--+-- 'defaultRouteSettings', 'createStageResponse_defaultRouteSettings' - Default route settings for the stage.+--+-- 'deploymentId', 'createStageResponse_deploymentId' - The identifier of the Deployment that the Stage is associated with.+-- Can\'t be updated if autoDeploy is enabled.+--+-- 'description', 'createStageResponse_description' - The description of the stage.+--+-- 'lastDeploymentStatusMessage', 'createStageResponse_lastDeploymentStatusMessage' - Describes the status of the last deployment of a stage. Supported only+-- for stages with autoDeploy enabled.+--+-- 'lastUpdatedDate', 'createStageResponse_lastUpdatedDate' - The timestamp when the stage was last updated.+--+-- 'routeSettings', 'createStageResponse_routeSettings' - Route settings for the stage, by routeKey.+--+-- 'stageName', 'createStageResponse_stageName' - The name of the stage.+--+-- 'stageVariables', 'createStageResponse_stageVariables' - A map that defines the stage variables for a stage resource. Variable+-- names can have alphanumeric and underscore characters, and the values+-- must match [A-Za-z0-9-._~:\/?#&=,]+.+--+-- 'tags', 'createStageResponse_tags' - The collection of tags. Each tag element is associated with a given+-- resource.+--+-- 'httpStatus', 'createStageResponse_httpStatus' - The response's http status code.+newCreateStageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateStageResponse+newCreateStageResponse pHttpStatus_ =+  CreateStageResponse'+    { accessLogSettings =+        Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      autoDeploy = Prelude.Nothing,+      clientCertificateId = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      defaultRouteSettings = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      description = Prelude.Nothing,+      lastDeploymentStatusMessage = Prelude.Nothing,+      lastUpdatedDate = Prelude.Nothing,+      routeSettings = Prelude.Nothing,+      stageName = Prelude.Nothing,+      stageVariables = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Settings for logging access in this stage.+createStageResponse_accessLogSettings :: Lens.Lens' CreateStageResponse (Prelude.Maybe AccessLogSettings)+createStageResponse_accessLogSettings = Lens.lens (\CreateStageResponse' {accessLogSettings} -> accessLogSettings) (\s@CreateStageResponse' {} a -> s {accessLogSettings = a} :: CreateStageResponse)++-- | Specifies whether a stage is managed by API Gateway. If you created an+-- API using quick create, the $default stage is managed by API Gateway.+-- You can\'t modify the $default stage.+createStageResponse_apiGatewayManaged :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.Bool)+createStageResponse_apiGatewayManaged = Lens.lens (\CreateStageResponse' {apiGatewayManaged} -> apiGatewayManaged) (\s@CreateStageResponse' {} a -> s {apiGatewayManaged = a} :: CreateStageResponse)++-- | Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+createStageResponse_autoDeploy :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.Bool)+createStageResponse_autoDeploy = Lens.lens (\CreateStageResponse' {autoDeploy} -> autoDeploy) (\s@CreateStageResponse' {} a -> s {autoDeploy = a} :: CreateStageResponse)++-- | The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+createStageResponse_clientCertificateId :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.Text)+createStageResponse_clientCertificateId = Lens.lens (\CreateStageResponse' {clientCertificateId} -> clientCertificateId) (\s@CreateStageResponse' {} a -> s {clientCertificateId = a} :: CreateStageResponse)++-- | The timestamp when the stage was created.+createStageResponse_createdDate :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.UTCTime)+createStageResponse_createdDate = Lens.lens (\CreateStageResponse' {createdDate} -> createdDate) (\s@CreateStageResponse' {} a -> s {createdDate = a} :: CreateStageResponse) Prelude.. Lens.mapping Data._Time++-- | Default route settings for the stage.+createStageResponse_defaultRouteSettings :: Lens.Lens' CreateStageResponse (Prelude.Maybe RouteSettings)+createStageResponse_defaultRouteSettings = Lens.lens (\CreateStageResponse' {defaultRouteSettings} -> defaultRouteSettings) (\s@CreateStageResponse' {} a -> s {defaultRouteSettings = a} :: CreateStageResponse)++-- | The identifier of the Deployment that the Stage is associated with.+-- Can\'t be updated if autoDeploy is enabled.+createStageResponse_deploymentId :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.Text)+createStageResponse_deploymentId = Lens.lens (\CreateStageResponse' {deploymentId} -> deploymentId) (\s@CreateStageResponse' {} a -> s {deploymentId = a} :: CreateStageResponse)++-- | The description of the stage.+createStageResponse_description :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.Text)+createStageResponse_description = Lens.lens (\CreateStageResponse' {description} -> description) (\s@CreateStageResponse' {} a -> s {description = a} :: CreateStageResponse)++-- | Describes the status of the last deployment of a stage. Supported only+-- for stages with autoDeploy enabled.+createStageResponse_lastDeploymentStatusMessage :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.Text)+createStageResponse_lastDeploymentStatusMessage = Lens.lens (\CreateStageResponse' {lastDeploymentStatusMessage} -> lastDeploymentStatusMessage) (\s@CreateStageResponse' {} a -> s {lastDeploymentStatusMessage = a} :: CreateStageResponse)++-- | The timestamp when the stage was last updated.+createStageResponse_lastUpdatedDate :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.UTCTime)+createStageResponse_lastUpdatedDate = Lens.lens (\CreateStageResponse' {lastUpdatedDate} -> lastUpdatedDate) (\s@CreateStageResponse' {} a -> s {lastUpdatedDate = a} :: CreateStageResponse) Prelude.. Lens.mapping Data._Time++-- | Route settings for the stage, by routeKey.+createStageResponse_routeSettings :: Lens.Lens' CreateStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings))+createStageResponse_routeSettings = Lens.lens (\CreateStageResponse' {routeSettings} -> routeSettings) (\s@CreateStageResponse' {} a -> s {routeSettings = a} :: CreateStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the stage.+createStageResponse_stageName :: Lens.Lens' CreateStageResponse (Prelude.Maybe Prelude.Text)+createStageResponse_stageName = Lens.lens (\CreateStageResponse' {stageName} -> stageName) (\s@CreateStageResponse' {} a -> s {stageName = a} :: CreateStageResponse)++-- | A map that defines the stage variables for a stage resource. Variable+-- names can have alphanumeric and underscore characters, and the values+-- must match [A-Za-z0-9-._~:\/?#&=,]+.+createStageResponse_stageVariables :: Lens.Lens' CreateStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStageResponse_stageVariables = Lens.lens (\CreateStageResponse' {stageVariables} -> stageVariables) (\s@CreateStageResponse' {} a -> s {stageVariables = a} :: CreateStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of tags. Each tag element is associated with a given+-- resource.+createStageResponse_tags :: Lens.Lens' CreateStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStageResponse_tags = Lens.lens (\CreateStageResponse' {tags} -> tags) (\s@CreateStageResponse' {} a -> s {tags = a} :: CreateStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createStageResponse_httpStatus :: Lens.Lens' CreateStageResponse Prelude.Int+createStageResponse_httpStatus = Lens.lens (\CreateStageResponse' {httpStatus} -> httpStatus) (\s@CreateStageResponse' {} a -> s {httpStatus = a} :: CreateStageResponse)++instance Prelude.NFData CreateStageResponse where+  rnf CreateStageResponse' {..} =+    Prelude.rnf accessLogSettings+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf autoDeploy+      `Prelude.seq` Prelude.rnf clientCertificateId+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf defaultRouteSettings+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastDeploymentStatusMessage+      `Prelude.seq` Prelude.rnf lastUpdatedDate+      `Prelude.seq` Prelude.rnf routeSettings+      `Prelude.seq` Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf stageVariables+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/CreateVpcLink.hs view
@@ -0,0 +1,310 @@+{-# 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.ApiGatewayV2.CreateVpcLink+-- 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 VPC link.+module Amazonka.ApiGatewayV2.CreateVpcLink+  ( -- * Creating a Request+    CreateVpcLink (..),+    newCreateVpcLink,++    -- * Request Lenses+    createVpcLink_securityGroupIds,+    createVpcLink_tags,+    createVpcLink_subnetIds,+    createVpcLink_name,++    -- * Destructuring the Response+    CreateVpcLinkResponse (..),+    newCreateVpcLinkResponse,++    -- * Response Lenses+    createVpcLinkResponse_createdDate,+    createVpcLinkResponse_name,+    createVpcLinkResponse_securityGroupIds,+    createVpcLinkResponse_subnetIds,+    createVpcLinkResponse_tags,+    createVpcLinkResponse_vpcLinkId,+    createVpcLinkResponse_vpcLinkStatus,+    createVpcLinkResponse_vpcLinkStatusMessage,+    createVpcLinkResponse_vpcLinkVersion,+    createVpcLinkResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a VPC link+--+-- /See:/ 'newCreateVpcLink' smart constructor.+data CreateVpcLink = CreateVpcLink'+  { -- | A list of security group IDs for the VPC link.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | A list of tags.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A list of subnet IDs to include in the VPC link.+    subnetIds :: [Prelude.Text],+    -- | The name of the VPC link.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVpcLink' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'securityGroupIds', 'createVpcLink_securityGroupIds' - A list of security group IDs for the VPC link.+--+-- 'tags', 'createVpcLink_tags' - A list of tags.+--+-- 'subnetIds', 'createVpcLink_subnetIds' - A list of subnet IDs to include in the VPC link.+--+-- 'name', 'createVpcLink_name' - The name of the VPC link.+newCreateVpcLink ::+  -- | 'name'+  Prelude.Text ->+  CreateVpcLink+newCreateVpcLink pName_ =+  CreateVpcLink'+    { securityGroupIds = Prelude.Nothing,+      tags = Prelude.Nothing,+      subnetIds = Prelude.mempty,+      name = pName_+    }++-- | A list of security group IDs for the VPC link.+createVpcLink_securityGroupIds :: Lens.Lens' CreateVpcLink (Prelude.Maybe [Prelude.Text])+createVpcLink_securityGroupIds = Lens.lens (\CreateVpcLink' {securityGroupIds} -> securityGroupIds) (\s@CreateVpcLink' {} a -> s {securityGroupIds = a} :: CreateVpcLink) Prelude.. Lens.mapping Lens.coerced++-- | A list of tags.+createVpcLink_tags :: Lens.Lens' CreateVpcLink (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createVpcLink_tags = Lens.lens (\CreateVpcLink' {tags} -> tags) (\s@CreateVpcLink' {} a -> s {tags = a} :: CreateVpcLink) Prelude.. Lens.mapping Lens.coerced++-- | A list of subnet IDs to include in the VPC link.+createVpcLink_subnetIds :: Lens.Lens' CreateVpcLink [Prelude.Text]+createVpcLink_subnetIds = Lens.lens (\CreateVpcLink' {subnetIds} -> subnetIds) (\s@CreateVpcLink' {} a -> s {subnetIds = a} :: CreateVpcLink) Prelude.. Lens.coerced++-- | The name of the VPC link.+createVpcLink_name :: Lens.Lens' CreateVpcLink Prelude.Text+createVpcLink_name = Lens.lens (\CreateVpcLink' {name} -> name) (\s@CreateVpcLink' {} a -> s {name = a} :: CreateVpcLink)++instance Core.AWSRequest CreateVpcLink where+  type+    AWSResponse CreateVpcLink =+      CreateVpcLinkResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateVpcLinkResponse'+            Prelude.<$> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> ( x+                            Data..?> "securityGroupIds"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "subnetIds" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "vpcLinkId")+            Prelude.<*> (x Data..?> "vpcLinkStatus")+            Prelude.<*> (x Data..?> "vpcLinkStatusMessage")+            Prelude.<*> (x Data..?> "vpcLinkVersion")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateVpcLink where+  hashWithSalt _salt CreateVpcLink' {..} =+    _salt+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateVpcLink where+  rnf CreateVpcLink' {..} =+    Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateVpcLink where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateVpcLink where+  toJSON CreateVpcLink' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("securityGroupIds" Data..=)+              Prelude.<$> securityGroupIds,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("subnetIds" Data..= subnetIds),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateVpcLink where+  toPath = Prelude.const "/v2/vpclinks"++instance Data.ToQuery CreateVpcLink where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVpcLinkResponse' smart constructor.+data CreateVpcLinkResponse = CreateVpcLinkResponse'+  { -- | The timestamp when the VPC link was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The name of the VPC link.+    name :: Prelude.Maybe Prelude.Text,+    -- | A list of security group IDs for the VPC link.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | A list of subnet IDs to include in the VPC link.+    subnetIds :: Prelude.Maybe [Prelude.Text],+    -- | Tags for the VPC link.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the VPC link.+    vpcLinkId :: Prelude.Maybe Prelude.Text,+    -- | The status of the VPC link.+    vpcLinkStatus :: Prelude.Maybe VpcLinkStatus,+    -- | A message summarizing the cause of the status of the VPC link.+    vpcLinkStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The version of the VPC link.+    vpcLinkVersion :: Prelude.Maybe VpcLinkVersion,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVpcLinkResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdDate', 'createVpcLinkResponse_createdDate' - The timestamp when the VPC link was created.+--+-- 'name', 'createVpcLinkResponse_name' - The name of the VPC link.+--+-- 'securityGroupIds', 'createVpcLinkResponse_securityGroupIds' - A list of security group IDs for the VPC link.+--+-- 'subnetIds', 'createVpcLinkResponse_subnetIds' - A list of subnet IDs to include in the VPC link.+--+-- 'tags', 'createVpcLinkResponse_tags' - Tags for the VPC link.+--+-- 'vpcLinkId', 'createVpcLinkResponse_vpcLinkId' - The ID of the VPC link.+--+-- 'vpcLinkStatus', 'createVpcLinkResponse_vpcLinkStatus' - The status of the VPC link.+--+-- 'vpcLinkStatusMessage', 'createVpcLinkResponse_vpcLinkStatusMessage' - A message summarizing the cause of the status of the VPC link.+--+-- 'vpcLinkVersion', 'createVpcLinkResponse_vpcLinkVersion' - The version of the VPC link.+--+-- 'httpStatus', 'createVpcLinkResponse_httpStatus' - The response's http status code.+newCreateVpcLinkResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateVpcLinkResponse+newCreateVpcLinkResponse pHttpStatus_ =+  CreateVpcLinkResponse'+    { createdDate =+        Prelude.Nothing,+      name = Prelude.Nothing,+      securityGroupIds = Prelude.Nothing,+      subnetIds = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcLinkId = Prelude.Nothing,+      vpcLinkStatus = Prelude.Nothing,+      vpcLinkStatusMessage = Prelude.Nothing,+      vpcLinkVersion = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The timestamp when the VPC link was created.+createVpcLinkResponse_createdDate :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe Prelude.UTCTime)+createVpcLinkResponse_createdDate = Lens.lens (\CreateVpcLinkResponse' {createdDate} -> createdDate) (\s@CreateVpcLinkResponse' {} a -> s {createdDate = a} :: CreateVpcLinkResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the VPC link.+createVpcLinkResponse_name :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe Prelude.Text)+createVpcLinkResponse_name = Lens.lens (\CreateVpcLinkResponse' {name} -> name) (\s@CreateVpcLinkResponse' {} a -> s {name = a} :: CreateVpcLinkResponse)++-- | A list of security group IDs for the VPC link.+createVpcLinkResponse_securityGroupIds :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe [Prelude.Text])+createVpcLinkResponse_securityGroupIds = Lens.lens (\CreateVpcLinkResponse' {securityGroupIds} -> securityGroupIds) (\s@CreateVpcLinkResponse' {} a -> s {securityGroupIds = a} :: CreateVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of subnet IDs to include in the VPC link.+createVpcLinkResponse_subnetIds :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe [Prelude.Text])+createVpcLinkResponse_subnetIds = Lens.lens (\CreateVpcLinkResponse' {subnetIds} -> subnetIds) (\s@CreateVpcLinkResponse' {} a -> s {subnetIds = a} :: CreateVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | Tags for the VPC link.+createVpcLinkResponse_tags :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createVpcLinkResponse_tags = Lens.lens (\CreateVpcLinkResponse' {tags} -> tags) (\s@CreateVpcLinkResponse' {} a -> s {tags = a} :: CreateVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the VPC link.+createVpcLinkResponse_vpcLinkId :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe Prelude.Text)+createVpcLinkResponse_vpcLinkId = Lens.lens (\CreateVpcLinkResponse' {vpcLinkId} -> vpcLinkId) (\s@CreateVpcLinkResponse' {} a -> s {vpcLinkId = a} :: CreateVpcLinkResponse)++-- | The status of the VPC link.+createVpcLinkResponse_vpcLinkStatus :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe VpcLinkStatus)+createVpcLinkResponse_vpcLinkStatus = Lens.lens (\CreateVpcLinkResponse' {vpcLinkStatus} -> vpcLinkStatus) (\s@CreateVpcLinkResponse' {} a -> s {vpcLinkStatus = a} :: CreateVpcLinkResponse)++-- | A message summarizing the cause of the status of the VPC link.+createVpcLinkResponse_vpcLinkStatusMessage :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe Prelude.Text)+createVpcLinkResponse_vpcLinkStatusMessage = Lens.lens (\CreateVpcLinkResponse' {vpcLinkStatusMessage} -> vpcLinkStatusMessage) (\s@CreateVpcLinkResponse' {} a -> s {vpcLinkStatusMessage = a} :: CreateVpcLinkResponse)++-- | The version of the VPC link.+createVpcLinkResponse_vpcLinkVersion :: Lens.Lens' CreateVpcLinkResponse (Prelude.Maybe VpcLinkVersion)+createVpcLinkResponse_vpcLinkVersion = Lens.lens (\CreateVpcLinkResponse' {vpcLinkVersion} -> vpcLinkVersion) (\s@CreateVpcLinkResponse' {} a -> s {vpcLinkVersion = a} :: CreateVpcLinkResponse)++-- | The response's http status code.+createVpcLinkResponse_httpStatus :: Lens.Lens' CreateVpcLinkResponse Prelude.Int+createVpcLinkResponse_httpStatus = Lens.lens (\CreateVpcLinkResponse' {httpStatus} -> httpStatus) (\s@CreateVpcLinkResponse' {} a -> s {httpStatus = a} :: CreateVpcLinkResponse)++instance Prelude.NFData CreateVpcLinkResponse where+  rnf CreateVpcLinkResponse' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcLinkId+      `Prelude.seq` Prelude.rnf vpcLinkStatus+      `Prelude.seq` Prelude.rnf vpcLinkStatusMessage+      `Prelude.seq` Prelude.rnf vpcLinkVersion+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/DeleteAccessLogSettings.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.DeleteAccessLogSettings+-- 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 the AccessLogSettings for a Stage. To disable access logging for+-- a Stage, delete its AccessLogSettings.+module Amazonka.ApiGatewayV2.DeleteAccessLogSettings+  ( -- * Creating a Request+    DeleteAccessLogSettings (..),+    newDeleteAccessLogSettings,++    -- * Request Lenses+    deleteAccessLogSettings_stageName,+    deleteAccessLogSettings_apiId,++    -- * Destructuring the Response+    DeleteAccessLogSettingsResponse (..),+    newDeleteAccessLogSettingsResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteAccessLogSettings' smart constructor.+data DeleteAccessLogSettings = DeleteAccessLogSettings'+  { -- | The stage name. Stage names can only contain alphanumeric characters,+    -- hyphens, and underscores. Maximum length is 128 characters.+    stageName :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccessLogSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stageName', 'deleteAccessLogSettings_stageName' - The stage name. Stage names can only contain alphanumeric characters,+-- hyphens, and underscores. Maximum length is 128 characters.+--+-- 'apiId', 'deleteAccessLogSettings_apiId' - The API identifier.+newDeleteAccessLogSettings ::+  -- | 'stageName'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  DeleteAccessLogSettings+newDeleteAccessLogSettings pStageName_ pApiId_ =+  DeleteAccessLogSettings'+    { stageName = pStageName_,+      apiId = pApiId_+    }++-- | The stage name. Stage names can only contain alphanumeric characters,+-- hyphens, and underscores. Maximum length is 128 characters.+deleteAccessLogSettings_stageName :: Lens.Lens' DeleteAccessLogSettings Prelude.Text+deleteAccessLogSettings_stageName = Lens.lens (\DeleteAccessLogSettings' {stageName} -> stageName) (\s@DeleteAccessLogSettings' {} a -> s {stageName = a} :: DeleteAccessLogSettings)++-- | The API identifier.+deleteAccessLogSettings_apiId :: Lens.Lens' DeleteAccessLogSettings Prelude.Text+deleteAccessLogSettings_apiId = Lens.lens (\DeleteAccessLogSettings' {apiId} -> apiId) (\s@DeleteAccessLogSettings' {} a -> s {apiId = a} :: DeleteAccessLogSettings)++instance Core.AWSRequest DeleteAccessLogSettings where+  type+    AWSResponse DeleteAccessLogSettings =+      DeleteAccessLogSettingsResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull+      DeleteAccessLogSettingsResponse'++instance Prelude.Hashable DeleteAccessLogSettings where+  hashWithSalt _salt DeleteAccessLogSettings' {..} =+    _salt+      `Prelude.hashWithSalt` stageName+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData DeleteAccessLogSettings where+  rnf DeleteAccessLogSettings' {..} =+    Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders DeleteAccessLogSettings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteAccessLogSettings where+  toPath DeleteAccessLogSettings' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/stages/",+        Data.toBS stageName,+        "/accesslogsettings"+      ]++instance Data.ToQuery DeleteAccessLogSettings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAccessLogSettingsResponse' smart constructor.+data DeleteAccessLogSettingsResponse = DeleteAccessLogSettingsResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccessLogSettingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteAccessLogSettingsResponse ::+  DeleteAccessLogSettingsResponse+newDeleteAccessLogSettingsResponse =+  DeleteAccessLogSettingsResponse'++instance+  Prelude.NFData+    DeleteAccessLogSettingsResponse+  where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteApi.hs view
@@ -0,0 +1,118 @@+{-# 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.ApiGatewayV2.DeleteApi+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Api resource.+module Amazonka.ApiGatewayV2.DeleteApi+  ( -- * Creating a Request+    DeleteApi (..),+    newDeleteApi,++    -- * Request Lenses+    deleteApi_apiId,++    -- * Destructuring the Response+    DeleteApiResponse (..),+    newDeleteApiResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteApi' smart constructor.+data DeleteApi = DeleteApi'+  { -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApi' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'deleteApi_apiId' - The API identifier.+newDeleteApi ::+  -- | 'apiId'+  Prelude.Text ->+  DeleteApi+newDeleteApi pApiId_ = DeleteApi' {apiId = pApiId_}++-- | The API identifier.+deleteApi_apiId :: Lens.Lens' DeleteApi Prelude.Text+deleteApi_apiId = Lens.lens (\DeleteApi' {apiId} -> apiId) (\s@DeleteApi' {} a -> s {apiId = a} :: DeleteApi)++instance Core.AWSRequest DeleteApi where+  type AWSResponse DeleteApi = DeleteApiResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteApiResponse'++instance Prelude.Hashable DeleteApi where+  hashWithSalt _salt DeleteApi' {..} =+    _salt `Prelude.hashWithSalt` apiId++instance Prelude.NFData DeleteApi where+  rnf DeleteApi' {..} = Prelude.rnf apiId++instance Data.ToHeaders DeleteApi where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteApi where+  toPath DeleteApi' {..} =+    Prelude.mconcat ["/v2/apis/", Data.toBS apiId]++instance Data.ToQuery DeleteApi where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteApiResponse' smart constructor.+data DeleteApiResponse = DeleteApiResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApiResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteApiResponse ::+  DeleteApiResponse+newDeleteApiResponse = DeleteApiResponse'++instance Prelude.NFData DeleteApiResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteApiMapping.hs view
@@ -0,0 +1,146 @@+{-# 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.ApiGatewayV2.DeleteApiMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an API mapping.+module Amazonka.ApiGatewayV2.DeleteApiMapping+  ( -- * Creating a Request+    DeleteApiMapping (..),+    newDeleteApiMapping,++    -- * Request Lenses+    deleteApiMapping_apiMappingId,+    deleteApiMapping_domainName,++    -- * Destructuring the Response+    DeleteApiMappingResponse (..),+    newDeleteApiMappingResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteApiMapping' smart constructor.+data DeleteApiMapping = DeleteApiMapping'+  { -- | The API mapping identifier.+    apiMappingId :: Prelude.Text,+    -- | The domain name.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApiMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingId', 'deleteApiMapping_apiMappingId' - The API mapping identifier.+--+-- 'domainName', 'deleteApiMapping_domainName' - The domain name.+newDeleteApiMapping ::+  -- | 'apiMappingId'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  DeleteApiMapping+newDeleteApiMapping pApiMappingId_ pDomainName_ =+  DeleteApiMapping'+    { apiMappingId = pApiMappingId_,+      domainName = pDomainName_+    }++-- | The API mapping identifier.+deleteApiMapping_apiMappingId :: Lens.Lens' DeleteApiMapping Prelude.Text+deleteApiMapping_apiMappingId = Lens.lens (\DeleteApiMapping' {apiMappingId} -> apiMappingId) (\s@DeleteApiMapping' {} a -> s {apiMappingId = a} :: DeleteApiMapping)++-- | The domain name.+deleteApiMapping_domainName :: Lens.Lens' DeleteApiMapping Prelude.Text+deleteApiMapping_domainName = Lens.lens (\DeleteApiMapping' {domainName} -> domainName) (\s@DeleteApiMapping' {} a -> s {domainName = a} :: DeleteApiMapping)++instance Core.AWSRequest DeleteApiMapping where+  type+    AWSResponse DeleteApiMapping =+      DeleteApiMappingResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteApiMappingResponse'++instance Prelude.Hashable DeleteApiMapping where+  hashWithSalt _salt DeleteApiMapping' {..} =+    _salt+      `Prelude.hashWithSalt` apiMappingId+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData DeleteApiMapping where+  rnf DeleteApiMapping' {..} =+    Prelude.rnf apiMappingId+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders DeleteApiMapping where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteApiMapping where+  toPath DeleteApiMapping' {..} =+    Prelude.mconcat+      [ "/v2/domainnames/",+        Data.toBS domainName,+        "/apimappings/",+        Data.toBS apiMappingId+      ]++instance Data.ToQuery DeleteApiMapping where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteApiMappingResponse' smart constructor.+data DeleteApiMappingResponse = DeleteApiMappingResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApiMappingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteApiMappingResponse ::+  DeleteApiMappingResponse+newDeleteApiMappingResponse =+  DeleteApiMappingResponse'++instance Prelude.NFData DeleteApiMappingResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteAuthorizer.hs view
@@ -0,0 +1,146 @@+{-# 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.ApiGatewayV2.DeleteAuthorizer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Authorizer.+module Amazonka.ApiGatewayV2.DeleteAuthorizer+  ( -- * Creating a Request+    DeleteAuthorizer (..),+    newDeleteAuthorizer,++    -- * Request Lenses+    deleteAuthorizer_authorizerId,+    deleteAuthorizer_apiId,++    -- * Destructuring the Response+    DeleteAuthorizerResponse (..),+    newDeleteAuthorizerResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteAuthorizer' smart constructor.+data DeleteAuthorizer = DeleteAuthorizer'+  { -- | The authorizer identifier.+    authorizerId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAuthorizer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorizerId', 'deleteAuthorizer_authorizerId' - The authorizer identifier.+--+-- 'apiId', 'deleteAuthorizer_apiId' - The API identifier.+newDeleteAuthorizer ::+  -- | 'authorizerId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  DeleteAuthorizer+newDeleteAuthorizer pAuthorizerId_ pApiId_ =+  DeleteAuthorizer'+    { authorizerId = pAuthorizerId_,+      apiId = pApiId_+    }++-- | The authorizer identifier.+deleteAuthorizer_authorizerId :: Lens.Lens' DeleteAuthorizer Prelude.Text+deleteAuthorizer_authorizerId = Lens.lens (\DeleteAuthorizer' {authorizerId} -> authorizerId) (\s@DeleteAuthorizer' {} a -> s {authorizerId = a} :: DeleteAuthorizer)++-- | The API identifier.+deleteAuthorizer_apiId :: Lens.Lens' DeleteAuthorizer Prelude.Text+deleteAuthorizer_apiId = Lens.lens (\DeleteAuthorizer' {apiId} -> apiId) (\s@DeleteAuthorizer' {} a -> s {apiId = a} :: DeleteAuthorizer)++instance Core.AWSRequest DeleteAuthorizer where+  type+    AWSResponse DeleteAuthorizer =+      DeleteAuthorizerResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteAuthorizerResponse'++instance Prelude.Hashable DeleteAuthorizer where+  hashWithSalt _salt DeleteAuthorizer' {..} =+    _salt+      `Prelude.hashWithSalt` authorizerId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData DeleteAuthorizer where+  rnf DeleteAuthorizer' {..} =+    Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders DeleteAuthorizer where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteAuthorizer where+  toPath DeleteAuthorizer' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/authorizers/",+        Data.toBS authorizerId+      ]++instance Data.ToQuery DeleteAuthorizer where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAuthorizerResponse' smart constructor.+data DeleteAuthorizerResponse = DeleteAuthorizerResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAuthorizerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteAuthorizerResponse ::+  DeleteAuthorizerResponse+newDeleteAuthorizerResponse =+  DeleteAuthorizerResponse'++instance Prelude.NFData DeleteAuthorizerResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteCorsConfiguration.hs view
@@ -0,0 +1,128 @@+{-# 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.ApiGatewayV2.DeleteCorsConfiguration+-- 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 CORS configuration.+module Amazonka.ApiGatewayV2.DeleteCorsConfiguration+  ( -- * Creating a Request+    DeleteCorsConfiguration (..),+    newDeleteCorsConfiguration,++    -- * Request Lenses+    deleteCorsConfiguration_apiId,++    -- * Destructuring the Response+    DeleteCorsConfigurationResponse (..),+    newDeleteCorsConfigurationResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteCorsConfiguration' smart constructor.+data DeleteCorsConfiguration = DeleteCorsConfiguration'+  { -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCorsConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'deleteCorsConfiguration_apiId' - The API identifier.+newDeleteCorsConfiguration ::+  -- | 'apiId'+  Prelude.Text ->+  DeleteCorsConfiguration+newDeleteCorsConfiguration pApiId_ =+  DeleteCorsConfiguration' {apiId = pApiId_}++-- | The API identifier.+deleteCorsConfiguration_apiId :: Lens.Lens' DeleteCorsConfiguration Prelude.Text+deleteCorsConfiguration_apiId = Lens.lens (\DeleteCorsConfiguration' {apiId} -> apiId) (\s@DeleteCorsConfiguration' {} a -> s {apiId = a} :: DeleteCorsConfiguration)++instance Core.AWSRequest DeleteCorsConfiguration where+  type+    AWSResponse DeleteCorsConfiguration =+      DeleteCorsConfigurationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull+      DeleteCorsConfigurationResponse'++instance Prelude.Hashable DeleteCorsConfiguration where+  hashWithSalt _salt DeleteCorsConfiguration' {..} =+    _salt `Prelude.hashWithSalt` apiId++instance Prelude.NFData DeleteCorsConfiguration where+  rnf DeleteCorsConfiguration' {..} = Prelude.rnf apiId++instance Data.ToHeaders DeleteCorsConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteCorsConfiguration where+  toPath DeleteCorsConfiguration' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/cors"]++instance Data.ToQuery DeleteCorsConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCorsConfigurationResponse' smart constructor.+data DeleteCorsConfigurationResponse = DeleteCorsConfigurationResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCorsConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteCorsConfigurationResponse ::+  DeleteCorsConfigurationResponse+newDeleteCorsConfigurationResponse =+  DeleteCorsConfigurationResponse'++instance+  Prelude.NFData+    DeleteCorsConfigurationResponse+  where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteDeployment.hs view
@@ -0,0 +1,146 @@+{-# 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.ApiGatewayV2.DeleteDeployment+-- 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 Deployment.+module Amazonka.ApiGatewayV2.DeleteDeployment+  ( -- * Creating a Request+    DeleteDeployment (..),+    newDeleteDeployment,++    -- * Request Lenses+    deleteDeployment_apiId,+    deleteDeployment_deploymentId,++    -- * Destructuring the Response+    DeleteDeploymentResponse (..),+    newDeleteDeploymentResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteDeployment' smart constructor.+data DeleteDeployment = DeleteDeployment'+  { -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The deployment ID.+    deploymentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'deleteDeployment_apiId' - The API identifier.+--+-- 'deploymentId', 'deleteDeployment_deploymentId' - The deployment ID.+newDeleteDeployment ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'deploymentId'+  Prelude.Text ->+  DeleteDeployment+newDeleteDeployment pApiId_ pDeploymentId_ =+  DeleteDeployment'+    { apiId = pApiId_,+      deploymentId = pDeploymentId_+    }++-- | The API identifier.+deleteDeployment_apiId :: Lens.Lens' DeleteDeployment Prelude.Text+deleteDeployment_apiId = Lens.lens (\DeleteDeployment' {apiId} -> apiId) (\s@DeleteDeployment' {} a -> s {apiId = a} :: DeleteDeployment)++-- | The deployment ID.+deleteDeployment_deploymentId :: Lens.Lens' DeleteDeployment Prelude.Text+deleteDeployment_deploymentId = Lens.lens (\DeleteDeployment' {deploymentId} -> deploymentId) (\s@DeleteDeployment' {} a -> s {deploymentId = a} :: DeleteDeployment)++instance Core.AWSRequest DeleteDeployment where+  type+    AWSResponse DeleteDeployment =+      DeleteDeploymentResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteDeploymentResponse'++instance Prelude.Hashable DeleteDeployment where+  hashWithSalt _salt DeleteDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` deploymentId++instance Prelude.NFData DeleteDeployment where+  rnf DeleteDeployment' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf deploymentId++instance Data.ToHeaders DeleteDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteDeployment where+  toPath DeleteDeployment' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/deployments/",+        Data.toBS deploymentId+      ]++instance Data.ToQuery DeleteDeployment where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDeploymentResponse' smart constructor.+data DeleteDeploymentResponse = DeleteDeploymentResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDeploymentResponse ::+  DeleteDeploymentResponse+newDeleteDeploymentResponse =+  DeleteDeploymentResponse'++instance Prelude.NFData DeleteDeploymentResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteDomainName.hs view
@@ -0,0 +1,124 @@+{-# 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.ApiGatewayV2.DeleteDomainName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a domain name.+module Amazonka.ApiGatewayV2.DeleteDomainName+  ( -- * Creating a Request+    DeleteDomainName (..),+    newDeleteDomainName,++    -- * Request Lenses+    deleteDomainName_domainName,++    -- * Destructuring the Response+    DeleteDomainNameResponse (..),+    newDeleteDomainNameResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteDomainName' smart constructor.+data DeleteDomainName = DeleteDomainName'+  { -- | The domain name.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDomainName' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'deleteDomainName_domainName' - The domain name.+newDeleteDomainName ::+  -- | 'domainName'+  Prelude.Text ->+  DeleteDomainName+newDeleteDomainName pDomainName_ =+  DeleteDomainName' {domainName = pDomainName_}++-- | The domain name.+deleteDomainName_domainName :: Lens.Lens' DeleteDomainName Prelude.Text+deleteDomainName_domainName = Lens.lens (\DeleteDomainName' {domainName} -> domainName) (\s@DeleteDomainName' {} a -> s {domainName = a} :: DeleteDomainName)++instance Core.AWSRequest DeleteDomainName where+  type+    AWSResponse DeleteDomainName =+      DeleteDomainNameResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteDomainNameResponse'++instance Prelude.Hashable DeleteDomainName where+  hashWithSalt _salt DeleteDomainName' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData DeleteDomainName where+  rnf DeleteDomainName' {..} = Prelude.rnf domainName++instance Data.ToHeaders DeleteDomainName where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteDomainName where+  toPath DeleteDomainName' {..} =+    Prelude.mconcat+      ["/v2/domainnames/", Data.toBS domainName]++instance Data.ToQuery DeleteDomainName where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDomainNameResponse' smart constructor.+data DeleteDomainNameResponse = DeleteDomainNameResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDomainNameResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDomainNameResponse ::+  DeleteDomainNameResponse+newDeleteDomainNameResponse =+  DeleteDomainNameResponse'++instance Prelude.NFData DeleteDomainNameResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteIntegration.hs view
@@ -0,0 +1,146 @@+{-# 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.ApiGatewayV2.DeleteIntegration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Integration.+module Amazonka.ApiGatewayV2.DeleteIntegration+  ( -- * Creating a Request+    DeleteIntegration (..),+    newDeleteIntegration,++    -- * Request Lenses+    deleteIntegration_apiId,+    deleteIntegration_integrationId,++    -- * Destructuring the Response+    DeleteIntegrationResponse' (..),+    newDeleteIntegrationResponse',+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteIntegration' smart constructor.+data DeleteIntegration = DeleteIntegration'+  { -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The integration ID.+    integrationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'deleteIntegration_apiId' - The API identifier.+--+-- 'integrationId', 'deleteIntegration_integrationId' - The integration ID.+newDeleteIntegration ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'integrationId'+  Prelude.Text ->+  DeleteIntegration+newDeleteIntegration pApiId_ pIntegrationId_ =+  DeleteIntegration'+    { apiId = pApiId_,+      integrationId = pIntegrationId_+    }++-- | The API identifier.+deleteIntegration_apiId :: Lens.Lens' DeleteIntegration Prelude.Text+deleteIntegration_apiId = Lens.lens (\DeleteIntegration' {apiId} -> apiId) (\s@DeleteIntegration' {} a -> s {apiId = a} :: DeleteIntegration)++-- | The integration ID.+deleteIntegration_integrationId :: Lens.Lens' DeleteIntegration Prelude.Text+deleteIntegration_integrationId = Lens.lens (\DeleteIntegration' {integrationId} -> integrationId) (\s@DeleteIntegration' {} a -> s {integrationId = a} :: DeleteIntegration)++instance Core.AWSRequest DeleteIntegration where+  type+    AWSResponse DeleteIntegration =+      DeleteIntegrationResponse'+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteIntegrationResponse''++instance Prelude.Hashable DeleteIntegration where+  hashWithSalt _salt DeleteIntegration' {..} =+    _salt+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` integrationId++instance Prelude.NFData DeleteIntegration where+  rnf DeleteIntegration' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf integrationId++instance Data.ToHeaders DeleteIntegration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteIntegration where+  toPath DeleteIntegration' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/integrations/",+        Data.toBS integrationId+      ]++instance Data.ToQuery DeleteIntegration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteIntegrationResponse'' smart constructor.+data DeleteIntegrationResponse' = DeleteIntegrationResponse''+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIntegrationResponse'' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteIntegrationResponse' ::+  DeleteIntegrationResponse'+newDeleteIntegrationResponse' =+  DeleteIntegrationResponse''++instance Prelude.NFData DeleteIntegrationResponse' where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteIntegrationResponse.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.DeleteIntegrationResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an IntegrationResponses.+module Amazonka.ApiGatewayV2.DeleteIntegrationResponse+  ( -- * Creating a Request+    DeleteIntegrationResponse (..),+    newDeleteIntegrationResponse,++    -- * Request Lenses+    deleteIntegrationResponse_apiId,+    deleteIntegrationResponse_integrationResponseId,+    deleteIntegrationResponse_integrationId,++    -- * Destructuring the Response+    DeleteIntegrationResponseResponse (..),+    newDeleteIntegrationResponseResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteIntegrationResponse' smart constructor.+data DeleteIntegrationResponse = DeleteIntegrationResponse'+  { -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The integration response ID.+    integrationResponseId :: Prelude.Text,+    -- | The integration ID.+    integrationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'deleteIntegrationResponse_apiId' - The API identifier.+--+-- 'integrationResponseId', 'deleteIntegrationResponse_integrationResponseId' - The integration response ID.+--+-- 'integrationId', 'deleteIntegrationResponse_integrationId' - The integration ID.+newDeleteIntegrationResponse ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'integrationResponseId'+  Prelude.Text ->+  -- | 'integrationId'+  Prelude.Text ->+  DeleteIntegrationResponse+newDeleteIntegrationResponse+  pApiId_+  pIntegrationResponseId_+  pIntegrationId_ =+    DeleteIntegrationResponse'+      { apiId = pApiId_,+        integrationResponseId = pIntegrationResponseId_,+        integrationId = pIntegrationId_+      }++-- | The API identifier.+deleteIntegrationResponse_apiId :: Lens.Lens' DeleteIntegrationResponse Prelude.Text+deleteIntegrationResponse_apiId = Lens.lens (\DeleteIntegrationResponse' {apiId} -> apiId) (\s@DeleteIntegrationResponse' {} a -> s {apiId = a} :: DeleteIntegrationResponse)++-- | The integration response ID.+deleteIntegrationResponse_integrationResponseId :: Lens.Lens' DeleteIntegrationResponse Prelude.Text+deleteIntegrationResponse_integrationResponseId = Lens.lens (\DeleteIntegrationResponse' {integrationResponseId} -> integrationResponseId) (\s@DeleteIntegrationResponse' {} a -> s {integrationResponseId = a} :: DeleteIntegrationResponse)++-- | The integration ID.+deleteIntegrationResponse_integrationId :: Lens.Lens' DeleteIntegrationResponse Prelude.Text+deleteIntegrationResponse_integrationId = Lens.lens (\DeleteIntegrationResponse' {integrationId} -> integrationId) (\s@DeleteIntegrationResponse' {} a -> s {integrationId = a} :: DeleteIntegrationResponse)++instance Core.AWSRequest DeleteIntegrationResponse where+  type+    AWSResponse DeleteIntegrationResponse =+      DeleteIntegrationResponseResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull+      DeleteIntegrationResponseResponse'++instance Prelude.Hashable DeleteIntegrationResponse where+  hashWithSalt _salt DeleteIntegrationResponse' {..} =+    _salt+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` integrationResponseId+      `Prelude.hashWithSalt` integrationId++instance Prelude.NFData DeleteIntegrationResponse where+  rnf DeleteIntegrationResponse' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf integrationResponseId+      `Prelude.seq` Prelude.rnf integrationId++instance Data.ToHeaders DeleteIntegrationResponse where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteIntegrationResponse where+  toPath DeleteIntegrationResponse' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/integrations/",+        Data.toBS integrationId,+        "/integrationresponses/",+        Data.toBS integrationResponseId+      ]++instance Data.ToQuery DeleteIntegrationResponse where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteIntegrationResponseResponse' smart constructor.+data DeleteIntegrationResponseResponse = DeleteIntegrationResponseResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIntegrationResponseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteIntegrationResponseResponse ::+  DeleteIntegrationResponseResponse+newDeleteIntegrationResponseResponse =+  DeleteIntegrationResponseResponse'++instance+  Prelude.NFData+    DeleteIntegrationResponseResponse+  where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteModel.hs view
@@ -0,0 +1,138 @@+{-# 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.ApiGatewayV2.DeleteModel+-- 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 Model.+module Amazonka.ApiGatewayV2.DeleteModel+  ( -- * Creating a Request+    DeleteModel (..),+    newDeleteModel,++    -- * Request Lenses+    deleteModel_modelId,+    deleteModel_apiId,++    -- * Destructuring the Response+    DeleteModelResponse (..),+    newDeleteModelResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteModel' smart constructor.+data DeleteModel = DeleteModel'+  { -- | The model ID.+    modelId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'deleteModel_modelId' - The model ID.+--+-- 'apiId', 'deleteModel_apiId' - The API identifier.+newDeleteModel ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  DeleteModel+newDeleteModel pModelId_ pApiId_ =+  DeleteModel' {modelId = pModelId_, apiId = pApiId_}++-- | The model ID.+deleteModel_modelId :: Lens.Lens' DeleteModel Prelude.Text+deleteModel_modelId = Lens.lens (\DeleteModel' {modelId} -> modelId) (\s@DeleteModel' {} a -> s {modelId = a} :: DeleteModel)++-- | The API identifier.+deleteModel_apiId :: Lens.Lens' DeleteModel Prelude.Text+deleteModel_apiId = Lens.lens (\DeleteModel' {apiId} -> apiId) (\s@DeleteModel' {} a -> s {apiId = a} :: DeleteModel)++instance Core.AWSRequest DeleteModel where+  type AWSResponse DeleteModel = DeleteModelResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteModelResponse'++instance Prelude.Hashable DeleteModel where+  hashWithSalt _salt DeleteModel' {..} =+    _salt+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData DeleteModel where+  rnf DeleteModel' {..} =+    Prelude.rnf modelId `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders DeleteModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteModel where+  toPath DeleteModel' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/models/",+        Data.toBS modelId+      ]++instance Data.ToQuery DeleteModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteModelResponse' smart constructor.+data DeleteModelResponse = DeleteModelResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteModelResponse ::+  DeleteModelResponse+newDeleteModelResponse = DeleteModelResponse'++instance Prelude.NFData DeleteModelResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteRoute.hs view
@@ -0,0 +1,138 @@+{-# 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.ApiGatewayV2.DeleteRoute+-- 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 Route.+module Amazonka.ApiGatewayV2.DeleteRoute+  ( -- * Creating a Request+    DeleteRoute (..),+    newDeleteRoute,++    -- * Request Lenses+    deleteRoute_apiId,+    deleteRoute_routeId,++    -- * Destructuring the Response+    DeleteRouteResponse' (..),+    newDeleteRouteResponse',+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteRoute' smart constructor.+data DeleteRoute = DeleteRoute'+  { -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'deleteRoute_apiId' - The API identifier.+--+-- 'routeId', 'deleteRoute_routeId' - The route ID.+newDeleteRoute ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeId'+  Prelude.Text ->+  DeleteRoute+newDeleteRoute pApiId_ pRouteId_ =+  DeleteRoute' {apiId = pApiId_, routeId = pRouteId_}++-- | The API identifier.+deleteRoute_apiId :: Lens.Lens' DeleteRoute Prelude.Text+deleteRoute_apiId = Lens.lens (\DeleteRoute' {apiId} -> apiId) (\s@DeleteRoute' {} a -> s {apiId = a} :: DeleteRoute)++-- | The route ID.+deleteRoute_routeId :: Lens.Lens' DeleteRoute Prelude.Text+deleteRoute_routeId = Lens.lens (\DeleteRoute' {routeId} -> routeId) (\s@DeleteRoute' {} a -> s {routeId = a} :: DeleteRoute)++instance Core.AWSRequest DeleteRoute where+  type AWSResponse DeleteRoute = DeleteRouteResponse'+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteRouteResponse''++instance Prelude.Hashable DeleteRoute where+  hashWithSalt _salt DeleteRoute' {..} =+    _salt+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeId++instance Prelude.NFData DeleteRoute where+  rnf DeleteRoute' {..} =+    Prelude.rnf apiId `Prelude.seq` Prelude.rnf routeId++instance Data.ToHeaders DeleteRoute where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteRoute where+  toPath DeleteRoute' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId+      ]++instance Data.ToQuery DeleteRoute where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRouteResponse'' smart constructor.+data DeleteRouteResponse' = DeleteRouteResponse''+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRouteResponse'' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteRouteResponse' ::+  DeleteRouteResponse'+newDeleteRouteResponse' = DeleteRouteResponse''++instance Prelude.NFData DeleteRouteResponse' where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteRouteRequestParameter.hs view
@@ -0,0 +1,170 @@+{-# 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.ApiGatewayV2.DeleteRouteRequestParameter+-- 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 route request parameter.+module Amazonka.ApiGatewayV2.DeleteRouteRequestParameter+  ( -- * Creating a Request+    DeleteRouteRequestParameter (..),+    newDeleteRouteRequestParameter,++    -- * Request Lenses+    deleteRouteRequestParameter_requestParameterKey,+    deleteRouteRequestParameter_apiId,+    deleteRouteRequestParameter_routeId,++    -- * Destructuring the Response+    DeleteRouteRequestParameterResponse (..),+    newDeleteRouteRequestParameterResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteRouteRequestParameter' smart constructor.+data DeleteRouteRequestParameter = DeleteRouteRequestParameter'+  { -- | The route request parameter key.+    requestParameterKey :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRouteRequestParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'requestParameterKey', 'deleteRouteRequestParameter_requestParameterKey' - The route request parameter key.+--+-- 'apiId', 'deleteRouteRequestParameter_apiId' - The API identifier.+--+-- 'routeId', 'deleteRouteRequestParameter_routeId' - The route ID.+newDeleteRouteRequestParameter ::+  -- | 'requestParameterKey'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeId'+  Prelude.Text ->+  DeleteRouteRequestParameter+newDeleteRouteRequestParameter+  pRequestParameterKey_+  pApiId_+  pRouteId_ =+    DeleteRouteRequestParameter'+      { requestParameterKey =+          pRequestParameterKey_,+        apiId = pApiId_,+        routeId = pRouteId_+      }++-- | The route request parameter key.+deleteRouteRequestParameter_requestParameterKey :: Lens.Lens' DeleteRouteRequestParameter Prelude.Text+deleteRouteRequestParameter_requestParameterKey = Lens.lens (\DeleteRouteRequestParameter' {requestParameterKey} -> requestParameterKey) (\s@DeleteRouteRequestParameter' {} a -> s {requestParameterKey = a} :: DeleteRouteRequestParameter)++-- | The API identifier.+deleteRouteRequestParameter_apiId :: Lens.Lens' DeleteRouteRequestParameter Prelude.Text+deleteRouteRequestParameter_apiId = Lens.lens (\DeleteRouteRequestParameter' {apiId} -> apiId) (\s@DeleteRouteRequestParameter' {} a -> s {apiId = a} :: DeleteRouteRequestParameter)++-- | The route ID.+deleteRouteRequestParameter_routeId :: Lens.Lens' DeleteRouteRequestParameter Prelude.Text+deleteRouteRequestParameter_routeId = Lens.lens (\DeleteRouteRequestParameter' {routeId} -> routeId) (\s@DeleteRouteRequestParameter' {} a -> s {routeId = a} :: DeleteRouteRequestParameter)++instance Core.AWSRequest DeleteRouteRequestParameter where+  type+    AWSResponse DeleteRouteRequestParameter =+      DeleteRouteRequestParameterResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull+      DeleteRouteRequestParameterResponse'++instance Prelude.Hashable DeleteRouteRequestParameter where+  hashWithSalt _salt DeleteRouteRequestParameter' {..} =+    _salt+      `Prelude.hashWithSalt` requestParameterKey+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeId++instance Prelude.NFData DeleteRouteRequestParameter where+  rnf DeleteRouteRequestParameter' {..} =+    Prelude.rnf requestParameterKey+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf routeId++instance Data.ToHeaders DeleteRouteRequestParameter where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteRouteRequestParameter where+  toPath DeleteRouteRequestParameter' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId,+        "/requestparameters/",+        Data.toBS requestParameterKey+      ]++instance Data.ToQuery DeleteRouteRequestParameter where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRouteRequestParameterResponse' smart constructor.+data DeleteRouteRequestParameterResponse = DeleteRouteRequestParameterResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRouteRequestParameterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteRouteRequestParameterResponse ::+  DeleteRouteRequestParameterResponse+newDeleteRouteRequestParameterResponse =+  DeleteRouteRequestParameterResponse'++instance+  Prelude.NFData+    DeleteRouteRequestParameterResponse+  where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteRouteResponse.hs view
@@ -0,0 +1,166 @@+{-# 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.ApiGatewayV2.DeleteRouteResponse+-- 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 RouteResponse.+module Amazonka.ApiGatewayV2.DeleteRouteResponse+  ( -- * Creating a Request+    DeleteRouteResponse (..),+    newDeleteRouteResponse,++    -- * Request Lenses+    deleteRouteResponse_routeResponseId,+    deleteRouteResponse_apiId,+    deleteRouteResponse_routeId,++    -- * Destructuring the Response+    DeleteRouteResponseResponse (..),+    newDeleteRouteResponseResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteRouteResponse' smart constructor.+data DeleteRouteResponse = DeleteRouteResponse'+  { -- | The route response ID.+    routeResponseId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'routeResponseId', 'deleteRouteResponse_routeResponseId' - The route response ID.+--+-- 'apiId', 'deleteRouteResponse_apiId' - The API identifier.+--+-- 'routeId', 'deleteRouteResponse_routeId' - The route ID.+newDeleteRouteResponse ::+  -- | 'routeResponseId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeId'+  Prelude.Text ->+  DeleteRouteResponse+newDeleteRouteResponse+  pRouteResponseId_+  pApiId_+  pRouteId_ =+    DeleteRouteResponse'+      { routeResponseId =+          pRouteResponseId_,+        apiId = pApiId_,+        routeId = pRouteId_+      }++-- | The route response ID.+deleteRouteResponse_routeResponseId :: Lens.Lens' DeleteRouteResponse Prelude.Text+deleteRouteResponse_routeResponseId = Lens.lens (\DeleteRouteResponse' {routeResponseId} -> routeResponseId) (\s@DeleteRouteResponse' {} a -> s {routeResponseId = a} :: DeleteRouteResponse)++-- | The API identifier.+deleteRouteResponse_apiId :: Lens.Lens' DeleteRouteResponse Prelude.Text+deleteRouteResponse_apiId = Lens.lens (\DeleteRouteResponse' {apiId} -> apiId) (\s@DeleteRouteResponse' {} a -> s {apiId = a} :: DeleteRouteResponse)++-- | The route ID.+deleteRouteResponse_routeId :: Lens.Lens' DeleteRouteResponse Prelude.Text+deleteRouteResponse_routeId = Lens.lens (\DeleteRouteResponse' {routeId} -> routeId) (\s@DeleteRouteResponse' {} a -> s {routeId = a} :: DeleteRouteResponse)++instance Core.AWSRequest DeleteRouteResponse where+  type+    AWSResponse DeleteRouteResponse =+      DeleteRouteResponseResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteRouteResponseResponse'++instance Prelude.Hashable DeleteRouteResponse where+  hashWithSalt _salt DeleteRouteResponse' {..} =+    _salt+      `Prelude.hashWithSalt` routeResponseId+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeId++instance Prelude.NFData DeleteRouteResponse where+  rnf DeleteRouteResponse' {..} =+    Prelude.rnf routeResponseId+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf routeId++instance Data.ToHeaders DeleteRouteResponse where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteRouteResponse where+  toPath DeleteRouteResponse' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId,+        "/routeresponses/",+        Data.toBS routeResponseId+      ]++instance Data.ToQuery DeleteRouteResponse where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRouteResponseResponse' smart constructor.+data DeleteRouteResponseResponse = DeleteRouteResponseResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRouteResponseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteRouteResponseResponse ::+  DeleteRouteResponseResponse+newDeleteRouteResponseResponse =+  DeleteRouteResponseResponse'++instance Prelude.NFData DeleteRouteResponseResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteRouteSettings.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.DeleteRouteSettings+-- 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 the RouteSettings for a stage.+module Amazonka.ApiGatewayV2.DeleteRouteSettings+  ( -- * Creating a Request+    DeleteRouteSettings (..),+    newDeleteRouteSettings,++    -- * Request Lenses+    deleteRouteSettings_stageName,+    deleteRouteSettings_routeKey,+    deleteRouteSettings_apiId,++    -- * Destructuring the Response+    DeleteRouteSettingsResponse (..),+    newDeleteRouteSettingsResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteRouteSettings' smart constructor.+data DeleteRouteSettings = DeleteRouteSettings'+  { -- | The stage name. Stage names can only contain alphanumeric characters,+    -- hyphens, and underscores. Maximum length is 128 characters.+    stageName :: Prelude.Text,+    -- | The route key.+    routeKey :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRouteSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stageName', 'deleteRouteSettings_stageName' - The stage name. Stage names can only contain alphanumeric characters,+-- hyphens, and underscores. Maximum length is 128 characters.+--+-- 'routeKey', 'deleteRouteSettings_routeKey' - The route key.+--+-- 'apiId', 'deleteRouteSettings_apiId' - The API identifier.+newDeleteRouteSettings ::+  -- | 'stageName'+  Prelude.Text ->+  -- | 'routeKey'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  DeleteRouteSettings+newDeleteRouteSettings pStageName_ pRouteKey_ pApiId_ =+  DeleteRouteSettings'+    { stageName = pStageName_,+      routeKey = pRouteKey_,+      apiId = pApiId_+    }++-- | The stage name. Stage names can only contain alphanumeric characters,+-- hyphens, and underscores. Maximum length is 128 characters.+deleteRouteSettings_stageName :: Lens.Lens' DeleteRouteSettings Prelude.Text+deleteRouteSettings_stageName = Lens.lens (\DeleteRouteSettings' {stageName} -> stageName) (\s@DeleteRouteSettings' {} a -> s {stageName = a} :: DeleteRouteSettings)++-- | The route key.+deleteRouteSettings_routeKey :: Lens.Lens' DeleteRouteSettings Prelude.Text+deleteRouteSettings_routeKey = Lens.lens (\DeleteRouteSettings' {routeKey} -> routeKey) (\s@DeleteRouteSettings' {} a -> s {routeKey = a} :: DeleteRouteSettings)++-- | The API identifier.+deleteRouteSettings_apiId :: Lens.Lens' DeleteRouteSettings Prelude.Text+deleteRouteSettings_apiId = Lens.lens (\DeleteRouteSettings' {apiId} -> apiId) (\s@DeleteRouteSettings' {} a -> s {apiId = a} :: DeleteRouteSettings)++instance Core.AWSRequest DeleteRouteSettings where+  type+    AWSResponse DeleteRouteSettings =+      DeleteRouteSettingsResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteRouteSettingsResponse'++instance Prelude.Hashable DeleteRouteSettings where+  hashWithSalt _salt DeleteRouteSettings' {..} =+    _salt+      `Prelude.hashWithSalt` stageName+      `Prelude.hashWithSalt` routeKey+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData DeleteRouteSettings where+  rnf DeleteRouteSettings' {..} =+    Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf routeKey+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders DeleteRouteSettings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteRouteSettings where+  toPath DeleteRouteSettings' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/stages/",+        Data.toBS stageName,+        "/routesettings/",+        Data.toBS routeKey+      ]++instance Data.ToQuery DeleteRouteSettings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRouteSettingsResponse' smart constructor.+data DeleteRouteSettingsResponse = DeleteRouteSettingsResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRouteSettingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteRouteSettingsResponse ::+  DeleteRouteSettingsResponse+newDeleteRouteSettingsResponse =+  DeleteRouteSettingsResponse'++instance Prelude.NFData DeleteRouteSettingsResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteStage.hs view
@@ -0,0 +1,145 @@+{-# 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.ApiGatewayV2.DeleteStage+-- 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 Stage.+module Amazonka.ApiGatewayV2.DeleteStage+  ( -- * Creating a Request+    DeleteStage (..),+    newDeleteStage,++    -- * Request Lenses+    deleteStage_stageName,+    deleteStage_apiId,++    -- * Destructuring the Response+    DeleteStageResponse (..),+    newDeleteStageResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteStage' smart constructor.+data DeleteStage = DeleteStage'+  { -- | The stage name. Stage names can only contain alphanumeric characters,+    -- hyphens, and underscores. Maximum length is 128 characters.+    stageName :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stageName', 'deleteStage_stageName' - The stage name. Stage names can only contain alphanumeric characters,+-- hyphens, and underscores. Maximum length is 128 characters.+--+-- 'apiId', 'deleteStage_apiId' - The API identifier.+newDeleteStage ::+  -- | 'stageName'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  DeleteStage+newDeleteStage pStageName_ pApiId_ =+  DeleteStage'+    { stageName = pStageName_,+      apiId = pApiId_+    }++-- | The stage name. Stage names can only contain alphanumeric characters,+-- hyphens, and underscores. Maximum length is 128 characters.+deleteStage_stageName :: Lens.Lens' DeleteStage Prelude.Text+deleteStage_stageName = Lens.lens (\DeleteStage' {stageName} -> stageName) (\s@DeleteStage' {} a -> s {stageName = a} :: DeleteStage)++-- | The API identifier.+deleteStage_apiId :: Lens.Lens' DeleteStage Prelude.Text+deleteStage_apiId = Lens.lens (\DeleteStage' {apiId} -> apiId) (\s@DeleteStage' {} a -> s {apiId = a} :: DeleteStage)++instance Core.AWSRequest DeleteStage where+  type AWSResponse DeleteStage = DeleteStageResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteStageResponse'++instance Prelude.Hashable DeleteStage where+  hashWithSalt _salt DeleteStage' {..} =+    _salt+      `Prelude.hashWithSalt` stageName+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData DeleteStage where+  rnf DeleteStage' {..} =+    Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders DeleteStage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteStage where+  toPath DeleteStage' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/stages/",+        Data.toBS stageName+      ]++instance Data.ToQuery DeleteStage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteStageResponse' smart constructor.+data DeleteStageResponse = DeleteStageResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteStageResponse ::+  DeleteStageResponse+newDeleteStageResponse = DeleteStageResponse'++instance Prelude.NFData DeleteStageResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/DeleteVpcLink.hs view
@@ -0,0 +1,144 @@+{-# 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.ApiGatewayV2.DeleteVpcLink+-- 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 VPC link.+module Amazonka.ApiGatewayV2.DeleteVpcLink+  ( -- * Creating a Request+    DeleteVpcLink (..),+    newDeleteVpcLink,++    -- * Request Lenses+    deleteVpcLink_vpcLinkId,++    -- * Destructuring the Response+    DeleteVpcLinkResponse (..),+    newDeleteVpcLinkResponse,++    -- * Response Lenses+    deleteVpcLinkResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newDeleteVpcLink' smart constructor.+data DeleteVpcLink = DeleteVpcLink'+  { -- | The ID of the VPC link.+    vpcLinkId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVpcLink' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vpcLinkId', 'deleteVpcLink_vpcLinkId' - The ID of the VPC link.+newDeleteVpcLink ::+  -- | 'vpcLinkId'+  Prelude.Text ->+  DeleteVpcLink+newDeleteVpcLink pVpcLinkId_ =+  DeleteVpcLink' {vpcLinkId = pVpcLinkId_}++-- | The ID of the VPC link.+deleteVpcLink_vpcLinkId :: Lens.Lens' DeleteVpcLink Prelude.Text+deleteVpcLink_vpcLinkId = Lens.lens (\DeleteVpcLink' {vpcLinkId} -> vpcLinkId) (\s@DeleteVpcLink' {} a -> s {vpcLinkId = a} :: DeleteVpcLink)++instance Core.AWSRequest DeleteVpcLink where+  type+    AWSResponse DeleteVpcLink =+      DeleteVpcLinkResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteVpcLinkResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteVpcLink where+  hashWithSalt _salt DeleteVpcLink' {..} =+    _salt `Prelude.hashWithSalt` vpcLinkId++instance Prelude.NFData DeleteVpcLink where+  rnf DeleteVpcLink' {..} = Prelude.rnf vpcLinkId++instance Data.ToHeaders DeleteVpcLink where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteVpcLink where+  toPath DeleteVpcLink' {..} =+    Prelude.mconcat+      ["/v2/vpclinks/", Data.toBS vpcLinkId]++instance Data.ToQuery DeleteVpcLink where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVpcLinkResponse' smart constructor.+data DeleteVpcLinkResponse = DeleteVpcLinkResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVpcLinkResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteVpcLinkResponse_httpStatus' - The response's http status code.+newDeleteVpcLinkResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteVpcLinkResponse+newDeleteVpcLinkResponse pHttpStatus_ =+  DeleteVpcLinkResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteVpcLinkResponse_httpStatus :: Lens.Lens' DeleteVpcLinkResponse Prelude.Int+deleteVpcLinkResponse_httpStatus = Lens.lens (\DeleteVpcLinkResponse' {httpStatus} -> httpStatus) (\s@DeleteVpcLinkResponse' {} a -> s {httpStatus = a} :: DeleteVpcLinkResponse)++instance Prelude.NFData DeleteVpcLinkResponse where+  rnf DeleteVpcLinkResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/ExportApi.hs view
@@ -0,0 +1,254 @@+{-# 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.ApiGatewayV2.ExportApi+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- -- | Undocumented operation.+module Amazonka.ApiGatewayV2.ExportApi+  ( -- * Creating a Request+    ExportApi (..),+    newExportApi,++    -- * Request Lenses+    exportApi_exportVersion,+    exportApi_includeExtensions,+    exportApi_stageName,+    exportApi_specification,+    exportApi_outputType,+    exportApi_apiId,++    -- * Destructuring the Response+    ExportApiResponse (..),+    newExportApiResponse,++    -- * Response Lenses+    exportApiResponse_body,+    exportApiResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newExportApi' smart constructor.+data ExportApi = ExportApi'+  { -- | The version of the API Gateway export algorithm. API Gateway uses the+    -- latest version by default. Currently, the only supported version is 1.0.+    exportVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether to include+    -- <https://docs.aws.amazon.com//apigateway/latest/developerguide/api-gateway-swagger-extensions.html API Gateway extensions>+    -- in the exported API definition. API Gateway extensions are included by+    -- default.+    includeExtensions :: Prelude.Maybe Prelude.Bool,+    -- | The name of the API stage to export. If you don\'t specify this+    -- property, a representation of the latest API configuration is exported.+    stageName :: Prelude.Maybe Prelude.Text,+    -- | The version of the API specification to use. OAS30, for OpenAPI 3.0, is+    -- the only supported value.+    specification :: Prelude.Text,+    -- | The output type of the exported definition file. Valid values are JSON+    -- and YAML.+    outputType :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportApi' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exportVersion', 'exportApi_exportVersion' - The version of the API Gateway export algorithm. API Gateway uses the+-- latest version by default. Currently, the only supported version is 1.0.+--+-- 'includeExtensions', 'exportApi_includeExtensions' - Specifies whether to include+-- <https://docs.aws.amazon.com//apigateway/latest/developerguide/api-gateway-swagger-extensions.html API Gateway extensions>+-- in the exported API definition. API Gateway extensions are included by+-- default.+--+-- 'stageName', 'exportApi_stageName' - The name of the API stage to export. If you don\'t specify this+-- property, a representation of the latest API configuration is exported.+--+-- 'specification', 'exportApi_specification' - The version of the API specification to use. OAS30, for OpenAPI 3.0, is+-- the only supported value.+--+-- 'outputType', 'exportApi_outputType' - The output type of the exported definition file. Valid values are JSON+-- and YAML.+--+-- 'apiId', 'exportApi_apiId' - The API identifier.+newExportApi ::+  -- | 'specification'+  Prelude.Text ->+  -- | 'outputType'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  ExportApi+newExportApi pSpecification_ pOutputType_ pApiId_ =+  ExportApi'+    { exportVersion = Prelude.Nothing,+      includeExtensions = Prelude.Nothing,+      stageName = Prelude.Nothing,+      specification = pSpecification_,+      outputType = pOutputType_,+      apiId = pApiId_+    }++-- | The version of the API Gateway export algorithm. API Gateway uses the+-- latest version by default. Currently, the only supported version is 1.0.+exportApi_exportVersion :: Lens.Lens' ExportApi (Prelude.Maybe Prelude.Text)+exportApi_exportVersion = Lens.lens (\ExportApi' {exportVersion} -> exportVersion) (\s@ExportApi' {} a -> s {exportVersion = a} :: ExportApi)++-- | Specifies whether to include+-- <https://docs.aws.amazon.com//apigateway/latest/developerguide/api-gateway-swagger-extensions.html API Gateway extensions>+-- in the exported API definition. API Gateway extensions are included by+-- default.+exportApi_includeExtensions :: Lens.Lens' ExportApi (Prelude.Maybe Prelude.Bool)+exportApi_includeExtensions = Lens.lens (\ExportApi' {includeExtensions} -> includeExtensions) (\s@ExportApi' {} a -> s {includeExtensions = a} :: ExportApi)++-- | The name of the API stage to export. If you don\'t specify this+-- property, a representation of the latest API configuration is exported.+exportApi_stageName :: Lens.Lens' ExportApi (Prelude.Maybe Prelude.Text)+exportApi_stageName = Lens.lens (\ExportApi' {stageName} -> stageName) (\s@ExportApi' {} a -> s {stageName = a} :: ExportApi)++-- | The version of the API specification to use. OAS30, for OpenAPI 3.0, is+-- the only supported value.+exportApi_specification :: Lens.Lens' ExportApi Prelude.Text+exportApi_specification = Lens.lens (\ExportApi' {specification} -> specification) (\s@ExportApi' {} a -> s {specification = a} :: ExportApi)++-- | The output type of the exported definition file. Valid values are JSON+-- and YAML.+exportApi_outputType :: Lens.Lens' ExportApi Prelude.Text+exportApi_outputType = Lens.lens (\ExportApi' {outputType} -> outputType) (\s@ExportApi' {} a -> s {outputType = a} :: ExportApi)++-- | The API identifier.+exportApi_apiId :: Lens.Lens' ExportApi Prelude.Text+exportApi_apiId = Lens.lens (\ExportApi' {apiId} -> apiId) (\s@ExportApi' {} a -> s {apiId = a} :: ExportApi)++instance Core.AWSRequest ExportApi where+  type AWSResponse ExportApi = ExportApiResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveBytes+      ( \s h x ->+          ExportApiResponse'+            Prelude.<$> (Prelude.pure (Prelude.Just (Prelude.coerce x)))+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ExportApi where+  hashWithSalt _salt ExportApi' {..} =+    _salt+      `Prelude.hashWithSalt` exportVersion+      `Prelude.hashWithSalt` includeExtensions+      `Prelude.hashWithSalt` stageName+      `Prelude.hashWithSalt` specification+      `Prelude.hashWithSalt` outputType+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData ExportApi where+  rnf ExportApi' {..} =+    Prelude.rnf exportVersion+      `Prelude.seq` Prelude.rnf includeExtensions+      `Prelude.seq` Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf specification+      `Prelude.seq` Prelude.rnf outputType+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders ExportApi where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ExportApi where+  toPath ExportApi' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/exports/",+        Data.toBS specification+      ]++instance Data.ToQuery ExportApi where+  toQuery ExportApi' {..} =+    Prelude.mconcat+      [ "exportVersion" Data.=: exportVersion,+        "includeExtensions" Data.=: includeExtensions,+        "stageName" Data.=: stageName,+        "outputType" Data.=: outputType+      ]++-- | /See:/ 'newExportApiResponse' smart constructor.+data ExportApiResponse = ExportApiResponse'+  { body :: Prelude.Maybe Prelude.ByteString,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportApiResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'body', 'exportApiResponse_body' - Undocumented member.+--+-- 'httpStatus', 'exportApiResponse_httpStatus' - The response's http status code.+newExportApiResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ExportApiResponse+newExportApiResponse pHttpStatus_ =+  ExportApiResponse'+    { body = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+exportApiResponse_body :: Lens.Lens' ExportApiResponse (Prelude.Maybe Prelude.ByteString)+exportApiResponse_body = Lens.lens (\ExportApiResponse' {body} -> body) (\s@ExportApiResponse' {} a -> s {body = a} :: ExportApiResponse)++-- | The response's http status code.+exportApiResponse_httpStatus :: Lens.Lens' ExportApiResponse Prelude.Int+exportApiResponse_httpStatus = Lens.lens (\ExportApiResponse' {httpStatus} -> httpStatus) (\s@ExportApiResponse' {} a -> s {httpStatus = a} :: ExportApiResponse)++instance Prelude.NFData ExportApiResponse where+  rnf ExportApiResponse' {..} =+    Prelude.rnf body+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetApi.hs view
@@ -0,0 +1,382 @@+{-# 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.ApiGatewayV2.GetApi+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an Api resource.+module Amazonka.ApiGatewayV2.GetApi+  ( -- * Creating a Request+    GetApi (..),+    newGetApi,++    -- * Request Lenses+    getApi_apiId,++    -- * Destructuring the Response+    GetApiResponse (..),+    newGetApiResponse,++    -- * Response Lenses+    getApiResponse_apiEndpoint,+    getApiResponse_apiGatewayManaged,+    getApiResponse_apiId,+    getApiResponse_apiKeySelectionExpression,+    getApiResponse_corsConfiguration,+    getApiResponse_createdDate,+    getApiResponse_description,+    getApiResponse_disableExecuteApiEndpoint,+    getApiResponse_disableSchemaValidation,+    getApiResponse_importInfo,+    getApiResponse_name,+    getApiResponse_protocolType,+    getApiResponse_routeSelectionExpression,+    getApiResponse_tags,+    getApiResponse_version,+    getApiResponse_warnings,+    getApiResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetApi' smart constructor.+data GetApi = GetApi'+  { -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApi' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'getApi_apiId' - The API identifier.+newGetApi ::+  -- | 'apiId'+  Prelude.Text ->+  GetApi+newGetApi pApiId_ = GetApi' {apiId = pApiId_}++-- | The API identifier.+getApi_apiId :: Lens.Lens' GetApi Prelude.Text+getApi_apiId = Lens.lens (\GetApi' {apiId} -> apiId) (\s@GetApi' {} a -> s {apiId = a} :: GetApi)++instance Core.AWSRequest GetApi where+  type AWSResponse GetApi = GetApiResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetApiResponse'+            Prelude.<$> (x Data..?> "apiEndpoint")+            Prelude.<*> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "apiId")+            Prelude.<*> (x Data..?> "apiKeySelectionExpression")+            Prelude.<*> (x Data..?> "corsConfiguration")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "disableExecuteApiEndpoint")+            Prelude.<*> (x Data..?> "disableSchemaValidation")+            Prelude.<*> (x Data..?> "importInfo" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "protocolType")+            Prelude.<*> (x Data..?> "routeSelectionExpression")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (x Data..?> "warnings" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetApi where+  hashWithSalt _salt GetApi' {..} =+    _salt `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetApi where+  rnf GetApi' {..} = Prelude.rnf apiId++instance Data.ToHeaders GetApi where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetApi where+  toPath GetApi' {..} =+    Prelude.mconcat ["/v2/apis/", Data.toBS apiId]++instance Data.ToQuery GetApi where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetApiResponse' smart constructor.+data GetApiResponse = GetApiResponse'+  { -- | The URI of the API, of the form+    -- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+    -- appended to this URI to form a complete path to a deployed API stage.+    apiEndpoint :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether an API is managed by API Gateway. You can\'t update or+    -- delete a managed API by using API Gateway. A managed API can be deleted+    -- only through the tooling or service that created it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The API ID.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | An API key selection expression. Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+    apiKeySelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A CORS configuration. Supported only for HTTP APIs.+    corsConfiguration :: Prelude.Maybe Cors,+    -- | The timestamp when the API was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The description of the API.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether clients can invoke your API by using the default+    -- execute-api endpoint. By default, clients can invoke your API with the+    -- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+    -- To require that clients use a custom domain name to invoke your API,+    -- disable the default endpoint.+    disableExecuteApiEndpoint :: Prelude.Maybe Prelude.Bool,+    -- | Avoid validating models when creating a deployment. Supported only for+    -- WebSocket APIs.+    disableSchemaValidation :: Prelude.Maybe Prelude.Bool,+    -- | The validation information during API import. This may include+    -- particular properties of your OpenAPI definition which are ignored+    -- during import. Supported only for HTTP APIs.+    importInfo :: Prelude.Maybe [Prelude.Text],+    -- | The name of the API.+    name :: Prelude.Maybe Prelude.Text,+    -- | The API protocol.+    protocolType :: Prelude.Maybe ProtocolType,+    -- | The route selection expression for the API. For HTTP APIs, the+    -- routeSelectionExpression must be ${request.method} ${request.path}. If+    -- not provided, this will be the default for HTTP APIs. This property is+    -- required for WebSocket APIs.+    routeSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A collection of tags associated with the API.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A version identifier for the API.+    version :: Prelude.Maybe Prelude.Text,+    -- | The warning messages reported when failonwarnings is turned on during+    -- API import.+    warnings :: Prelude.Maybe [Prelude.Text],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApiResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiEndpoint', 'getApiResponse_apiEndpoint' - The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+--+-- 'apiGatewayManaged', 'getApiResponse_apiGatewayManaged' - Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+--+-- 'apiId', 'getApiResponse_apiId' - The API ID.+--+-- 'apiKeySelectionExpression', 'getApiResponse_apiKeySelectionExpression' - An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+--+-- 'corsConfiguration', 'getApiResponse_corsConfiguration' - A CORS configuration. Supported only for HTTP APIs.+--+-- 'createdDate', 'getApiResponse_createdDate' - The timestamp when the API was created.+--+-- 'description', 'getApiResponse_description' - The description of the API.+--+-- 'disableExecuteApiEndpoint', 'getApiResponse_disableExecuteApiEndpoint' - Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+--+-- 'disableSchemaValidation', 'getApiResponse_disableSchemaValidation' - Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+--+-- 'importInfo', 'getApiResponse_importInfo' - The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+--+-- 'name', 'getApiResponse_name' - The name of the API.+--+-- 'protocolType', 'getApiResponse_protocolType' - The API protocol.+--+-- 'routeSelectionExpression', 'getApiResponse_routeSelectionExpression' - The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+--+-- 'tags', 'getApiResponse_tags' - A collection of tags associated with the API.+--+-- 'version', 'getApiResponse_version' - A version identifier for the API.+--+-- 'warnings', 'getApiResponse_warnings' - The warning messages reported when failonwarnings is turned on during+-- API import.+--+-- 'httpStatus', 'getApiResponse_httpStatus' - The response's http status code.+newGetApiResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetApiResponse+newGetApiResponse pHttpStatus_ =+  GetApiResponse'+    { apiEndpoint = Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      apiId = Prelude.Nothing,+      apiKeySelectionExpression = Prelude.Nothing,+      corsConfiguration = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      disableExecuteApiEndpoint = Prelude.Nothing,+      disableSchemaValidation = Prelude.Nothing,+      importInfo = Prelude.Nothing,+      name = Prelude.Nothing,+      protocolType = Prelude.Nothing,+      routeSelectionExpression = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      warnings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+getApiResponse_apiEndpoint :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Text)+getApiResponse_apiEndpoint = Lens.lens (\GetApiResponse' {apiEndpoint} -> apiEndpoint) (\s@GetApiResponse' {} a -> s {apiEndpoint = a} :: GetApiResponse)++-- | Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+getApiResponse_apiGatewayManaged :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Bool)+getApiResponse_apiGatewayManaged = Lens.lens (\GetApiResponse' {apiGatewayManaged} -> apiGatewayManaged) (\s@GetApiResponse' {} a -> s {apiGatewayManaged = a} :: GetApiResponse)++-- | The API ID.+getApiResponse_apiId :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Text)+getApiResponse_apiId = Lens.lens (\GetApiResponse' {apiId} -> apiId) (\s@GetApiResponse' {} a -> s {apiId = a} :: GetApiResponse)++-- | An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+getApiResponse_apiKeySelectionExpression :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Text)+getApiResponse_apiKeySelectionExpression = Lens.lens (\GetApiResponse' {apiKeySelectionExpression} -> apiKeySelectionExpression) (\s@GetApiResponse' {} a -> s {apiKeySelectionExpression = a} :: GetApiResponse)++-- | A CORS configuration. Supported only for HTTP APIs.+getApiResponse_corsConfiguration :: Lens.Lens' GetApiResponse (Prelude.Maybe Cors)+getApiResponse_corsConfiguration = Lens.lens (\GetApiResponse' {corsConfiguration} -> corsConfiguration) (\s@GetApiResponse' {} a -> s {corsConfiguration = a} :: GetApiResponse)++-- | The timestamp when the API was created.+getApiResponse_createdDate :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.UTCTime)+getApiResponse_createdDate = Lens.lens (\GetApiResponse' {createdDate} -> createdDate) (\s@GetApiResponse' {} a -> s {createdDate = a} :: GetApiResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the API.+getApiResponse_description :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Text)+getApiResponse_description = Lens.lens (\GetApiResponse' {description} -> description) (\s@GetApiResponse' {} a -> s {description = a} :: GetApiResponse)++-- | Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+getApiResponse_disableExecuteApiEndpoint :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Bool)+getApiResponse_disableExecuteApiEndpoint = Lens.lens (\GetApiResponse' {disableExecuteApiEndpoint} -> disableExecuteApiEndpoint) (\s@GetApiResponse' {} a -> s {disableExecuteApiEndpoint = a} :: GetApiResponse)++-- | Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+getApiResponse_disableSchemaValidation :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Bool)+getApiResponse_disableSchemaValidation = Lens.lens (\GetApiResponse' {disableSchemaValidation} -> disableSchemaValidation) (\s@GetApiResponse' {} a -> s {disableSchemaValidation = a} :: GetApiResponse)++-- | The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+getApiResponse_importInfo :: Lens.Lens' GetApiResponse (Prelude.Maybe [Prelude.Text])+getApiResponse_importInfo = Lens.lens (\GetApiResponse' {importInfo} -> importInfo) (\s@GetApiResponse' {} a -> s {importInfo = a} :: GetApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the API.+getApiResponse_name :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Text)+getApiResponse_name = Lens.lens (\GetApiResponse' {name} -> name) (\s@GetApiResponse' {} a -> s {name = a} :: GetApiResponse)++-- | The API protocol.+getApiResponse_protocolType :: Lens.Lens' GetApiResponse (Prelude.Maybe ProtocolType)+getApiResponse_protocolType = Lens.lens (\GetApiResponse' {protocolType} -> protocolType) (\s@GetApiResponse' {} a -> s {protocolType = a} :: GetApiResponse)++-- | The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+getApiResponse_routeSelectionExpression :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Text)+getApiResponse_routeSelectionExpression = Lens.lens (\GetApiResponse' {routeSelectionExpression} -> routeSelectionExpression) (\s@GetApiResponse' {} a -> s {routeSelectionExpression = a} :: GetApiResponse)++-- | A collection of tags associated with the API.+getApiResponse_tags :: Lens.Lens' GetApiResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getApiResponse_tags = Lens.lens (\GetApiResponse' {tags} -> tags) (\s@GetApiResponse' {} a -> s {tags = a} :: GetApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | A version identifier for the API.+getApiResponse_version :: Lens.Lens' GetApiResponse (Prelude.Maybe Prelude.Text)+getApiResponse_version = Lens.lens (\GetApiResponse' {version} -> version) (\s@GetApiResponse' {} a -> s {version = a} :: GetApiResponse)++-- | The warning messages reported when failonwarnings is turned on during+-- API import.+getApiResponse_warnings :: Lens.Lens' GetApiResponse (Prelude.Maybe [Prelude.Text])+getApiResponse_warnings = Lens.lens (\GetApiResponse' {warnings} -> warnings) (\s@GetApiResponse' {} a -> s {warnings = a} :: GetApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getApiResponse_httpStatus :: Lens.Lens' GetApiResponse Prelude.Int+getApiResponse_httpStatus = Lens.lens (\GetApiResponse' {httpStatus} -> httpStatus) (\s@GetApiResponse' {} a -> s {httpStatus = a} :: GetApiResponse)++instance Prelude.NFData GetApiResponse where+  rnf GetApiResponse' {..} =+    Prelude.rnf apiEndpoint+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiKeySelectionExpression+      `Prelude.seq` Prelude.rnf corsConfiguration+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf disableExecuteApiEndpoint+      `Prelude.seq` Prelude.rnf disableSchemaValidation+      `Prelude.seq` Prelude.rnf importInfo+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf routeSelectionExpression+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf warnings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetApiMapping.hs view
@@ -0,0 +1,216 @@+{-# 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.ApiGatewayV2.GetApiMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an API mapping.+module Amazonka.ApiGatewayV2.GetApiMapping+  ( -- * Creating a Request+    GetApiMapping (..),+    newGetApiMapping,++    -- * Request Lenses+    getApiMapping_apiMappingId,+    getApiMapping_domainName,++    -- * Destructuring the Response+    GetApiMappingResponse (..),+    newGetApiMappingResponse,++    -- * Response Lenses+    getApiMappingResponse_apiId,+    getApiMappingResponse_apiMappingId,+    getApiMappingResponse_apiMappingKey,+    getApiMappingResponse_stage,+    getApiMappingResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetApiMapping' smart constructor.+data GetApiMapping = GetApiMapping'+  { -- | The API mapping identifier.+    apiMappingId :: Prelude.Text,+    -- | The domain name.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApiMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingId', 'getApiMapping_apiMappingId' - The API mapping identifier.+--+-- 'domainName', 'getApiMapping_domainName' - The domain name.+newGetApiMapping ::+  -- | 'apiMappingId'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  GetApiMapping+newGetApiMapping pApiMappingId_ pDomainName_ =+  GetApiMapping'+    { apiMappingId = pApiMappingId_,+      domainName = pDomainName_+    }++-- | The API mapping identifier.+getApiMapping_apiMappingId :: Lens.Lens' GetApiMapping Prelude.Text+getApiMapping_apiMappingId = Lens.lens (\GetApiMapping' {apiMappingId} -> apiMappingId) (\s@GetApiMapping' {} a -> s {apiMappingId = a} :: GetApiMapping)++-- | The domain name.+getApiMapping_domainName :: Lens.Lens' GetApiMapping Prelude.Text+getApiMapping_domainName = Lens.lens (\GetApiMapping' {domainName} -> domainName) (\s@GetApiMapping' {} a -> s {domainName = a} :: GetApiMapping)++instance Core.AWSRequest GetApiMapping where+  type+    AWSResponse GetApiMapping =+      GetApiMappingResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetApiMappingResponse'+            Prelude.<$> (x Data..?> "apiId")+            Prelude.<*> (x Data..?> "apiMappingId")+            Prelude.<*> (x Data..?> "apiMappingKey")+            Prelude.<*> (x Data..?> "stage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetApiMapping where+  hashWithSalt _salt GetApiMapping' {..} =+    _salt+      `Prelude.hashWithSalt` apiMappingId+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetApiMapping where+  rnf GetApiMapping' {..} =+    Prelude.rnf apiMappingId+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders GetApiMapping where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetApiMapping where+  toPath GetApiMapping' {..} =+    Prelude.mconcat+      [ "/v2/domainnames/",+        Data.toBS domainName,+        "/apimappings/",+        Data.toBS apiMappingId+      ]++instance Data.ToQuery GetApiMapping where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetApiMappingResponse' smart constructor.+data GetApiMappingResponse = GetApiMappingResponse'+  { -- | The API identifier.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | The API mapping identifier.+    apiMappingId :: Prelude.Maybe Prelude.Text,+    -- | The API mapping key.+    apiMappingKey :: Prelude.Maybe Prelude.Text,+    -- | The API stage.+    stage :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApiMappingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'getApiMappingResponse_apiId' - The API identifier.+--+-- 'apiMappingId', 'getApiMappingResponse_apiMappingId' - The API mapping identifier.+--+-- 'apiMappingKey', 'getApiMappingResponse_apiMappingKey' - The API mapping key.+--+-- 'stage', 'getApiMappingResponse_stage' - The API stage.+--+-- 'httpStatus', 'getApiMappingResponse_httpStatus' - The response's http status code.+newGetApiMappingResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetApiMappingResponse+newGetApiMappingResponse pHttpStatus_ =+  GetApiMappingResponse'+    { apiId = Prelude.Nothing,+      apiMappingId = Prelude.Nothing,+      apiMappingKey = Prelude.Nothing,+      stage = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The API identifier.+getApiMappingResponse_apiId :: Lens.Lens' GetApiMappingResponse (Prelude.Maybe Prelude.Text)+getApiMappingResponse_apiId = Lens.lens (\GetApiMappingResponse' {apiId} -> apiId) (\s@GetApiMappingResponse' {} a -> s {apiId = a} :: GetApiMappingResponse)++-- | The API mapping identifier.+getApiMappingResponse_apiMappingId :: Lens.Lens' GetApiMappingResponse (Prelude.Maybe Prelude.Text)+getApiMappingResponse_apiMappingId = Lens.lens (\GetApiMappingResponse' {apiMappingId} -> apiMappingId) (\s@GetApiMappingResponse' {} a -> s {apiMappingId = a} :: GetApiMappingResponse)++-- | The API mapping key.+getApiMappingResponse_apiMappingKey :: Lens.Lens' GetApiMappingResponse (Prelude.Maybe Prelude.Text)+getApiMappingResponse_apiMappingKey = Lens.lens (\GetApiMappingResponse' {apiMappingKey} -> apiMappingKey) (\s@GetApiMappingResponse' {} a -> s {apiMappingKey = a} :: GetApiMappingResponse)++-- | The API stage.+getApiMappingResponse_stage :: Lens.Lens' GetApiMappingResponse (Prelude.Maybe Prelude.Text)+getApiMappingResponse_stage = Lens.lens (\GetApiMappingResponse' {stage} -> stage) (\s@GetApiMappingResponse' {} a -> s {stage = a} :: GetApiMappingResponse)++-- | The response's http status code.+getApiMappingResponse_httpStatus :: Lens.Lens' GetApiMappingResponse Prelude.Int+getApiMappingResponse_httpStatus = Lens.lens (\GetApiMappingResponse' {httpStatus} -> httpStatus) (\s@GetApiMappingResponse' {} a -> s {httpStatus = a} :: GetApiMappingResponse)++instance Prelude.NFData GetApiMappingResponse where+  rnf GetApiMappingResponse' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiMappingId+      `Prelude.seq` Prelude.rnf apiMappingKey+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetApiMappings.hs view
@@ -0,0 +1,211 @@+{-# 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.ApiGatewayV2.GetApiMappings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets API mappings.+module Amazonka.ApiGatewayV2.GetApiMappings+  ( -- * Creating a Request+    GetApiMappings (..),+    newGetApiMappings,++    -- * Request Lenses+    getApiMappings_maxResults,+    getApiMappings_nextToken,+    getApiMappings_domainName,++    -- * Destructuring the Response+    GetApiMappingsResponse (..),+    newGetApiMappingsResponse,++    -- * Response Lenses+    getApiMappingsResponse_items,+    getApiMappingsResponse_nextToken,+    getApiMappingsResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetApiMappings' smart constructor.+data GetApiMappings = GetApiMappings'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The domain name.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApiMappings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getApiMappings_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getApiMappings_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'domainName', 'getApiMappings_domainName' - The domain name.+newGetApiMappings ::+  -- | 'domainName'+  Prelude.Text ->+  GetApiMappings+newGetApiMappings pDomainName_ =+  GetApiMappings'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | The maximum number of elements to be returned for this resource.+getApiMappings_maxResults :: Lens.Lens' GetApiMappings (Prelude.Maybe Prelude.Text)+getApiMappings_maxResults = Lens.lens (\GetApiMappings' {maxResults} -> maxResults) (\s@GetApiMappings' {} a -> s {maxResults = a} :: GetApiMappings)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getApiMappings_nextToken :: Lens.Lens' GetApiMappings (Prelude.Maybe Prelude.Text)+getApiMappings_nextToken = Lens.lens (\GetApiMappings' {nextToken} -> nextToken) (\s@GetApiMappings' {} a -> s {nextToken = a} :: GetApiMappings)++-- | The domain name.+getApiMappings_domainName :: Lens.Lens' GetApiMappings Prelude.Text+getApiMappings_domainName = Lens.lens (\GetApiMappings' {domainName} -> domainName) (\s@GetApiMappings' {} a -> s {domainName = a} :: GetApiMappings)++instance Core.AWSRequest GetApiMappings where+  type+    AWSResponse GetApiMappings =+      GetApiMappingsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetApiMappingsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetApiMappings where+  hashWithSalt _salt GetApiMappings' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetApiMappings where+  rnf GetApiMappings' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders GetApiMappings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetApiMappings where+  toPath GetApiMappings' {..} =+    Prelude.mconcat+      [ "/v2/domainnames/",+        Data.toBS domainName,+        "/apimappings"+      ]++instance Data.ToQuery GetApiMappings where+  toQuery GetApiMappings' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetApiMappingsResponse' smart constructor.+data GetApiMappingsResponse = GetApiMappingsResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [ApiMapping],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApiMappingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getApiMappingsResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getApiMappingsResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getApiMappingsResponse_httpStatus' - The response's http status code.+newGetApiMappingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetApiMappingsResponse+newGetApiMappingsResponse pHttpStatus_ =+  GetApiMappingsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getApiMappingsResponse_items :: Lens.Lens' GetApiMappingsResponse (Prelude.Maybe [ApiMapping])+getApiMappingsResponse_items = Lens.lens (\GetApiMappingsResponse' {items} -> items) (\s@GetApiMappingsResponse' {} a -> s {items = a} :: GetApiMappingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getApiMappingsResponse_nextToken :: Lens.Lens' GetApiMappingsResponse (Prelude.Maybe Prelude.Text)+getApiMappingsResponse_nextToken = Lens.lens (\GetApiMappingsResponse' {nextToken} -> nextToken) (\s@GetApiMappingsResponse' {} a -> s {nextToken = a} :: GetApiMappingsResponse)++-- | The response's http status code.+getApiMappingsResponse_httpStatus :: Lens.Lens' GetApiMappingsResponse Prelude.Int+getApiMappingsResponse_httpStatus = Lens.lens (\GetApiMappingsResponse' {httpStatus} -> httpStatus) (\s@GetApiMappingsResponse' {} a -> s {httpStatus = a} :: GetApiMappingsResponse)++instance Prelude.NFData GetApiMappingsResponse where+  rnf GetApiMappingsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetApis.hs view
@@ -0,0 +1,214 @@+{-# 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.ApiGatewayV2.GetApis+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a collection of Api resources.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetApis+  ( -- * Creating a Request+    GetApis (..),+    newGetApis,++    -- * Request Lenses+    getApis_maxResults,+    getApis_nextToken,++    -- * Destructuring the Response+    GetApisResponse (..),+    newGetApisResponse,++    -- * Response Lenses+    getApisResponse_items,+    getApisResponse_nextToken,+    getApisResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetApis' smart constructor.+data GetApis = GetApis'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getApis_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getApis_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+newGetApis ::+  GetApis+newGetApis =+  GetApis'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of elements to be returned for this resource.+getApis_maxResults :: Lens.Lens' GetApis (Prelude.Maybe Prelude.Text)+getApis_maxResults = Lens.lens (\GetApis' {maxResults} -> maxResults) (\s@GetApis' {} a -> s {maxResults = a} :: GetApis)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getApis_nextToken :: Lens.Lens' GetApis (Prelude.Maybe Prelude.Text)+getApis_nextToken = Lens.lens (\GetApis' {nextToken} -> nextToken) (\s@GetApis' {} a -> s {nextToken = a} :: GetApis)++instance Core.AWSPager GetApis where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getApisResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getApisResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getApis_nextToken+          Lens..~ rs+          Lens.^? getApisResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetApis where+  type AWSResponse GetApis = GetApisResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetApisResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetApis where+  hashWithSalt _salt GetApis' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetApis where+  rnf GetApis' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetApis where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetApis where+  toPath = Prelude.const "/v2/apis"++instance Data.ToQuery GetApis where+  toQuery GetApis' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetApisResponse' smart constructor.+data GetApisResponse = GetApisResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Api],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getApisResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getApisResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getApisResponse_httpStatus' - The response's http status code.+newGetApisResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetApisResponse+newGetApisResponse pHttpStatus_ =+  GetApisResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getApisResponse_items :: Lens.Lens' GetApisResponse (Prelude.Maybe [Api])+getApisResponse_items = Lens.lens (\GetApisResponse' {items} -> items) (\s@GetApisResponse' {} a -> s {items = a} :: GetApisResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getApisResponse_nextToken :: Lens.Lens' GetApisResponse (Prelude.Maybe Prelude.Text)+getApisResponse_nextToken = Lens.lens (\GetApisResponse' {nextToken} -> nextToken) (\s@GetApisResponse' {} a -> s {nextToken = a} :: GetApisResponse)++-- | The response's http status code.+getApisResponse_httpStatus :: Lens.Lens' GetApisResponse Prelude.Int+getApisResponse_httpStatus = Lens.lens (\GetApisResponse' {httpStatus} -> httpStatus) (\s@GetApisResponse' {} a -> s {httpStatus = a} :: GetApisResponse)++instance Prelude.NFData GetApisResponse where+  rnf GetApisResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetAuthorizer.hs view
@@ -0,0 +1,448 @@+{-# 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.ApiGatewayV2.GetAuthorizer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an Authorizer.+module Amazonka.ApiGatewayV2.GetAuthorizer+  ( -- * Creating a Request+    GetAuthorizer (..),+    newGetAuthorizer,++    -- * Request Lenses+    getAuthorizer_authorizerId,+    getAuthorizer_apiId,++    -- * Destructuring the Response+    GetAuthorizerResponse (..),+    newGetAuthorizerResponse,++    -- * Response Lenses+    getAuthorizerResponse_authorizerCredentialsArn,+    getAuthorizerResponse_authorizerId,+    getAuthorizerResponse_authorizerPayloadFormatVersion,+    getAuthorizerResponse_authorizerResultTtlInSeconds,+    getAuthorizerResponse_authorizerType,+    getAuthorizerResponse_authorizerUri,+    getAuthorizerResponse_enableSimpleResponses,+    getAuthorizerResponse_identitySource,+    getAuthorizerResponse_identityValidationExpression,+    getAuthorizerResponse_jwtConfiguration,+    getAuthorizerResponse_name,+    getAuthorizerResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetAuthorizer' smart constructor.+data GetAuthorizer = GetAuthorizer'+  { -- | The authorizer identifier.+    authorizerId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAuthorizer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorizerId', 'getAuthorizer_authorizerId' - The authorizer identifier.+--+-- 'apiId', 'getAuthorizer_apiId' - The API identifier.+newGetAuthorizer ::+  -- | 'authorizerId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  GetAuthorizer+newGetAuthorizer pAuthorizerId_ pApiId_ =+  GetAuthorizer'+    { authorizerId = pAuthorizerId_,+      apiId = pApiId_+    }++-- | The authorizer identifier.+getAuthorizer_authorizerId :: Lens.Lens' GetAuthorizer Prelude.Text+getAuthorizer_authorizerId = Lens.lens (\GetAuthorizer' {authorizerId} -> authorizerId) (\s@GetAuthorizer' {} a -> s {authorizerId = a} :: GetAuthorizer)++-- | The API identifier.+getAuthorizer_apiId :: Lens.Lens' GetAuthorizer Prelude.Text+getAuthorizer_apiId = Lens.lens (\GetAuthorizer' {apiId} -> apiId) (\s@GetAuthorizer' {} a -> s {apiId = a} :: GetAuthorizer)++instance Core.AWSRequest GetAuthorizer where+  type+    AWSResponse GetAuthorizer =+      GetAuthorizerResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAuthorizerResponse'+            Prelude.<$> (x Data..?> "authorizerCredentialsArn")+            Prelude.<*> (x Data..?> "authorizerId")+            Prelude.<*> (x Data..?> "authorizerPayloadFormatVersion")+            Prelude.<*> (x Data..?> "authorizerResultTtlInSeconds")+            Prelude.<*> (x Data..?> "authorizerType")+            Prelude.<*> (x Data..?> "authorizerUri")+            Prelude.<*> (x Data..?> "enableSimpleResponses")+            Prelude.<*> (x Data..?> "identitySource" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "identityValidationExpression")+            Prelude.<*> (x Data..?> "jwtConfiguration")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAuthorizer where+  hashWithSalt _salt GetAuthorizer' {..} =+    _salt+      `Prelude.hashWithSalt` authorizerId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetAuthorizer where+  rnf GetAuthorizer' {..} =+    Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetAuthorizer where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetAuthorizer where+  toPath GetAuthorizer' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/authorizers/",+        Data.toBS authorizerId+      ]++instance Data.ToQuery GetAuthorizer where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAuthorizerResponse' smart constructor.+data GetAuthorizerResponse = GetAuthorizerResponse'+  { -- | Specifies the required credentials as an IAM role for API Gateway to+    -- invoke the authorizer. To specify an IAM role for API Gateway to assume,+    -- use the role\'s Amazon Resource Name (ARN). To use resource-based+    -- permissions on the Lambda function, don\'t specify this parameter.+    -- Supported only for REQUEST authorizers.+    authorizerCredentialsArn :: Prelude.Maybe Prelude.Text,+    -- | The authorizer identifier.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the format of the payload sent to an HTTP API Lambda+    -- authorizer. Required for HTTP API Lambda authorizers. Supported values+    -- are 1.0 and 2.0. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    authorizerPayloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | The time to live (TTL) for cached authorizer results, in seconds. If it+    -- equals 0, authorization caching is disabled. If it is greater than 0,+    -- API Gateway caches authorizer responses. The maximum value is 3600, or 1+    -- hour. Supported only for HTTP API Lambda authorizers.+    authorizerResultTtlInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The authorizer type. Specify REQUEST for a Lambda function using+    -- incoming request parameters. Specify JWT to use JSON Web Tokens+    -- (supported only for HTTP APIs).+    authorizerType :: Prelude.Maybe AuthorizerType,+    -- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+    -- authorizers, this must be a well-formed Lambda function URI, for+    -- example,+    -- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+    -- In general, the URI has this form:+    -- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+    -- is the same as the region hosting the Lambda function, path indicates+    -- that the remaining substring in the URI should be treated as the path to+    -- the resource, including the initial \/. For Lambda functions, this is+    -- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+    -- Supported only for REQUEST authorizers.+    authorizerUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether a Lambda authorizer returns a response in a simple+    -- format. If enabled, the Lambda authorizer can return a boolean value+    -- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+    -- see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+    enableSimpleResponses :: Prelude.Maybe Prelude.Bool,+    -- | The identity source for which authorization is requested.+    --+    -- For a REQUEST authorizer, this is optional. The value is a set of one or+    -- more mapping expressions of the specified request parameters. The+    -- identity source can be headers, query string parameters, stage+    -- variables, and context parameters. For example, if an Auth header and a+    -- Name query string parameter are defined as identity sources, this value+    -- is route.request.header.Auth, route.request.querystring.Name for+    -- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+    -- \$, for example, $request.header.Auth, $request.querystring.Name. These+    -- parameters are used to perform runtime validation for Lambda-based+    -- authorizers by verifying all of the identity-related request parameters+    -- are present in the request, not null, and non-empty. Only when this is+    -- true does the authorizer invoke the authorizer Lambda function.+    -- Otherwise, it returns a 401 Unauthorized response without calling the+    -- Lambda function. For HTTP APIs, identity sources are also used as the+    -- cache key when caching is enabled. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    --+    -- For JWT, a single entry that specifies where to extract the JSON Web+    -- Token (JWT) from inbound requests. Currently only header-based and query+    -- parameter-based selections are supported, for example+    -- \$request.header.Authorization.+    identitySource :: Prelude.Maybe [Prelude.Text],+    -- | The validation expression does not apply to the REQUEST authorizer.+    identityValidationExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the configuration of a JWT authorizer. Required for the JWT+    -- authorizer type. Supported only for HTTP APIs.+    jwtConfiguration :: Prelude.Maybe JWTConfiguration,+    -- | The name of the authorizer.+    name :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAuthorizerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorizerCredentialsArn', 'getAuthorizerResponse_authorizerCredentialsArn' - Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+--+-- 'authorizerId', 'getAuthorizerResponse_authorizerId' - The authorizer identifier.+--+-- 'authorizerPayloadFormatVersion', 'getAuthorizerResponse_authorizerPayloadFormatVersion' - Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- 'authorizerResultTtlInSeconds', 'getAuthorizerResponse_authorizerResultTtlInSeconds' - The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+--+-- 'authorizerType', 'getAuthorizerResponse_authorizerType' - The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+--+-- 'authorizerUri', 'getAuthorizerResponse_authorizerUri' - The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+--+-- 'enableSimpleResponses', 'getAuthorizerResponse_enableSimpleResponses' - Specifies whether a Lambda authorizer returns a response in a simple+-- format. If enabled, the Lambda authorizer can return a boolean value+-- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+-- see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+--+-- 'identitySource', 'getAuthorizerResponse_identitySource' - The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+--+-- 'identityValidationExpression', 'getAuthorizerResponse_identityValidationExpression' - The validation expression does not apply to the REQUEST authorizer.+--+-- 'jwtConfiguration', 'getAuthorizerResponse_jwtConfiguration' - Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+--+-- 'name', 'getAuthorizerResponse_name' - The name of the authorizer.+--+-- 'httpStatus', 'getAuthorizerResponse_httpStatus' - The response's http status code.+newGetAuthorizerResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAuthorizerResponse+newGetAuthorizerResponse pHttpStatus_ =+  GetAuthorizerResponse'+    { authorizerCredentialsArn =+        Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      authorizerPayloadFormatVersion = Prelude.Nothing,+      authorizerResultTtlInSeconds = Prelude.Nothing,+      authorizerType = Prelude.Nothing,+      authorizerUri = Prelude.Nothing,+      enableSimpleResponses = Prelude.Nothing,+      identitySource = Prelude.Nothing,+      identityValidationExpression = Prelude.Nothing,+      jwtConfiguration = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+getAuthorizerResponse_authorizerCredentialsArn :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe Prelude.Text)+getAuthorizerResponse_authorizerCredentialsArn = Lens.lens (\GetAuthorizerResponse' {authorizerCredentialsArn} -> authorizerCredentialsArn) (\s@GetAuthorizerResponse' {} a -> s {authorizerCredentialsArn = a} :: GetAuthorizerResponse)++-- | The authorizer identifier.+getAuthorizerResponse_authorizerId :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe Prelude.Text)+getAuthorizerResponse_authorizerId = Lens.lens (\GetAuthorizerResponse' {authorizerId} -> authorizerId) (\s@GetAuthorizerResponse' {} a -> s {authorizerId = a} :: GetAuthorizerResponse)++-- | Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+getAuthorizerResponse_authorizerPayloadFormatVersion :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe Prelude.Text)+getAuthorizerResponse_authorizerPayloadFormatVersion = Lens.lens (\GetAuthorizerResponse' {authorizerPayloadFormatVersion} -> authorizerPayloadFormatVersion) (\s@GetAuthorizerResponse' {} a -> s {authorizerPayloadFormatVersion = a} :: GetAuthorizerResponse)++-- | The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+getAuthorizerResponse_authorizerResultTtlInSeconds :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe Prelude.Natural)+getAuthorizerResponse_authorizerResultTtlInSeconds = Lens.lens (\GetAuthorizerResponse' {authorizerResultTtlInSeconds} -> authorizerResultTtlInSeconds) (\s@GetAuthorizerResponse' {} a -> s {authorizerResultTtlInSeconds = a} :: GetAuthorizerResponse)++-- | The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+getAuthorizerResponse_authorizerType :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe AuthorizerType)+getAuthorizerResponse_authorizerType = Lens.lens (\GetAuthorizerResponse' {authorizerType} -> authorizerType) (\s@GetAuthorizerResponse' {} a -> s {authorizerType = a} :: GetAuthorizerResponse)++-- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+getAuthorizerResponse_authorizerUri :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe Prelude.Text)+getAuthorizerResponse_authorizerUri = Lens.lens (\GetAuthorizerResponse' {authorizerUri} -> authorizerUri) (\s@GetAuthorizerResponse' {} a -> s {authorizerUri = a} :: GetAuthorizerResponse)++-- | Specifies whether a Lambda authorizer returns a response in a simple+-- format. If enabled, the Lambda authorizer can return a boolean value+-- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+-- see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+getAuthorizerResponse_enableSimpleResponses :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe Prelude.Bool)+getAuthorizerResponse_enableSimpleResponses = Lens.lens (\GetAuthorizerResponse' {enableSimpleResponses} -> enableSimpleResponses) (\s@GetAuthorizerResponse' {} a -> s {enableSimpleResponses = a} :: GetAuthorizerResponse)++-- | The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+getAuthorizerResponse_identitySource :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe [Prelude.Text])+getAuthorizerResponse_identitySource = Lens.lens (\GetAuthorizerResponse' {identitySource} -> identitySource) (\s@GetAuthorizerResponse' {} a -> s {identitySource = a} :: GetAuthorizerResponse) Prelude.. Lens.mapping Lens.coerced++-- | The validation expression does not apply to the REQUEST authorizer.+getAuthorizerResponse_identityValidationExpression :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe Prelude.Text)+getAuthorizerResponse_identityValidationExpression = Lens.lens (\GetAuthorizerResponse' {identityValidationExpression} -> identityValidationExpression) (\s@GetAuthorizerResponse' {} a -> s {identityValidationExpression = a} :: GetAuthorizerResponse)++-- | Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+getAuthorizerResponse_jwtConfiguration :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe JWTConfiguration)+getAuthorizerResponse_jwtConfiguration = Lens.lens (\GetAuthorizerResponse' {jwtConfiguration} -> jwtConfiguration) (\s@GetAuthorizerResponse' {} a -> s {jwtConfiguration = a} :: GetAuthorizerResponse)++-- | The name of the authorizer.+getAuthorizerResponse_name :: Lens.Lens' GetAuthorizerResponse (Prelude.Maybe Prelude.Text)+getAuthorizerResponse_name = Lens.lens (\GetAuthorizerResponse' {name} -> name) (\s@GetAuthorizerResponse' {} a -> s {name = a} :: GetAuthorizerResponse)++-- | The response's http status code.+getAuthorizerResponse_httpStatus :: Lens.Lens' GetAuthorizerResponse Prelude.Int+getAuthorizerResponse_httpStatus = Lens.lens (\GetAuthorizerResponse' {httpStatus} -> httpStatus) (\s@GetAuthorizerResponse' {} a -> s {httpStatus = a} :: GetAuthorizerResponse)++instance Prelude.NFData GetAuthorizerResponse where+  rnf GetAuthorizerResponse' {..} =+    Prelude.rnf authorizerCredentialsArn+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf authorizerPayloadFormatVersion+      `Prelude.seq` Prelude.rnf authorizerResultTtlInSeconds+      `Prelude.seq` Prelude.rnf authorizerType+      `Prelude.seq` Prelude.rnf authorizerUri+      `Prelude.seq` Prelude.rnf enableSimpleResponses+      `Prelude.seq` Prelude.rnf identitySource+      `Prelude.seq` Prelude.rnf identityValidationExpression+      `Prelude.seq` Prelude.rnf jwtConfiguration+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetAuthorizers.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetAuthorizers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the Authorizers for an API.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetAuthorizers+  ( -- * Creating a Request+    GetAuthorizers (..),+    newGetAuthorizers,++    -- * Request Lenses+    getAuthorizers_maxResults,+    getAuthorizers_nextToken,+    getAuthorizers_apiId,++    -- * Destructuring the Response+    GetAuthorizersResponse (..),+    newGetAuthorizersResponse,++    -- * Response Lenses+    getAuthorizersResponse_items,+    getAuthorizersResponse_nextToken,+    getAuthorizersResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetAuthorizers' smart constructor.+data GetAuthorizers = GetAuthorizers'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAuthorizers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getAuthorizers_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getAuthorizers_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'apiId', 'getAuthorizers_apiId' - The API identifier.+newGetAuthorizers ::+  -- | 'apiId'+  Prelude.Text ->+  GetAuthorizers+newGetAuthorizers pApiId_ =+  GetAuthorizers'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      apiId = pApiId_+    }++-- | The maximum number of elements to be returned for this resource.+getAuthorizers_maxResults :: Lens.Lens' GetAuthorizers (Prelude.Maybe Prelude.Text)+getAuthorizers_maxResults = Lens.lens (\GetAuthorizers' {maxResults} -> maxResults) (\s@GetAuthorizers' {} a -> s {maxResults = a} :: GetAuthorizers)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getAuthorizers_nextToken :: Lens.Lens' GetAuthorizers (Prelude.Maybe Prelude.Text)+getAuthorizers_nextToken = Lens.lens (\GetAuthorizers' {nextToken} -> nextToken) (\s@GetAuthorizers' {} a -> s {nextToken = a} :: GetAuthorizers)++-- | The API identifier.+getAuthorizers_apiId :: Lens.Lens' GetAuthorizers Prelude.Text+getAuthorizers_apiId = Lens.lens (\GetAuthorizers' {apiId} -> apiId) (\s@GetAuthorizers' {} a -> s {apiId = a} :: GetAuthorizers)++instance Core.AWSPager GetAuthorizers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getAuthorizersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getAuthorizersResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getAuthorizers_nextToken+          Lens..~ rs+          Lens.^? getAuthorizersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetAuthorizers where+  type+    AWSResponse GetAuthorizers =+      GetAuthorizersResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAuthorizersResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAuthorizers where+  hashWithSalt _salt GetAuthorizers' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetAuthorizers where+  rnf GetAuthorizers' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetAuthorizers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetAuthorizers where+  toPath GetAuthorizers' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/authorizers"]++instance Data.ToQuery GetAuthorizers where+  toQuery GetAuthorizers' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetAuthorizersResponse' smart constructor.+data GetAuthorizersResponse = GetAuthorizersResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Authorizer],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAuthorizersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getAuthorizersResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getAuthorizersResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getAuthorizersResponse_httpStatus' - The response's http status code.+newGetAuthorizersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAuthorizersResponse+newGetAuthorizersResponse pHttpStatus_ =+  GetAuthorizersResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getAuthorizersResponse_items :: Lens.Lens' GetAuthorizersResponse (Prelude.Maybe [Authorizer])+getAuthorizersResponse_items = Lens.lens (\GetAuthorizersResponse' {items} -> items) (\s@GetAuthorizersResponse' {} a -> s {items = a} :: GetAuthorizersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getAuthorizersResponse_nextToken :: Lens.Lens' GetAuthorizersResponse (Prelude.Maybe Prelude.Text)+getAuthorizersResponse_nextToken = Lens.lens (\GetAuthorizersResponse' {nextToken} -> nextToken) (\s@GetAuthorizersResponse' {} a -> s {nextToken = a} :: GetAuthorizersResponse)++-- | The response's http status code.+getAuthorizersResponse_httpStatus :: Lens.Lens' GetAuthorizersResponse Prelude.Int+getAuthorizersResponse_httpStatus = Lens.lens (\GetAuthorizersResponse' {httpStatus} -> httpStatus) (\s@GetAuthorizersResponse' {} a -> s {httpStatus = a} :: GetAuthorizersResponse)++instance Prelude.NFData GetAuthorizersResponse where+  rnf GetAuthorizersResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetDeployment.hs view
@@ -0,0 +1,241 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetDeployment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a Deployment.+module Amazonka.ApiGatewayV2.GetDeployment+  ( -- * Creating a Request+    GetDeployment (..),+    newGetDeployment,++    -- * Request Lenses+    getDeployment_apiId,+    getDeployment_deploymentId,++    -- * Destructuring the Response+    GetDeploymentResponse (..),+    newGetDeploymentResponse,++    -- * Response Lenses+    getDeploymentResponse_autoDeployed,+    getDeploymentResponse_createdDate,+    getDeploymentResponse_deploymentId,+    getDeploymentResponse_deploymentStatus,+    getDeploymentResponse_deploymentStatusMessage,+    getDeploymentResponse_description,+    getDeploymentResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetDeployment' smart constructor.+data GetDeployment = GetDeployment'+  { -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The deployment ID.+    deploymentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'getDeployment_apiId' - The API identifier.+--+-- 'deploymentId', 'getDeployment_deploymentId' - The deployment ID.+newGetDeployment ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'deploymentId'+  Prelude.Text ->+  GetDeployment+newGetDeployment pApiId_ pDeploymentId_ =+  GetDeployment'+    { apiId = pApiId_,+      deploymentId = pDeploymentId_+    }++-- | The API identifier.+getDeployment_apiId :: Lens.Lens' GetDeployment Prelude.Text+getDeployment_apiId = Lens.lens (\GetDeployment' {apiId} -> apiId) (\s@GetDeployment' {} a -> s {apiId = a} :: GetDeployment)++-- | The deployment ID.+getDeployment_deploymentId :: Lens.Lens' GetDeployment Prelude.Text+getDeployment_deploymentId = Lens.lens (\GetDeployment' {deploymentId} -> deploymentId) (\s@GetDeployment' {} a -> s {deploymentId = a} :: GetDeployment)++instance Core.AWSRequest GetDeployment where+  type+    AWSResponse GetDeployment =+      GetDeploymentResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDeploymentResponse'+            Prelude.<$> (x Data..?> "autoDeployed")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "deploymentId")+            Prelude.<*> (x Data..?> "deploymentStatus")+            Prelude.<*> (x Data..?> "deploymentStatusMessage")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDeployment where+  hashWithSalt _salt GetDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` deploymentId++instance Prelude.NFData GetDeployment where+  rnf GetDeployment' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf deploymentId++instance Data.ToHeaders GetDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDeployment where+  toPath GetDeployment' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/deployments/",+        Data.toBS deploymentId+      ]++instance Data.ToQuery GetDeployment where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDeploymentResponse' smart constructor.+data GetDeploymentResponse = GetDeploymentResponse'+  { -- | Specifies whether a deployment was automatically released.+    autoDeployed :: Prelude.Maybe Prelude.Bool,+    -- | The date and time when the Deployment resource was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The identifier for the deployment.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The status of the deployment: PENDING, FAILED, or SUCCEEDED.+    deploymentStatus :: Prelude.Maybe DeploymentStatus,+    -- | May contain additional feedback on the status of an API deployment.+    deploymentStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The description for the deployment.+    description :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoDeployed', 'getDeploymentResponse_autoDeployed' - Specifies whether a deployment was automatically released.+--+-- 'createdDate', 'getDeploymentResponse_createdDate' - The date and time when the Deployment resource was created.+--+-- 'deploymentId', 'getDeploymentResponse_deploymentId' - The identifier for the deployment.+--+-- 'deploymentStatus', 'getDeploymentResponse_deploymentStatus' - The status of the deployment: PENDING, FAILED, or SUCCEEDED.+--+-- 'deploymentStatusMessage', 'getDeploymentResponse_deploymentStatusMessage' - May contain additional feedback on the status of an API deployment.+--+-- 'description', 'getDeploymentResponse_description' - The description for the deployment.+--+-- 'httpStatus', 'getDeploymentResponse_httpStatus' - The response's http status code.+newGetDeploymentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDeploymentResponse+newGetDeploymentResponse pHttpStatus_ =+  GetDeploymentResponse'+    { autoDeployed =+        Prelude.Nothing,+      createdDate = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      deploymentStatus = Prelude.Nothing,+      deploymentStatusMessage = Prelude.Nothing,+      description = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether a deployment was automatically released.+getDeploymentResponse_autoDeployed :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Bool)+getDeploymentResponse_autoDeployed = Lens.lens (\GetDeploymentResponse' {autoDeployed} -> autoDeployed) (\s@GetDeploymentResponse' {} a -> s {autoDeployed = a} :: GetDeploymentResponse)++-- | The date and time when the Deployment resource was created.+getDeploymentResponse_createdDate :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.UTCTime)+getDeploymentResponse_createdDate = Lens.lens (\GetDeploymentResponse' {createdDate} -> createdDate) (\s@GetDeploymentResponse' {} a -> s {createdDate = a} :: GetDeploymentResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier for the deployment.+getDeploymentResponse_deploymentId :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_deploymentId = Lens.lens (\GetDeploymentResponse' {deploymentId} -> deploymentId) (\s@GetDeploymentResponse' {} a -> s {deploymentId = a} :: GetDeploymentResponse)++-- | The status of the deployment: PENDING, FAILED, or SUCCEEDED.+getDeploymentResponse_deploymentStatus :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe DeploymentStatus)+getDeploymentResponse_deploymentStatus = Lens.lens (\GetDeploymentResponse' {deploymentStatus} -> deploymentStatus) (\s@GetDeploymentResponse' {} a -> s {deploymentStatus = a} :: GetDeploymentResponse)++-- | May contain additional feedback on the status of an API deployment.+getDeploymentResponse_deploymentStatusMessage :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_deploymentStatusMessage = Lens.lens (\GetDeploymentResponse' {deploymentStatusMessage} -> deploymentStatusMessage) (\s@GetDeploymentResponse' {} a -> s {deploymentStatusMessage = a} :: GetDeploymentResponse)++-- | The description for the deployment.+getDeploymentResponse_description :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_description = Lens.lens (\GetDeploymentResponse' {description} -> description) (\s@GetDeploymentResponse' {} a -> s {description = a} :: GetDeploymentResponse)++-- | The response's http status code.+getDeploymentResponse_httpStatus :: Lens.Lens' GetDeploymentResponse Prelude.Int+getDeploymentResponse_httpStatus = Lens.lens (\GetDeploymentResponse' {httpStatus} -> httpStatus) (\s@GetDeploymentResponse' {} a -> s {httpStatus = a} :: GetDeploymentResponse)++instance Prelude.NFData GetDeploymentResponse where+  rnf GetDeploymentResponse' {..} =+    Prelude.rnf autoDeployed+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf deploymentStatus+      `Prelude.seq` Prelude.rnf deploymentStatusMessage+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetDeployments.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetDeployments+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the Deployments for an API.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetDeployments+  ( -- * Creating a Request+    GetDeployments (..),+    newGetDeployments,++    -- * Request Lenses+    getDeployments_maxResults,+    getDeployments_nextToken,+    getDeployments_apiId,++    -- * Destructuring the Response+    GetDeploymentsResponse (..),+    newGetDeploymentsResponse,++    -- * Response Lenses+    getDeploymentsResponse_items,+    getDeploymentsResponse_nextToken,+    getDeploymentsResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetDeployments' smart constructor.+data GetDeployments = GetDeployments'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeployments' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDeployments_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getDeployments_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'apiId', 'getDeployments_apiId' - The API identifier.+newGetDeployments ::+  -- | 'apiId'+  Prelude.Text ->+  GetDeployments+newGetDeployments pApiId_ =+  GetDeployments'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      apiId = pApiId_+    }++-- | The maximum number of elements to be returned for this resource.+getDeployments_maxResults :: Lens.Lens' GetDeployments (Prelude.Maybe Prelude.Text)+getDeployments_maxResults = Lens.lens (\GetDeployments' {maxResults} -> maxResults) (\s@GetDeployments' {} a -> s {maxResults = a} :: GetDeployments)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getDeployments_nextToken :: Lens.Lens' GetDeployments (Prelude.Maybe Prelude.Text)+getDeployments_nextToken = Lens.lens (\GetDeployments' {nextToken} -> nextToken) (\s@GetDeployments' {} a -> s {nextToken = a} :: GetDeployments)++-- | The API identifier.+getDeployments_apiId :: Lens.Lens' GetDeployments Prelude.Text+getDeployments_apiId = Lens.lens (\GetDeployments' {apiId} -> apiId) (\s@GetDeployments' {} a -> s {apiId = a} :: GetDeployments)++instance Core.AWSPager GetDeployments where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getDeploymentsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getDeploymentsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getDeployments_nextToken+          Lens..~ rs+          Lens.^? getDeploymentsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetDeployments where+  type+    AWSResponse GetDeployments =+      GetDeploymentsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDeploymentsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDeployments where+  hashWithSalt _salt GetDeployments' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetDeployments where+  rnf GetDeployments' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetDeployments where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDeployments where+  toPath GetDeployments' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/deployments"]++instance Data.ToQuery GetDeployments where+  toQuery GetDeployments' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetDeploymentsResponse' smart constructor.+data GetDeploymentsResponse = GetDeploymentsResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Deployment],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeploymentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getDeploymentsResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getDeploymentsResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getDeploymentsResponse_httpStatus' - The response's http status code.+newGetDeploymentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDeploymentsResponse+newGetDeploymentsResponse pHttpStatus_ =+  GetDeploymentsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getDeploymentsResponse_items :: Lens.Lens' GetDeploymentsResponse (Prelude.Maybe [Deployment])+getDeploymentsResponse_items = Lens.lens (\GetDeploymentsResponse' {items} -> items) (\s@GetDeploymentsResponse' {} a -> s {items = a} :: GetDeploymentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getDeploymentsResponse_nextToken :: Lens.Lens' GetDeploymentsResponse (Prelude.Maybe Prelude.Text)+getDeploymentsResponse_nextToken = Lens.lens (\GetDeploymentsResponse' {nextToken} -> nextToken) (\s@GetDeploymentsResponse' {} a -> s {nextToken = a} :: GetDeploymentsResponse)++-- | The response's http status code.+getDeploymentsResponse_httpStatus :: Lens.Lens' GetDeploymentsResponse Prelude.Int+getDeploymentsResponse_httpStatus = Lens.lens (\GetDeploymentsResponse' {httpStatus} -> httpStatus) (\s@GetDeploymentsResponse' {} a -> s {httpStatus = a} :: GetDeploymentsResponse)++instance Prelude.NFData GetDeploymentsResponse where+  rnf GetDeploymentsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetDomainName.hs view
@@ -0,0 +1,210 @@+{-# 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.ApiGatewayV2.GetDomainName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a domain name.+module Amazonka.ApiGatewayV2.GetDomainName+  ( -- * Creating a Request+    GetDomainName (..),+    newGetDomainName,++    -- * Request Lenses+    getDomainName_domainName,++    -- * Destructuring the Response+    GetDomainNameResponse (..),+    newGetDomainNameResponse,++    -- * Response Lenses+    getDomainNameResponse_apiMappingSelectionExpression,+    getDomainNameResponse_domainName,+    getDomainNameResponse_domainNameConfigurations,+    getDomainNameResponse_mutualTlsAuthentication,+    getDomainNameResponse_tags,+    getDomainNameResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetDomainName' smart constructor.+data GetDomainName = GetDomainName'+  { -- | The domain name.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainName' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'getDomainName_domainName' - The domain name.+newGetDomainName ::+  -- | 'domainName'+  Prelude.Text ->+  GetDomainName+newGetDomainName pDomainName_ =+  GetDomainName' {domainName = pDomainName_}++-- | The domain name.+getDomainName_domainName :: Lens.Lens' GetDomainName Prelude.Text+getDomainName_domainName = Lens.lens (\GetDomainName' {domainName} -> domainName) (\s@GetDomainName' {} a -> s {domainName = a} :: GetDomainName)++instance Core.AWSRequest GetDomainName where+  type+    AWSResponse GetDomainName =+      GetDomainNameResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDomainNameResponse'+            Prelude.<$> (x Data..?> "apiMappingSelectionExpression")+            Prelude.<*> (x Data..?> "domainName")+            Prelude.<*> ( x+                            Data..?> "domainNameConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "mutualTlsAuthentication")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDomainName where+  hashWithSalt _salt GetDomainName' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetDomainName where+  rnf GetDomainName' {..} = Prelude.rnf domainName++instance Data.ToHeaders GetDomainName where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDomainName where+  toPath GetDomainName' {..} =+    Prelude.mconcat+      ["/v2/domainnames/", Data.toBS domainName]++instance Data.ToQuery GetDomainName where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDomainNameResponse' smart constructor.+data GetDomainNameResponse = GetDomainNameResponse'+  { -- | The API mapping selection expression.+    apiMappingSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The name of the DomainName resource.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | The domain name configurations.+    domainNameConfigurations :: Prelude.Maybe [DomainNameConfiguration],+    -- | The mutual TLS authentication configuration for a custom domain name.+    mutualTlsAuthentication :: Prelude.Maybe MutualTlsAuthentication,+    -- | The collection of tags associated with a domain name.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainNameResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingSelectionExpression', 'getDomainNameResponse_apiMappingSelectionExpression' - The API mapping selection expression.+--+-- 'domainName', 'getDomainNameResponse_domainName' - The name of the DomainName resource.+--+-- 'domainNameConfigurations', 'getDomainNameResponse_domainNameConfigurations' - The domain name configurations.+--+-- 'mutualTlsAuthentication', 'getDomainNameResponse_mutualTlsAuthentication' - The mutual TLS authentication configuration for a custom domain name.+--+-- 'tags', 'getDomainNameResponse_tags' - The collection of tags associated with a domain name.+--+-- 'httpStatus', 'getDomainNameResponse_httpStatus' - The response's http status code.+newGetDomainNameResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDomainNameResponse+newGetDomainNameResponse pHttpStatus_ =+  GetDomainNameResponse'+    { apiMappingSelectionExpression =+        Prelude.Nothing,+      domainName = Prelude.Nothing,+      domainNameConfigurations = Prelude.Nothing,+      mutualTlsAuthentication = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The API mapping selection expression.+getDomainNameResponse_apiMappingSelectionExpression :: Lens.Lens' GetDomainNameResponse (Prelude.Maybe Prelude.Text)+getDomainNameResponse_apiMappingSelectionExpression = Lens.lens (\GetDomainNameResponse' {apiMappingSelectionExpression} -> apiMappingSelectionExpression) (\s@GetDomainNameResponse' {} a -> s {apiMappingSelectionExpression = a} :: GetDomainNameResponse)++-- | The name of the DomainName resource.+getDomainNameResponse_domainName :: Lens.Lens' GetDomainNameResponse (Prelude.Maybe Prelude.Text)+getDomainNameResponse_domainName = Lens.lens (\GetDomainNameResponse' {domainName} -> domainName) (\s@GetDomainNameResponse' {} a -> s {domainName = a} :: GetDomainNameResponse)++-- | The domain name configurations.+getDomainNameResponse_domainNameConfigurations :: Lens.Lens' GetDomainNameResponse (Prelude.Maybe [DomainNameConfiguration])+getDomainNameResponse_domainNameConfigurations = Lens.lens (\GetDomainNameResponse' {domainNameConfigurations} -> domainNameConfigurations) (\s@GetDomainNameResponse' {} a -> s {domainNameConfigurations = a} :: GetDomainNameResponse) Prelude.. Lens.mapping Lens.coerced++-- | The mutual TLS authentication configuration for a custom domain name.+getDomainNameResponse_mutualTlsAuthentication :: Lens.Lens' GetDomainNameResponse (Prelude.Maybe MutualTlsAuthentication)+getDomainNameResponse_mutualTlsAuthentication = Lens.lens (\GetDomainNameResponse' {mutualTlsAuthentication} -> mutualTlsAuthentication) (\s@GetDomainNameResponse' {} a -> s {mutualTlsAuthentication = a} :: GetDomainNameResponse)++-- | The collection of tags associated with a domain name.+getDomainNameResponse_tags :: Lens.Lens' GetDomainNameResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getDomainNameResponse_tags = Lens.lens (\GetDomainNameResponse' {tags} -> tags) (\s@GetDomainNameResponse' {} a -> s {tags = a} :: GetDomainNameResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getDomainNameResponse_httpStatus :: Lens.Lens' GetDomainNameResponse Prelude.Int+getDomainNameResponse_httpStatus = Lens.lens (\GetDomainNameResponse' {httpStatus} -> httpStatus) (\s@GetDomainNameResponse' {} a -> s {httpStatus = a} :: GetDomainNameResponse)++instance Prelude.NFData GetDomainNameResponse where+  rnf GetDomainNameResponse' {..} =+    Prelude.rnf apiMappingSelectionExpression+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf domainNameConfigurations+      `Prelude.seq` Prelude.rnf mutualTlsAuthentication+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetDomainNames.hs view
@@ -0,0 +1,216 @@+{-# 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.ApiGatewayV2.GetDomainNames+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the domain names for an AWS account.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetDomainNames+  ( -- * Creating a Request+    GetDomainNames (..),+    newGetDomainNames,++    -- * Request Lenses+    getDomainNames_maxResults,+    getDomainNames_nextToken,++    -- * Destructuring the Response+    GetDomainNamesResponse (..),+    newGetDomainNamesResponse,++    -- * Response Lenses+    getDomainNamesResponse_items,+    getDomainNamesResponse_nextToken,+    getDomainNamesResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetDomainNames' smart constructor.+data GetDomainNames = GetDomainNames'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainNames' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDomainNames_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getDomainNames_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+newGetDomainNames ::+  GetDomainNames+newGetDomainNames =+  GetDomainNames'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of elements to be returned for this resource.+getDomainNames_maxResults :: Lens.Lens' GetDomainNames (Prelude.Maybe Prelude.Text)+getDomainNames_maxResults = Lens.lens (\GetDomainNames' {maxResults} -> maxResults) (\s@GetDomainNames' {} a -> s {maxResults = a} :: GetDomainNames)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getDomainNames_nextToken :: Lens.Lens' GetDomainNames (Prelude.Maybe Prelude.Text)+getDomainNames_nextToken = Lens.lens (\GetDomainNames' {nextToken} -> nextToken) (\s@GetDomainNames' {} a -> s {nextToken = a} :: GetDomainNames)++instance Core.AWSPager GetDomainNames where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getDomainNamesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getDomainNamesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getDomainNames_nextToken+          Lens..~ rs+          Lens.^? getDomainNamesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetDomainNames where+  type+    AWSResponse GetDomainNames =+      GetDomainNamesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDomainNamesResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDomainNames where+  hashWithSalt _salt GetDomainNames' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetDomainNames where+  rnf GetDomainNames' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetDomainNames where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDomainNames where+  toPath = Prelude.const "/v2/domainnames"++instance Data.ToQuery GetDomainNames where+  toQuery GetDomainNames' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetDomainNamesResponse' smart constructor.+data GetDomainNamesResponse = GetDomainNamesResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [DomainName],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainNamesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getDomainNamesResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getDomainNamesResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getDomainNamesResponse_httpStatus' - The response's http status code.+newGetDomainNamesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDomainNamesResponse+newGetDomainNamesResponse pHttpStatus_ =+  GetDomainNamesResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getDomainNamesResponse_items :: Lens.Lens' GetDomainNamesResponse (Prelude.Maybe [DomainName])+getDomainNamesResponse_items = Lens.lens (\GetDomainNamesResponse' {items} -> items) (\s@GetDomainNamesResponse' {} a -> s {items = a} :: GetDomainNamesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getDomainNamesResponse_nextToken :: Lens.Lens' GetDomainNamesResponse (Prelude.Maybe Prelude.Text)+getDomainNamesResponse_nextToken = Lens.lens (\GetDomainNamesResponse' {nextToken} -> nextToken) (\s@GetDomainNamesResponse' {} a -> s {nextToken = a} :: GetDomainNamesResponse)++-- | The response's http status code.+getDomainNamesResponse_httpStatus :: Lens.Lens' GetDomainNamesResponse Prelude.Int+getDomainNamesResponse_httpStatus = Lens.lens (\GetDomainNamesResponse' {httpStatus} -> httpStatus) (\s@GetDomainNamesResponse' {} a -> s {httpStatus = a} :: GetDomainNamesResponse)++instance Prelude.NFData GetDomainNamesResponse where+  rnf GetDomainNamesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetIntegration.hs view
@@ -0,0 +1,774 @@+{-# 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.ApiGatewayV2.GetIntegration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an Integration.+module Amazonka.ApiGatewayV2.GetIntegration+  ( -- * Creating a Request+    GetIntegration (..),+    newGetIntegration,++    -- * Request Lenses+    getIntegration_apiId,+    getIntegration_integrationId,++    -- * Destructuring the Response+    GetIntegrationResponse' (..),+    newGetIntegrationResponse',++    -- * Response Lenses+    getIntegrationResponse'_apiGatewayManaged,+    getIntegrationResponse'_connectionId,+    getIntegrationResponse'_connectionType,+    getIntegrationResponse'_contentHandlingStrategy,+    getIntegrationResponse'_credentialsArn,+    getIntegrationResponse'_description,+    getIntegrationResponse'_integrationId,+    getIntegrationResponse'_integrationMethod,+    getIntegrationResponse'_integrationResponseSelectionExpression,+    getIntegrationResponse'_integrationSubtype,+    getIntegrationResponse'_integrationType,+    getIntegrationResponse'_integrationUri,+    getIntegrationResponse'_passthroughBehavior,+    getIntegrationResponse'_payloadFormatVersion,+    getIntegrationResponse'_requestParameters,+    getIntegrationResponse'_requestTemplates,+    getIntegrationResponse'_responseParameters,+    getIntegrationResponse'_templateSelectionExpression,+    getIntegrationResponse'_timeoutInMillis,+    getIntegrationResponse'_tlsConfig,+    getIntegrationResponse'_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetIntegration' smart constructor.+data GetIntegration = GetIntegration'+  { -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The integration ID.+    integrationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'getIntegration_apiId' - The API identifier.+--+-- 'integrationId', 'getIntegration_integrationId' - The integration ID.+newGetIntegration ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'integrationId'+  Prelude.Text ->+  GetIntegration+newGetIntegration pApiId_ pIntegrationId_ =+  GetIntegration'+    { apiId = pApiId_,+      integrationId = pIntegrationId_+    }++-- | The API identifier.+getIntegration_apiId :: Lens.Lens' GetIntegration Prelude.Text+getIntegration_apiId = Lens.lens (\GetIntegration' {apiId} -> apiId) (\s@GetIntegration' {} a -> s {apiId = a} :: GetIntegration)++-- | The integration ID.+getIntegration_integrationId :: Lens.Lens' GetIntegration Prelude.Text+getIntegration_integrationId = Lens.lens (\GetIntegration' {integrationId} -> integrationId) (\s@GetIntegration' {} a -> s {integrationId = a} :: GetIntegration)++instance Core.AWSRequest GetIntegration where+  type+    AWSResponse GetIntegration =+      GetIntegrationResponse'+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetIntegrationResponse''+            Prelude.<$> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "connectionId")+            Prelude.<*> (x Data..?> "connectionType")+            Prelude.<*> (x Data..?> "contentHandlingStrategy")+            Prelude.<*> (x Data..?> "credentialsArn")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "integrationId")+            Prelude.<*> (x Data..?> "integrationMethod")+            Prelude.<*> (x Data..?> "integrationResponseSelectionExpression")+            Prelude.<*> (x Data..?> "integrationSubtype")+            Prelude.<*> (x Data..?> "integrationType")+            Prelude.<*> (x Data..?> "integrationUri")+            Prelude.<*> (x Data..?> "passthroughBehavior")+            Prelude.<*> (x Data..?> "payloadFormatVersion")+            Prelude.<*> ( x+                            Data..?> "requestParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "requestTemplates"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "templateSelectionExpression")+            Prelude.<*> (x Data..?> "timeoutInMillis")+            Prelude.<*> (x Data..?> "tlsConfig")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetIntegration where+  hashWithSalt _salt GetIntegration' {..} =+    _salt+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` integrationId++instance Prelude.NFData GetIntegration where+  rnf GetIntegration' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf integrationId++instance Data.ToHeaders GetIntegration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetIntegration where+  toPath GetIntegration' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/integrations/",+        Data.toBS integrationId+      ]++instance Data.ToQuery GetIntegration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetIntegrationResponse'' smart constructor.+data GetIntegrationResponse' = GetIntegrationResponse''+  { -- | Specifies whether an integration is managed by API Gateway. If you+    -- created an API using using quick create, the resulting integration is+    -- managed by API Gateway. You can update a managed integration, but you+    -- can\'t delete it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the VPC link for a private integration. Supported only for+    -- HTTP APIs.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | The type of the network connection to the integration endpoint. Specify+    -- INTERNET for connections through the public routable internet or+    -- VPC_LINK for private connections between API Gateway and resources in a+    -- VPC. The default value is INTERNET.+    connectionType :: Prelude.Maybe ConnectionType,+    -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | Specifies the credentials required for the integration, if any. For AWS+    -- integrations, three options are available. To specify an IAM Role for+    -- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+    -- require that the caller\'s identity be passed through from the request,+    -- specify the string arn:aws:iam::*:user\/*. To use resource-based+    -- permissions on supported AWS services, specify null.+    credentialsArn :: Prelude.Maybe Prelude.Text,+    -- | Represents the description of an integration.+    description :: Prelude.Maybe Prelude.Text,+    -- | Represents the identifier of an integration.+    integrationId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the integration\'s HTTP method type.+    integrationMethod :: Prelude.Maybe Prelude.Text,+    -- | The integration response selection expression for the integration.+    -- Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+    integrationResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+    -- service action to invoke. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+    integrationSubtype :: Prelude.Maybe Prelude.Text,+    -- | The integration type of an integration. One of the following:+    --+    -- AWS: for integrating the route or method request with an AWS service+    -- action, including the Lambda function-invoking action. With the Lambda+    -- function-invoking action, this is referred to as the Lambda custom+    -- integration. With any other AWS service action, this is known as AWS+    -- integration. Supported only for WebSocket APIs.+    --+    -- AWS_PROXY: for integrating the route or method request with a Lambda+    -- function or other AWS service action. This integration is also referred+    -- to as a Lambda proxy integration.+    --+    -- HTTP: for integrating the route or method request with an HTTP endpoint.+    -- This integration is also referred to as the HTTP custom integration.+    -- Supported only for WebSocket APIs.+    --+    -- HTTP_PROXY: for integrating the route or method request with an HTTP+    -- endpoint, with the client request passed through as-is. This is also+    -- referred to as HTTP proxy integration.+    --+    -- MOCK: for integrating the route or method request with API Gateway as a+    -- \"loopback\" endpoint without invoking any backend. Supported only for+    -- WebSocket APIs.+    integrationType :: Prelude.Maybe IntegrationType,+    -- | For a Lambda integration, specify the URI of a Lambda function.+    --+    -- For an HTTP integration, specify a fully-qualified URL.+    --+    -- For an HTTP API private integration, specify the ARN of an Application+    -- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+    -- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+    -- uses DiscoverInstances to identify resources. You can use query+    -- parameters to target specific resources. To learn more, see+    -- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+    -- For private integrations, all resources must be owned by the same AWS+    -- account.+    integrationUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies the pass-through behavior for incoming requests based on the+    -- Content-Type header in the request, and the available mapping templates+    -- specified as the requestTemplates property on the Integration resource.+    -- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+    -- NEVER. Supported only for WebSocket APIs.+    --+    -- WHEN_NO_MATCH passes the request body for unmapped content types through+    -- to the integration backend without transformation.+    --+    -- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+    -- Type response.+    --+    -- WHEN_NO_TEMPLATES allows pass-through when the integration has no+    -- content types mapped to templates. However, if there is at least one+    -- content type defined, unmapped content types will be rejected with the+    -- same HTTP 415 Unsupported Media Type response.+    passthroughBehavior :: Prelude.Maybe PassthroughBehavior,+    -- | Specifies the format of the payload sent to an integration. Required for+    -- HTTP APIs.+    payloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | For WebSocket APIs, a key-value map specifying request parameters that+    -- are passed from the method request to the backend. The key is an+    -- integration request parameter name and the associated value is a method+    -- request parameter value or static value that must be enclosed within+    -- single quotes and pre-encoded as required by the backend. The method+    -- request parameter value must match the pattern of+    -- method.request.{location}.{name} , where {location} is querystring,+    -- path, or header; and {name} must be a valid and unique method request+    -- parameter name.+    --+    -- For HTTP API integrations with a specified integrationSubtype, request+    -- parameters are a key-value map specifying parameters that are passed to+    -- AWS_PROXY integrations. You can provide static values, or map request+    -- data, stage variables, or context variables that are evaluated at+    -- runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+    --+    -- For HTTP API itegrations, without a specified integrationSubtype request+    -- parameters are a key-value map specifying how to transform HTTP requests+    -- before sending them to backend integrations. The key should follow the+    -- pattern \<action>:\<header|querystring|path>.\<location>. The action can+    -- be append, overwrite or remove. For values, you can provide static+    -- values, or map request data, stage variables, or context variables that+    -- are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents a map of Velocity templates that are applied on the request+    -- payload based on the value of the Content-Type header sent by the+    -- client. The content type value is the key in this map, and the template+    -- (as a String) is the value. Supported only for WebSocket APIs.+    requestTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Supported only for HTTP APIs. You use response parameters to transform+    -- the HTTP response from a backend integration before returning the+    -- response to clients. Specify a key-value map from a selection key to+    -- response parameters. The selection key must be a valid HTTP status code+    -- within the range of 200-599. Response parameters are a key-value map.+    -- The key must match pattern \<action>:\<header>.\<location> or+    -- overwrite.statuscode. The action can be append, overwrite or remove. The+    -- value can be a static value, or map to response data, stage variables,+    -- or context variables that are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The template selection expression for the integration. Supported only+    -- for WebSocket APIs.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+    -- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+    -- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+    timeoutInMillis :: Prelude.Maybe Prelude.Natural,+    -- | The TLS configuration for a private integration. If you specify a TLS+    -- configuration, private integration traffic uses the HTTPS protocol.+    -- Supported only for HTTP APIs.+    tlsConfig :: Prelude.Maybe TlsConfig,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegrationResponse'' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayManaged', 'getIntegrationResponse'_apiGatewayManaged' - Specifies whether an integration is managed by API Gateway. If you+-- created an API using using quick create, the resulting integration is+-- managed by API Gateway. You can update a managed integration, but you+-- can\'t delete it.+--+-- 'connectionId', 'getIntegrationResponse'_connectionId' - The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+--+-- 'connectionType', 'getIntegrationResponse'_connectionType' - The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+--+-- 'contentHandlingStrategy', 'getIntegrationResponse'_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'credentialsArn', 'getIntegrationResponse'_credentialsArn' - Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+--+-- 'description', 'getIntegrationResponse'_description' - Represents the description of an integration.+--+-- 'integrationId', 'getIntegrationResponse'_integrationId' - Represents the identifier of an integration.+--+-- 'integrationMethod', 'getIntegrationResponse'_integrationMethod' - Specifies the integration\'s HTTP method type.+--+-- 'integrationResponseSelectionExpression', 'getIntegrationResponse'_integrationResponseSelectionExpression' - The integration response selection expression for the integration.+-- Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+--+-- 'integrationSubtype', 'getIntegrationResponse'_integrationSubtype' - Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+--+-- 'integrationType', 'getIntegrationResponse'_integrationType' - The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+--+-- 'integrationUri', 'getIntegrationResponse'_integrationUri' - For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+--+-- 'passthroughBehavior', 'getIntegrationResponse'_passthroughBehavior' - Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+--+-- 'payloadFormatVersion', 'getIntegrationResponse'_payloadFormatVersion' - Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+--+-- 'requestParameters', 'getIntegrationResponse'_requestParameters' - For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API itegrations, without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to backend integrations. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location>. The action can+-- be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'requestTemplates', 'getIntegrationResponse'_requestTemplates' - Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+--+-- 'responseParameters', 'getIntegrationResponse'_responseParameters' - Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'templateSelectionExpression', 'getIntegrationResponse'_templateSelectionExpression' - The template selection expression for the integration. Supported only+-- for WebSocket APIs.+--+-- 'timeoutInMillis', 'getIntegrationResponse'_timeoutInMillis' - Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+--+-- 'tlsConfig', 'getIntegrationResponse'_tlsConfig' - The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+--+-- 'httpStatus', 'getIntegrationResponse'_httpStatus' - The response's http status code.+newGetIntegrationResponse' ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetIntegrationResponse'+newGetIntegrationResponse' pHttpStatus_ =+  GetIntegrationResponse''+    { apiGatewayManaged =+        Prelude.Nothing,+      connectionId = Prelude.Nothing,+      connectionType = Prelude.Nothing,+      contentHandlingStrategy = Prelude.Nothing,+      credentialsArn = Prelude.Nothing,+      description = Prelude.Nothing,+      integrationId = Prelude.Nothing,+      integrationMethod = Prelude.Nothing,+      integrationResponseSelectionExpression =+        Prelude.Nothing,+      integrationSubtype = Prelude.Nothing,+      integrationType = Prelude.Nothing,+      integrationUri = Prelude.Nothing,+      passthroughBehavior = Prelude.Nothing,+      payloadFormatVersion = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      requestTemplates = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      templateSelectionExpression = Prelude.Nothing,+      timeoutInMillis = Prelude.Nothing,+      tlsConfig = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether an integration is managed by API Gateway. If you+-- created an API using using quick create, the resulting integration is+-- managed by API Gateway. You can update a managed integration, but you+-- can\'t delete it.+getIntegrationResponse'_apiGatewayManaged :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Bool)+getIntegrationResponse'_apiGatewayManaged = Lens.lens (\GetIntegrationResponse'' {apiGatewayManaged} -> apiGatewayManaged) (\s@GetIntegrationResponse'' {} a -> s {apiGatewayManaged = a} :: GetIntegrationResponse')++-- | The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+getIntegrationResponse'_connectionId :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_connectionId = Lens.lens (\GetIntegrationResponse'' {connectionId} -> connectionId) (\s@GetIntegrationResponse'' {} a -> s {connectionId = a} :: GetIntegrationResponse')++-- | The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+getIntegrationResponse'_connectionType :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe ConnectionType)+getIntegrationResponse'_connectionType = Lens.lens (\GetIntegrationResponse'' {connectionType} -> connectionType) (\s@GetIntegrationResponse'' {} a -> s {connectionType = a} :: GetIntegrationResponse')++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+getIntegrationResponse'_contentHandlingStrategy :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe ContentHandlingStrategy)+getIntegrationResponse'_contentHandlingStrategy = Lens.lens (\GetIntegrationResponse'' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@GetIntegrationResponse'' {} a -> s {contentHandlingStrategy = a} :: GetIntegrationResponse')++-- | Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+getIntegrationResponse'_credentialsArn :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_credentialsArn = Lens.lens (\GetIntegrationResponse'' {credentialsArn} -> credentialsArn) (\s@GetIntegrationResponse'' {} a -> s {credentialsArn = a} :: GetIntegrationResponse')++-- | Represents the description of an integration.+getIntegrationResponse'_description :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_description = Lens.lens (\GetIntegrationResponse'' {description} -> description) (\s@GetIntegrationResponse'' {} a -> s {description = a} :: GetIntegrationResponse')++-- | Represents the identifier of an integration.+getIntegrationResponse'_integrationId :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_integrationId = Lens.lens (\GetIntegrationResponse'' {integrationId} -> integrationId) (\s@GetIntegrationResponse'' {} a -> s {integrationId = a} :: GetIntegrationResponse')++-- | Specifies the integration\'s HTTP method type.+getIntegrationResponse'_integrationMethod :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_integrationMethod = Lens.lens (\GetIntegrationResponse'' {integrationMethod} -> integrationMethod) (\s@GetIntegrationResponse'' {} a -> s {integrationMethod = a} :: GetIntegrationResponse')++-- | The integration response selection expression for the integration.+-- Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+getIntegrationResponse'_integrationResponseSelectionExpression :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_integrationResponseSelectionExpression = Lens.lens (\GetIntegrationResponse'' {integrationResponseSelectionExpression} -> integrationResponseSelectionExpression) (\s@GetIntegrationResponse'' {} a -> s {integrationResponseSelectionExpression = a} :: GetIntegrationResponse')++-- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+getIntegrationResponse'_integrationSubtype :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_integrationSubtype = Lens.lens (\GetIntegrationResponse'' {integrationSubtype} -> integrationSubtype) (\s@GetIntegrationResponse'' {} a -> s {integrationSubtype = a} :: GetIntegrationResponse')++-- | The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+getIntegrationResponse'_integrationType :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe IntegrationType)+getIntegrationResponse'_integrationType = Lens.lens (\GetIntegrationResponse'' {integrationType} -> integrationType) (\s@GetIntegrationResponse'' {} a -> s {integrationType = a} :: GetIntegrationResponse')++-- | For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+getIntegrationResponse'_integrationUri :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_integrationUri = Lens.lens (\GetIntegrationResponse'' {integrationUri} -> integrationUri) (\s@GetIntegrationResponse'' {} a -> s {integrationUri = a} :: GetIntegrationResponse')++-- | Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+getIntegrationResponse'_passthroughBehavior :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe PassthroughBehavior)+getIntegrationResponse'_passthroughBehavior = Lens.lens (\GetIntegrationResponse'' {passthroughBehavior} -> passthroughBehavior) (\s@GetIntegrationResponse'' {} a -> s {passthroughBehavior = a} :: GetIntegrationResponse')++-- | Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+getIntegrationResponse'_payloadFormatVersion :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_payloadFormatVersion = Lens.lens (\GetIntegrationResponse'' {payloadFormatVersion} -> payloadFormatVersion) (\s@GetIntegrationResponse'' {} a -> s {payloadFormatVersion = a} :: GetIntegrationResponse')++-- | For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API itegrations, without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to backend integrations. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location>. The action can+-- be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+getIntegrationResponse'_requestParameters :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getIntegrationResponse'_requestParameters = Lens.lens (\GetIntegrationResponse'' {requestParameters} -> requestParameters) (\s@GetIntegrationResponse'' {} a -> s {requestParameters = a} :: GetIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+getIntegrationResponse'_requestTemplates :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getIntegrationResponse'_requestTemplates = Lens.lens (\GetIntegrationResponse'' {requestTemplates} -> requestTemplates) (\s@GetIntegrationResponse'' {} a -> s {requestTemplates = a} :: GetIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+getIntegrationResponse'_responseParameters :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+getIntegrationResponse'_responseParameters = Lens.lens (\GetIntegrationResponse'' {responseParameters} -> responseParameters) (\s@GetIntegrationResponse'' {} a -> s {responseParameters = a} :: GetIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | The template selection expression for the integration. Supported only+-- for WebSocket APIs.+getIntegrationResponse'_templateSelectionExpression :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Text)+getIntegrationResponse'_templateSelectionExpression = Lens.lens (\GetIntegrationResponse'' {templateSelectionExpression} -> templateSelectionExpression) (\s@GetIntegrationResponse'' {} a -> s {templateSelectionExpression = a} :: GetIntegrationResponse')++-- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+getIntegrationResponse'_timeoutInMillis :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe Prelude.Natural)+getIntegrationResponse'_timeoutInMillis = Lens.lens (\GetIntegrationResponse'' {timeoutInMillis} -> timeoutInMillis) (\s@GetIntegrationResponse'' {} a -> s {timeoutInMillis = a} :: GetIntegrationResponse')++-- | The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+getIntegrationResponse'_tlsConfig :: Lens.Lens' GetIntegrationResponse' (Prelude.Maybe TlsConfig)+getIntegrationResponse'_tlsConfig = Lens.lens (\GetIntegrationResponse'' {tlsConfig} -> tlsConfig) (\s@GetIntegrationResponse'' {} a -> s {tlsConfig = a} :: GetIntegrationResponse')++-- | The response's http status code.+getIntegrationResponse'_httpStatus :: Lens.Lens' GetIntegrationResponse' Prelude.Int+getIntegrationResponse'_httpStatus = Lens.lens (\GetIntegrationResponse'' {httpStatus} -> httpStatus) (\s@GetIntegrationResponse'' {} a -> s {httpStatus = a} :: GetIntegrationResponse')++instance Prelude.NFData GetIntegrationResponse' where+  rnf GetIntegrationResponse'' {..} =+    Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionType+      `Prelude.seq` Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf credentialsArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf integrationId+      `Prelude.seq` Prelude.rnf integrationMethod+      `Prelude.seq` Prelude.rnf integrationResponseSelectionExpression+      `Prelude.seq` Prelude.rnf integrationSubtype+      `Prelude.seq` Prelude.rnf integrationType+      `Prelude.seq` Prelude.rnf integrationUri+      `Prelude.seq` Prelude.rnf passthroughBehavior+      `Prelude.seq` Prelude.rnf payloadFormatVersion+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf requestTemplates+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf+        templateSelectionExpression+      `Prelude.seq` Prelude.rnf timeoutInMillis+      `Prelude.seq` Prelude.rnf tlsConfig+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetIntegrationResponse.hs view
@@ -0,0 +1,345 @@+{-# 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.ApiGatewayV2.GetIntegrationResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an IntegrationResponses.+module Amazonka.ApiGatewayV2.GetIntegrationResponse+  ( -- * Creating a Request+    GetIntegrationResponse (..),+    newGetIntegrationResponse,++    -- * Request Lenses+    getIntegrationResponse_apiId,+    getIntegrationResponse_integrationResponseId,+    getIntegrationResponse_integrationId,++    -- * Destructuring the Response+    GetIntegrationResponseResponse (..),+    newGetIntegrationResponseResponse,++    -- * Response Lenses+    getIntegrationResponseResponse_contentHandlingStrategy,+    getIntegrationResponseResponse_integrationResponseId,+    getIntegrationResponseResponse_integrationResponseKey,+    getIntegrationResponseResponse_responseParameters,+    getIntegrationResponseResponse_responseTemplates,+    getIntegrationResponseResponse_templateSelectionExpression,+    getIntegrationResponseResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetIntegrationResponse' smart constructor.+data GetIntegrationResponse = GetIntegrationResponse'+  { -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The integration response ID.+    integrationResponseId :: Prelude.Text,+    -- | The integration ID.+    integrationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'getIntegrationResponse_apiId' - The API identifier.+--+-- 'integrationResponseId', 'getIntegrationResponse_integrationResponseId' - The integration response ID.+--+-- 'integrationId', 'getIntegrationResponse_integrationId' - The integration ID.+newGetIntegrationResponse ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'integrationResponseId'+  Prelude.Text ->+  -- | 'integrationId'+  Prelude.Text ->+  GetIntegrationResponse+newGetIntegrationResponse+  pApiId_+  pIntegrationResponseId_+  pIntegrationId_ =+    GetIntegrationResponse'+      { apiId = pApiId_,+        integrationResponseId = pIntegrationResponseId_,+        integrationId = pIntegrationId_+      }++-- | The API identifier.+getIntegrationResponse_apiId :: Lens.Lens' GetIntegrationResponse Prelude.Text+getIntegrationResponse_apiId = Lens.lens (\GetIntegrationResponse' {apiId} -> apiId) (\s@GetIntegrationResponse' {} a -> s {apiId = a} :: GetIntegrationResponse)++-- | The integration response ID.+getIntegrationResponse_integrationResponseId :: Lens.Lens' GetIntegrationResponse Prelude.Text+getIntegrationResponse_integrationResponseId = Lens.lens (\GetIntegrationResponse' {integrationResponseId} -> integrationResponseId) (\s@GetIntegrationResponse' {} a -> s {integrationResponseId = a} :: GetIntegrationResponse)++-- | The integration ID.+getIntegrationResponse_integrationId :: Lens.Lens' GetIntegrationResponse Prelude.Text+getIntegrationResponse_integrationId = Lens.lens (\GetIntegrationResponse' {integrationId} -> integrationId) (\s@GetIntegrationResponse' {} a -> s {integrationId = a} :: GetIntegrationResponse)++instance Core.AWSRequest GetIntegrationResponse where+  type+    AWSResponse GetIntegrationResponse =+      GetIntegrationResponseResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetIntegrationResponseResponse'+            Prelude.<$> (x Data..?> "contentHandlingStrategy")+            Prelude.<*> (x Data..?> "integrationResponseId")+            Prelude.<*> (x Data..?> "integrationResponseKey")+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "responseTemplates"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "templateSelectionExpression")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetIntegrationResponse where+  hashWithSalt _salt GetIntegrationResponse' {..} =+    _salt+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` integrationResponseId+      `Prelude.hashWithSalt` integrationId++instance Prelude.NFData GetIntegrationResponse where+  rnf GetIntegrationResponse' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf integrationResponseId+      `Prelude.seq` Prelude.rnf integrationId++instance Data.ToHeaders GetIntegrationResponse where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetIntegrationResponse where+  toPath GetIntegrationResponse' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/integrations/",+        Data.toBS integrationId,+        "/integrationresponses/",+        Data.toBS integrationResponseId+      ]++instance Data.ToQuery GetIntegrationResponse where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetIntegrationResponseResponse' smart constructor.+data GetIntegrationResponseResponse = GetIntegrationResponseResponse'+  { -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | The integration response ID.+    integrationResponseId :: Prelude.Maybe Prelude.Text,+    -- | The integration response key.+    integrationResponseKey :: Prelude.Maybe Prelude.Text,+    -- | A key-value map specifying response parameters that are passed to the+    -- method response from the backend. The key is a method response header+    -- parameter name and the mapped value is an integration response header+    -- value, a static value enclosed within a pair of single quotes, or a JSON+    -- expression from the integration response body. The mapping key must+    -- match the pattern of method.response.header.{name}, where name is a+    -- valid and unique header name. The mapped non-static value must match the+    -- pattern of integration.response.header.{name} or+    -- integration.response.body.{JSON-expression}, where name is a valid and+    -- unique response header name and JSON-expression is a valid JSON+    -- expression without the $ prefix.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of response templates for the integration response as a+    -- string-to-string map of key-value pairs. Response templates are+    -- represented as a key\/value map, with a content-type as the key and a+    -- template as the value.+    responseTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The template selection expressions for the integration response.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegrationResponseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentHandlingStrategy', 'getIntegrationResponseResponse_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'integrationResponseId', 'getIntegrationResponseResponse_integrationResponseId' - The integration response ID.+--+-- 'integrationResponseKey', 'getIntegrationResponseResponse_integrationResponseKey' - The integration response key.+--+-- 'responseParameters', 'getIntegrationResponseResponse_responseParameters' - A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where name is a valid and+-- unique response header name and JSON-expression is a valid JSON+-- expression without the $ prefix.+--+-- 'responseTemplates', 'getIntegrationResponseResponse_responseTemplates' - The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+--+-- 'templateSelectionExpression', 'getIntegrationResponseResponse_templateSelectionExpression' - The template selection expressions for the integration response.+--+-- 'httpStatus', 'getIntegrationResponseResponse_httpStatus' - The response's http status code.+newGetIntegrationResponseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetIntegrationResponseResponse+newGetIntegrationResponseResponse pHttpStatus_ =+  GetIntegrationResponseResponse'+    { contentHandlingStrategy =+        Prelude.Nothing,+      integrationResponseId = Prelude.Nothing,+      integrationResponseKey = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      responseTemplates = Prelude.Nothing,+      templateSelectionExpression =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+getIntegrationResponseResponse_contentHandlingStrategy :: Lens.Lens' GetIntegrationResponseResponse (Prelude.Maybe ContentHandlingStrategy)+getIntegrationResponseResponse_contentHandlingStrategy = Lens.lens (\GetIntegrationResponseResponse' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@GetIntegrationResponseResponse' {} a -> s {contentHandlingStrategy = a} :: GetIntegrationResponseResponse)++-- | The integration response ID.+getIntegrationResponseResponse_integrationResponseId :: Lens.Lens' GetIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+getIntegrationResponseResponse_integrationResponseId = Lens.lens (\GetIntegrationResponseResponse' {integrationResponseId} -> integrationResponseId) (\s@GetIntegrationResponseResponse' {} a -> s {integrationResponseId = a} :: GetIntegrationResponseResponse)++-- | The integration response key.+getIntegrationResponseResponse_integrationResponseKey :: Lens.Lens' GetIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+getIntegrationResponseResponse_integrationResponseKey = Lens.lens (\GetIntegrationResponseResponse' {integrationResponseKey} -> integrationResponseKey) (\s@GetIntegrationResponseResponse' {} a -> s {integrationResponseKey = a} :: GetIntegrationResponseResponse)++-- | A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where name is a valid and+-- unique response header name and JSON-expression is a valid JSON+-- expression without the $ prefix.+getIntegrationResponseResponse_responseParameters :: Lens.Lens' GetIntegrationResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getIntegrationResponseResponse_responseParameters = Lens.lens (\GetIntegrationResponseResponse' {responseParameters} -> responseParameters) (\s@GetIntegrationResponseResponse' {} a -> s {responseParameters = a} :: GetIntegrationResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+getIntegrationResponseResponse_responseTemplates :: Lens.Lens' GetIntegrationResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getIntegrationResponseResponse_responseTemplates = Lens.lens (\GetIntegrationResponseResponse' {responseTemplates} -> responseTemplates) (\s@GetIntegrationResponseResponse' {} a -> s {responseTemplates = a} :: GetIntegrationResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expressions for the integration response.+getIntegrationResponseResponse_templateSelectionExpression :: Lens.Lens' GetIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+getIntegrationResponseResponse_templateSelectionExpression = Lens.lens (\GetIntegrationResponseResponse' {templateSelectionExpression} -> templateSelectionExpression) (\s@GetIntegrationResponseResponse' {} a -> s {templateSelectionExpression = a} :: GetIntegrationResponseResponse)++-- | The response's http status code.+getIntegrationResponseResponse_httpStatus :: Lens.Lens' GetIntegrationResponseResponse Prelude.Int+getIntegrationResponseResponse_httpStatus = Lens.lens (\GetIntegrationResponseResponse' {httpStatus} -> httpStatus) (\s@GetIntegrationResponseResponse' {} a -> s {httpStatus = a} :: GetIntegrationResponseResponse)++instance+  Prelude.NFData+    GetIntegrationResponseResponse+  where+  rnf GetIntegrationResponseResponse' {..} =+    Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf integrationResponseId+      `Prelude.seq` Prelude.rnf integrationResponseKey+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf responseTemplates+      `Prelude.seq` Prelude.rnf templateSelectionExpression+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetIntegrationResponses.hs view
@@ -0,0 +1,256 @@+{-# 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.ApiGatewayV2.GetIntegrationResponses+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the IntegrationResponses for an Integration.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetIntegrationResponses+  ( -- * Creating a Request+    GetIntegrationResponses (..),+    newGetIntegrationResponses,++    -- * Request Lenses+    getIntegrationResponses_maxResults,+    getIntegrationResponses_nextToken,+    getIntegrationResponses_integrationId,+    getIntegrationResponses_apiId,++    -- * Destructuring the Response+    GetIntegrationResponsesResponse (..),+    newGetIntegrationResponsesResponse,++    -- * Response Lenses+    getIntegrationResponsesResponse_items,+    getIntegrationResponsesResponse_nextToken,+    getIntegrationResponsesResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetIntegrationResponses' smart constructor.+data GetIntegrationResponses = GetIntegrationResponses'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The integration ID.+    integrationId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegrationResponses' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getIntegrationResponses_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getIntegrationResponses_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'integrationId', 'getIntegrationResponses_integrationId' - The integration ID.+--+-- 'apiId', 'getIntegrationResponses_apiId' - The API identifier.+newGetIntegrationResponses ::+  -- | 'integrationId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  GetIntegrationResponses+newGetIntegrationResponses pIntegrationId_ pApiId_ =+  GetIntegrationResponses'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      integrationId = pIntegrationId_,+      apiId = pApiId_+    }++-- | The maximum number of elements to be returned for this resource.+getIntegrationResponses_maxResults :: Lens.Lens' GetIntegrationResponses (Prelude.Maybe Prelude.Text)+getIntegrationResponses_maxResults = Lens.lens (\GetIntegrationResponses' {maxResults} -> maxResults) (\s@GetIntegrationResponses' {} a -> s {maxResults = a} :: GetIntegrationResponses)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getIntegrationResponses_nextToken :: Lens.Lens' GetIntegrationResponses (Prelude.Maybe Prelude.Text)+getIntegrationResponses_nextToken = Lens.lens (\GetIntegrationResponses' {nextToken} -> nextToken) (\s@GetIntegrationResponses' {} a -> s {nextToken = a} :: GetIntegrationResponses)++-- | The integration ID.+getIntegrationResponses_integrationId :: Lens.Lens' GetIntegrationResponses Prelude.Text+getIntegrationResponses_integrationId = Lens.lens (\GetIntegrationResponses' {integrationId} -> integrationId) (\s@GetIntegrationResponses' {} a -> s {integrationId = a} :: GetIntegrationResponses)++-- | The API identifier.+getIntegrationResponses_apiId :: Lens.Lens' GetIntegrationResponses Prelude.Text+getIntegrationResponses_apiId = Lens.lens (\GetIntegrationResponses' {apiId} -> apiId) (\s@GetIntegrationResponses' {} a -> s {apiId = a} :: GetIntegrationResponses)++instance Core.AWSPager GetIntegrationResponses where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getIntegrationResponsesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getIntegrationResponsesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getIntegrationResponses_nextToken+          Lens..~ rs+          Lens.^? getIntegrationResponsesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetIntegrationResponses where+  type+    AWSResponse GetIntegrationResponses =+      GetIntegrationResponsesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetIntegrationResponsesResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetIntegrationResponses where+  hashWithSalt _salt GetIntegrationResponses' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` integrationId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetIntegrationResponses where+  rnf GetIntegrationResponses' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf integrationId+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetIntegrationResponses where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetIntegrationResponses where+  toPath GetIntegrationResponses' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/integrations/",+        Data.toBS integrationId,+        "/integrationresponses"+      ]++instance Data.ToQuery GetIntegrationResponses where+  toQuery GetIntegrationResponses' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetIntegrationResponsesResponse' smart constructor.+data GetIntegrationResponsesResponse = GetIntegrationResponsesResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [IntegrationResponse],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegrationResponsesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getIntegrationResponsesResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getIntegrationResponsesResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getIntegrationResponsesResponse_httpStatus' - The response's http status code.+newGetIntegrationResponsesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetIntegrationResponsesResponse+newGetIntegrationResponsesResponse pHttpStatus_ =+  GetIntegrationResponsesResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getIntegrationResponsesResponse_items :: Lens.Lens' GetIntegrationResponsesResponse (Prelude.Maybe [IntegrationResponse])+getIntegrationResponsesResponse_items = Lens.lens (\GetIntegrationResponsesResponse' {items} -> items) (\s@GetIntegrationResponsesResponse' {} a -> s {items = a} :: GetIntegrationResponsesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getIntegrationResponsesResponse_nextToken :: Lens.Lens' GetIntegrationResponsesResponse (Prelude.Maybe Prelude.Text)+getIntegrationResponsesResponse_nextToken = Lens.lens (\GetIntegrationResponsesResponse' {nextToken} -> nextToken) (\s@GetIntegrationResponsesResponse' {} a -> s {nextToken = a} :: GetIntegrationResponsesResponse)++-- | The response's http status code.+getIntegrationResponsesResponse_httpStatus :: Lens.Lens' GetIntegrationResponsesResponse Prelude.Int+getIntegrationResponsesResponse_httpStatus = Lens.lens (\GetIntegrationResponsesResponse' {httpStatus} -> httpStatus) (\s@GetIntegrationResponsesResponse' {} a -> s {httpStatus = a} :: GetIntegrationResponsesResponse)++instance+  Prelude.NFData+    GetIntegrationResponsesResponse+  where+  rnf GetIntegrationResponsesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetIntegrations.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetIntegrations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the Integrations for an API.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetIntegrations+  ( -- * Creating a Request+    GetIntegrations (..),+    newGetIntegrations,++    -- * Request Lenses+    getIntegrations_maxResults,+    getIntegrations_nextToken,+    getIntegrations_apiId,++    -- * Destructuring the Response+    GetIntegrationsResponse (..),+    newGetIntegrationsResponse,++    -- * Response Lenses+    getIntegrationsResponse_items,+    getIntegrationsResponse_nextToken,+    getIntegrationsResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetIntegrations' smart constructor.+data GetIntegrations = GetIntegrations'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegrations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getIntegrations_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getIntegrations_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'apiId', 'getIntegrations_apiId' - The API identifier.+newGetIntegrations ::+  -- | 'apiId'+  Prelude.Text ->+  GetIntegrations+newGetIntegrations pApiId_ =+  GetIntegrations'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      apiId = pApiId_+    }++-- | The maximum number of elements to be returned for this resource.+getIntegrations_maxResults :: Lens.Lens' GetIntegrations (Prelude.Maybe Prelude.Text)+getIntegrations_maxResults = Lens.lens (\GetIntegrations' {maxResults} -> maxResults) (\s@GetIntegrations' {} a -> s {maxResults = a} :: GetIntegrations)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getIntegrations_nextToken :: Lens.Lens' GetIntegrations (Prelude.Maybe Prelude.Text)+getIntegrations_nextToken = Lens.lens (\GetIntegrations' {nextToken} -> nextToken) (\s@GetIntegrations' {} a -> s {nextToken = a} :: GetIntegrations)++-- | The API identifier.+getIntegrations_apiId :: Lens.Lens' GetIntegrations Prelude.Text+getIntegrations_apiId = Lens.lens (\GetIntegrations' {apiId} -> apiId) (\s@GetIntegrations' {} a -> s {apiId = a} :: GetIntegrations)++instance Core.AWSPager GetIntegrations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getIntegrationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getIntegrationsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getIntegrations_nextToken+          Lens..~ rs+          Lens.^? getIntegrationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetIntegrations where+  type+    AWSResponse GetIntegrations =+      GetIntegrationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetIntegrationsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetIntegrations where+  hashWithSalt _salt GetIntegrations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetIntegrations where+  rnf GetIntegrations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetIntegrations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetIntegrations where+  toPath GetIntegrations' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/integrations"]++instance Data.ToQuery GetIntegrations where+  toQuery GetIntegrations' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetIntegrationsResponse' smart constructor.+data GetIntegrationsResponse = GetIntegrationsResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Integration],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegrationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getIntegrationsResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getIntegrationsResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getIntegrationsResponse_httpStatus' - The response's http status code.+newGetIntegrationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetIntegrationsResponse+newGetIntegrationsResponse pHttpStatus_ =+  GetIntegrationsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getIntegrationsResponse_items :: Lens.Lens' GetIntegrationsResponse (Prelude.Maybe [Integration])+getIntegrationsResponse_items = Lens.lens (\GetIntegrationsResponse' {items} -> items) (\s@GetIntegrationsResponse' {} a -> s {items = a} :: GetIntegrationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getIntegrationsResponse_nextToken :: Lens.Lens' GetIntegrationsResponse (Prelude.Maybe Prelude.Text)+getIntegrationsResponse_nextToken = Lens.lens (\GetIntegrationsResponse' {nextToken} -> nextToken) (\s@GetIntegrationsResponse' {} a -> s {nextToken = a} :: GetIntegrationsResponse)++-- | The response's http status code.+getIntegrationsResponse_httpStatus :: Lens.Lens' GetIntegrationsResponse Prelude.Int+getIntegrationsResponse_httpStatus = Lens.lens (\GetIntegrationsResponse' {httpStatus} -> httpStatus) (\s@GetIntegrationsResponse' {} a -> s {httpStatus = a} :: GetIntegrationsResponse)++instance Prelude.NFData GetIntegrationsResponse where+  rnf GetIntegrationsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetModel.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.ApiGatewayV2.GetModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a Model.+module Amazonka.ApiGatewayV2.GetModel+  ( -- * Creating a Request+    GetModel (..),+    newGetModel,++    -- * Request Lenses+    getModel_modelId,+    getModel_apiId,++    -- * Destructuring the Response+    GetModelResponse (..),+    newGetModelResponse,++    -- * Response Lenses+    getModelResponse_contentType,+    getModelResponse_description,+    getModelResponse_modelId,+    getModelResponse_name,+    getModelResponse_schema,+    getModelResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetModel' smart constructor.+data GetModel = GetModel'+  { -- | The model ID.+    modelId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'getModel_modelId' - The model ID.+--+-- 'apiId', 'getModel_apiId' - The API identifier.+newGetModel ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  GetModel+newGetModel pModelId_ pApiId_ =+  GetModel' {modelId = pModelId_, apiId = pApiId_}++-- | The model ID.+getModel_modelId :: Lens.Lens' GetModel Prelude.Text+getModel_modelId = Lens.lens (\GetModel' {modelId} -> modelId) (\s@GetModel' {} a -> s {modelId = a} :: GetModel)++-- | The API identifier.+getModel_apiId :: Lens.Lens' GetModel Prelude.Text+getModel_apiId = Lens.lens (\GetModel' {apiId} -> apiId) (\s@GetModel' {} a -> s {apiId = a} :: GetModel)++instance Core.AWSRequest GetModel where+  type AWSResponse GetModel = GetModelResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetModelResponse'+            Prelude.<$> (x Data..?> "contentType")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "modelId")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "schema")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetModel where+  hashWithSalt _salt GetModel' {..} =+    _salt+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetModel where+  rnf GetModel' {..} =+    Prelude.rnf modelId `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetModel where+  toPath GetModel' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/models/",+        Data.toBS modelId+      ]++instance Data.ToQuery GetModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetModelResponse' smart constructor.+data GetModelResponse = GetModelResponse'+  { -- | The content-type for the model, for example, \"application\/json\".+    contentType :: Prelude.Maybe Prelude.Text,+    -- | The description of the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The model identifier.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The name of the model. Must be alphanumeric.+    name :: Prelude.Maybe Prelude.Text,+    -- | The schema for the model. For application\/json models, this should be+    -- JSON schema draft 4 model.+    schema :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentType', 'getModelResponse_contentType' - The content-type for the model, for example, \"application\/json\".+--+-- 'description', 'getModelResponse_description' - The description of the model.+--+-- 'modelId', 'getModelResponse_modelId' - The model identifier.+--+-- 'name', 'getModelResponse_name' - The name of the model. Must be alphanumeric.+--+-- 'schema', 'getModelResponse_schema' - The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+--+-- 'httpStatus', 'getModelResponse_httpStatus' - The response's http status code.+newGetModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetModelResponse+newGetModelResponse pHttpStatus_ =+  GetModelResponse'+    { contentType = Prelude.Nothing,+      description = Prelude.Nothing,+      modelId = Prelude.Nothing,+      name = Prelude.Nothing,+      schema = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The content-type for the model, for example, \"application\/json\".+getModelResponse_contentType :: Lens.Lens' GetModelResponse (Prelude.Maybe Prelude.Text)+getModelResponse_contentType = Lens.lens (\GetModelResponse' {contentType} -> contentType) (\s@GetModelResponse' {} a -> s {contentType = a} :: GetModelResponse)++-- | The description of the model.+getModelResponse_description :: Lens.Lens' GetModelResponse (Prelude.Maybe Prelude.Text)+getModelResponse_description = Lens.lens (\GetModelResponse' {description} -> description) (\s@GetModelResponse' {} a -> s {description = a} :: GetModelResponse)++-- | The model identifier.+getModelResponse_modelId :: Lens.Lens' GetModelResponse (Prelude.Maybe Prelude.Text)+getModelResponse_modelId = Lens.lens (\GetModelResponse' {modelId} -> modelId) (\s@GetModelResponse' {} a -> s {modelId = a} :: GetModelResponse)++-- | The name of the model. Must be alphanumeric.+getModelResponse_name :: Lens.Lens' GetModelResponse (Prelude.Maybe Prelude.Text)+getModelResponse_name = Lens.lens (\GetModelResponse' {name} -> name) (\s@GetModelResponse' {} a -> s {name = a} :: GetModelResponse)++-- | The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+getModelResponse_schema :: Lens.Lens' GetModelResponse (Prelude.Maybe Prelude.Text)+getModelResponse_schema = Lens.lens (\GetModelResponse' {schema} -> schema) (\s@GetModelResponse' {} a -> s {schema = a} :: GetModelResponse)++-- | The response's http status code.+getModelResponse_httpStatus :: Lens.Lens' GetModelResponse Prelude.Int+getModelResponse_httpStatus = Lens.lens (\GetModelResponse' {httpStatus} -> httpStatus) (\s@GetModelResponse' {} a -> s {httpStatus = a} :: GetModelResponse)++instance Prelude.NFData GetModelResponse where+  rnf GetModelResponse' {..} =+    Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schema+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetModelTemplate.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetModelTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a model template.+module Amazonka.ApiGatewayV2.GetModelTemplate+  ( -- * Creating a Request+    GetModelTemplate (..),+    newGetModelTemplate,++    -- * Request Lenses+    getModelTemplate_modelId,+    getModelTemplate_apiId,++    -- * Destructuring the Response+    GetModelTemplateResponse (..),+    newGetModelTemplateResponse,++    -- * Response Lenses+    getModelTemplateResponse_value,+    getModelTemplateResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetModelTemplate' smart constructor.+data GetModelTemplate = GetModelTemplate'+  { -- | The model ID.+    modelId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModelTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'getModelTemplate_modelId' - The model ID.+--+-- 'apiId', 'getModelTemplate_apiId' - The API identifier.+newGetModelTemplate ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  GetModelTemplate+newGetModelTemplate pModelId_ pApiId_ =+  GetModelTemplate'+    { modelId = pModelId_,+      apiId = pApiId_+    }++-- | The model ID.+getModelTemplate_modelId :: Lens.Lens' GetModelTemplate Prelude.Text+getModelTemplate_modelId = Lens.lens (\GetModelTemplate' {modelId} -> modelId) (\s@GetModelTemplate' {} a -> s {modelId = a} :: GetModelTemplate)++-- | The API identifier.+getModelTemplate_apiId :: Lens.Lens' GetModelTemplate Prelude.Text+getModelTemplate_apiId = Lens.lens (\GetModelTemplate' {apiId} -> apiId) (\s@GetModelTemplate' {} a -> s {apiId = a} :: GetModelTemplate)++instance Core.AWSRequest GetModelTemplate where+  type+    AWSResponse GetModelTemplate =+      GetModelTemplateResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetModelTemplateResponse'+            Prelude.<$> (x Data..?> "value")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetModelTemplate where+  hashWithSalt _salt GetModelTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetModelTemplate where+  rnf GetModelTemplate' {..} =+    Prelude.rnf modelId `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetModelTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetModelTemplate where+  toPath GetModelTemplate' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/models/",+        Data.toBS modelId,+        "/template"+      ]++instance Data.ToQuery GetModelTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetModelTemplateResponse' smart constructor.+data GetModelTemplateResponse = GetModelTemplateResponse'+  { -- | The template value.+    value :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModelTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getModelTemplateResponse_value' - The template value.+--+-- 'httpStatus', 'getModelTemplateResponse_httpStatus' - The response's http status code.+newGetModelTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetModelTemplateResponse+newGetModelTemplateResponse pHttpStatus_ =+  GetModelTemplateResponse'+    { value = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The template value.+getModelTemplateResponse_value :: Lens.Lens' GetModelTemplateResponse (Prelude.Maybe Prelude.Text)+getModelTemplateResponse_value = Lens.lens (\GetModelTemplateResponse' {value} -> value) (\s@GetModelTemplateResponse' {} a -> s {value = a} :: GetModelTemplateResponse)++-- | The response's http status code.+getModelTemplateResponse_httpStatus :: Lens.Lens' GetModelTemplateResponse Prelude.Int+getModelTemplateResponse_httpStatus = Lens.lens (\GetModelTemplateResponse' {httpStatus} -> httpStatus) (\s@GetModelTemplateResponse' {} a -> s {httpStatus = a} :: GetModelTemplateResponse)++instance Prelude.NFData GetModelTemplateResponse where+  rnf GetModelTemplateResponse' {..} =+    Prelude.rnf value+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetModels.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetModels+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the Models for an API.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetModels+  ( -- * Creating a Request+    GetModels (..),+    newGetModels,++    -- * Request Lenses+    getModels_maxResults,+    getModels_nextToken,+    getModels_apiId,++    -- * Destructuring the Response+    GetModelsResponse (..),+    newGetModelsResponse,++    -- * Response Lenses+    getModelsResponse_items,+    getModelsResponse_nextToken,+    getModelsResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetModels' smart constructor.+data GetModels = GetModels'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getModels_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getModels_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'apiId', 'getModels_apiId' - The API identifier.+newGetModels ::+  -- | 'apiId'+  Prelude.Text ->+  GetModels+newGetModels pApiId_ =+  GetModels'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      apiId = pApiId_+    }++-- | The maximum number of elements to be returned for this resource.+getModels_maxResults :: Lens.Lens' GetModels (Prelude.Maybe Prelude.Text)+getModels_maxResults = Lens.lens (\GetModels' {maxResults} -> maxResults) (\s@GetModels' {} a -> s {maxResults = a} :: GetModels)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getModels_nextToken :: Lens.Lens' GetModels (Prelude.Maybe Prelude.Text)+getModels_nextToken = Lens.lens (\GetModels' {nextToken} -> nextToken) (\s@GetModels' {} a -> s {nextToken = a} :: GetModels)++-- | The API identifier.+getModels_apiId :: Lens.Lens' GetModels Prelude.Text+getModels_apiId = Lens.lens (\GetModels' {apiId} -> apiId) (\s@GetModels' {} a -> s {apiId = a} :: GetModels)++instance Core.AWSPager GetModels where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getModelsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getModelsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getModels_nextToken+          Lens..~ rs+          Lens.^? getModelsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetModels where+  type AWSResponse GetModels = GetModelsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetModelsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetModels where+  hashWithSalt _salt GetModels' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetModels where+  rnf GetModels' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetModels where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetModels where+  toPath GetModels' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/models"]++instance Data.ToQuery GetModels where+  toQuery GetModels' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetModelsResponse' smart constructor.+data GetModelsResponse = GetModelsResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Model],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getModelsResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getModelsResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getModelsResponse_httpStatus' - The response's http status code.+newGetModelsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetModelsResponse+newGetModelsResponse pHttpStatus_ =+  GetModelsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getModelsResponse_items :: Lens.Lens' GetModelsResponse (Prelude.Maybe [Model])+getModelsResponse_items = Lens.lens (\GetModelsResponse' {items} -> items) (\s@GetModelsResponse' {} a -> s {items = a} :: GetModelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getModelsResponse_nextToken :: Lens.Lens' GetModelsResponse (Prelude.Maybe Prelude.Text)+getModelsResponse_nextToken = Lens.lens (\GetModelsResponse' {nextToken} -> nextToken) (\s@GetModelsResponse' {} a -> s {nextToken = a} :: GetModelsResponse)++-- | The response's http status code.+getModelsResponse_httpStatus :: Lens.Lens' GetModelsResponse Prelude.Int+getModelsResponse_httpStatus = Lens.lens (\GetModelsResponse' {httpStatus} -> httpStatus) (\s@GetModelsResponse' {} a -> s {httpStatus = a} :: GetModelsResponse)++instance Prelude.NFData GetModelsResponse where+  rnf GetModelsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetRoute.hs view
@@ -0,0 +1,379 @@+{-# 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.ApiGatewayV2.GetRoute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a Route.+module Amazonka.ApiGatewayV2.GetRoute+  ( -- * Creating a Request+    GetRoute (..),+    newGetRoute,++    -- * Request Lenses+    getRoute_apiId,+    getRoute_routeId,++    -- * Destructuring the Response+    GetRouteResponse' (..),+    newGetRouteResponse',++    -- * Response Lenses+    getRouteResponse'_apiGatewayManaged,+    getRouteResponse'_apiKeyRequired,+    getRouteResponse'_authorizationScopes,+    getRouteResponse'_authorizationType,+    getRouteResponse'_authorizerId,+    getRouteResponse'_modelSelectionExpression,+    getRouteResponse'_operationName,+    getRouteResponse'_requestModels,+    getRouteResponse'_requestParameters,+    getRouteResponse'_routeId,+    getRouteResponse'_routeKey,+    getRouteResponse'_routeResponseSelectionExpression,+    getRouteResponse'_target,+    getRouteResponse'_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetRoute' smart constructor.+data GetRoute = GetRoute'+  { -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'getRoute_apiId' - The API identifier.+--+-- 'routeId', 'getRoute_routeId' - The route ID.+newGetRoute ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeId'+  Prelude.Text ->+  GetRoute+newGetRoute pApiId_ pRouteId_ =+  GetRoute' {apiId = pApiId_, routeId = pRouteId_}++-- | The API identifier.+getRoute_apiId :: Lens.Lens' GetRoute Prelude.Text+getRoute_apiId = Lens.lens (\GetRoute' {apiId} -> apiId) (\s@GetRoute' {} a -> s {apiId = a} :: GetRoute)++-- | The route ID.+getRoute_routeId :: Lens.Lens' GetRoute Prelude.Text+getRoute_routeId = Lens.lens (\GetRoute' {routeId} -> routeId) (\s@GetRoute' {} a -> s {routeId = a} :: GetRoute)++instance Core.AWSRequest GetRoute where+  type AWSResponse GetRoute = GetRouteResponse'+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRouteResponse''+            Prelude.<$> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "apiKeyRequired")+            Prelude.<*> ( x+                            Data..?> "authorizationScopes"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "authorizationType")+            Prelude.<*> (x Data..?> "authorizerId")+            Prelude.<*> (x Data..?> "modelSelectionExpression")+            Prelude.<*> (x Data..?> "operationName")+            Prelude.<*> (x Data..?> "requestModels" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "requestParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "routeId")+            Prelude.<*> (x Data..?> "routeKey")+            Prelude.<*> (x Data..?> "routeResponseSelectionExpression")+            Prelude.<*> (x Data..?> "target")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetRoute where+  hashWithSalt _salt GetRoute' {..} =+    _salt+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeId++instance Prelude.NFData GetRoute where+  rnf GetRoute' {..} =+    Prelude.rnf apiId `Prelude.seq` Prelude.rnf routeId++instance Data.ToHeaders GetRoute where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetRoute where+  toPath GetRoute' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId+      ]++instance Data.ToQuery GetRoute where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRouteResponse'' smart constructor.+data GetRouteResponse' = GetRouteResponse''+  { -- | Specifies whether a route is managed by API Gateway. If you created an+    -- API using quick create, the $default route is managed by API Gateway.+    -- You can\'t modify the $default route key.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether an API key is required for this route. Supported only+    -- for WebSocket APIs.+    apiKeyRequired :: Prelude.Maybe Prelude.Bool,+    -- | A list of authorization scopes configured on a route. The scopes are+    -- used with a JWT authorizer to authorize the method invocation. The+    -- authorization works by matching the route scopes against the scopes+    -- parsed from the access token in the incoming request. The method+    -- invocation is authorized if any route scope matches a claimed scope in+    -- the access token. Otherwise, the invocation is not authorized. When the+    -- route scope is configured, the client must provide an access token+    -- instead of an identity token for authorization purposes.+    authorizationScopes :: Prelude.Maybe [Prelude.Text],+    -- | The authorization type for the route. For WebSocket APIs, valid values+    -- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+    -- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+    -- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+    -- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+    authorizationType :: Prelude.Maybe AuthorizationType,+    -- | The identifier of the Authorizer resource to be associated with this+    -- route. The authorizer identifier is generated by API Gateway when you+    -- created the authorizer.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | The model selection expression for the route. Supported only for+    -- WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The operation name for the route.+    operationName :: Prelude.Maybe Prelude.Text,+    -- | The request models for the route. Supported only for WebSocket APIs.+    requestModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The request parameters for the route. Supported only for WebSocket APIs.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | The route ID.+    routeId :: Prelude.Maybe Prelude.Text,+    -- | The route key for the route.+    routeKey :: Prelude.Maybe Prelude.Text,+    -- | The route response selection expression for the route. Supported only+    -- for WebSocket APIs.+    routeResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The target for the route.+    target :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRouteResponse'' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayManaged', 'getRouteResponse'_apiGatewayManaged' - Specifies whether a route is managed by API Gateway. If you created an+-- API using quick create, the $default route is managed by API Gateway.+-- You can\'t modify the $default route key.+--+-- 'apiKeyRequired', 'getRouteResponse'_apiKeyRequired' - Specifies whether an API key is required for this route. Supported only+-- for WebSocket APIs.+--+-- 'authorizationScopes', 'getRouteResponse'_authorizationScopes' - A list of authorization scopes configured on a route. The scopes are+-- used with a JWT authorizer to authorize the method invocation. The+-- authorization works by matching the route scopes against the scopes+-- parsed from the access token in the incoming request. The method+-- invocation is authorized if any route scope matches a claimed scope in+-- the access token. Otherwise, the invocation is not authorized. When the+-- route scope is configured, the client must provide an access token+-- instead of an identity token for authorization purposes.+--+-- 'authorizationType', 'getRouteResponse'_authorizationType' - The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+--+-- 'authorizerId', 'getRouteResponse'_authorizerId' - The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+--+-- 'modelSelectionExpression', 'getRouteResponse'_modelSelectionExpression' - The model selection expression for the route. Supported only for+-- WebSocket APIs.+--+-- 'operationName', 'getRouteResponse'_operationName' - The operation name for the route.+--+-- 'requestModels', 'getRouteResponse'_requestModels' - The request models for the route. Supported only for WebSocket APIs.+--+-- 'requestParameters', 'getRouteResponse'_requestParameters' - The request parameters for the route. Supported only for WebSocket APIs.+--+-- 'routeId', 'getRouteResponse'_routeId' - The route ID.+--+-- 'routeKey', 'getRouteResponse'_routeKey' - The route key for the route.+--+-- 'routeResponseSelectionExpression', 'getRouteResponse'_routeResponseSelectionExpression' - The route response selection expression for the route. Supported only+-- for WebSocket APIs.+--+-- 'target', 'getRouteResponse'_target' - The target for the route.+--+-- 'httpStatus', 'getRouteResponse'_httpStatus' - The response's http status code.+newGetRouteResponse' ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetRouteResponse'+newGetRouteResponse' pHttpStatus_ =+  GetRouteResponse''+    { apiGatewayManaged =+        Prelude.Nothing,+      apiKeyRequired = Prelude.Nothing,+      authorizationScopes = Prelude.Nothing,+      authorizationType = Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      modelSelectionExpression = Prelude.Nothing,+      operationName = Prelude.Nothing,+      requestModels = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      routeId = Prelude.Nothing,+      routeKey = Prelude.Nothing,+      routeResponseSelectionExpression = Prelude.Nothing,+      target = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether a route is managed by API Gateway. If you created an+-- API using quick create, the $default route is managed by API Gateway.+-- You can\'t modify the $default route key.+getRouteResponse'_apiGatewayManaged :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Bool)+getRouteResponse'_apiGatewayManaged = Lens.lens (\GetRouteResponse'' {apiGatewayManaged} -> apiGatewayManaged) (\s@GetRouteResponse'' {} a -> s {apiGatewayManaged = a} :: GetRouteResponse')++-- | Specifies whether an API key is required for this route. Supported only+-- for WebSocket APIs.+getRouteResponse'_apiKeyRequired :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Bool)+getRouteResponse'_apiKeyRequired = Lens.lens (\GetRouteResponse'' {apiKeyRequired} -> apiKeyRequired) (\s@GetRouteResponse'' {} a -> s {apiKeyRequired = a} :: GetRouteResponse')++-- | A list of authorization scopes configured on a route. The scopes are+-- used with a JWT authorizer to authorize the method invocation. The+-- authorization works by matching the route scopes against the scopes+-- parsed from the access token in the incoming request. The method+-- invocation is authorized if any route scope matches a claimed scope in+-- the access token. Otherwise, the invocation is not authorized. When the+-- route scope is configured, the client must provide an access token+-- instead of an identity token for authorization purposes.+getRouteResponse'_authorizationScopes :: Lens.Lens' GetRouteResponse' (Prelude.Maybe [Prelude.Text])+getRouteResponse'_authorizationScopes = Lens.lens (\GetRouteResponse'' {authorizationScopes} -> authorizationScopes) (\s@GetRouteResponse'' {} a -> s {authorizationScopes = a} :: GetRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+getRouteResponse'_authorizationType :: Lens.Lens' GetRouteResponse' (Prelude.Maybe AuthorizationType)+getRouteResponse'_authorizationType = Lens.lens (\GetRouteResponse'' {authorizationType} -> authorizationType) (\s@GetRouteResponse'' {} a -> s {authorizationType = a} :: GetRouteResponse')++-- | The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+getRouteResponse'_authorizerId :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Text)+getRouteResponse'_authorizerId = Lens.lens (\GetRouteResponse'' {authorizerId} -> authorizerId) (\s@GetRouteResponse'' {} a -> s {authorizerId = a} :: GetRouteResponse')++-- | The model selection expression for the route. Supported only for+-- WebSocket APIs.+getRouteResponse'_modelSelectionExpression :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Text)+getRouteResponse'_modelSelectionExpression = Lens.lens (\GetRouteResponse'' {modelSelectionExpression} -> modelSelectionExpression) (\s@GetRouteResponse'' {} a -> s {modelSelectionExpression = a} :: GetRouteResponse')++-- | The operation name for the route.+getRouteResponse'_operationName :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Text)+getRouteResponse'_operationName = Lens.lens (\GetRouteResponse'' {operationName} -> operationName) (\s@GetRouteResponse'' {} a -> s {operationName = a} :: GetRouteResponse')++-- | The request models for the route. Supported only for WebSocket APIs.+getRouteResponse'_requestModels :: Lens.Lens' GetRouteResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getRouteResponse'_requestModels = Lens.lens (\GetRouteResponse'' {requestModels} -> requestModels) (\s@GetRouteResponse'' {} a -> s {requestModels = a} :: GetRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The request parameters for the route. Supported only for WebSocket APIs.+getRouteResponse'_requestParameters :: Lens.Lens' GetRouteResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+getRouteResponse'_requestParameters = Lens.lens (\GetRouteResponse'' {requestParameters} -> requestParameters) (\s@GetRouteResponse'' {} a -> s {requestParameters = a} :: GetRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The route ID.+getRouteResponse'_routeId :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Text)+getRouteResponse'_routeId = Lens.lens (\GetRouteResponse'' {routeId} -> routeId) (\s@GetRouteResponse'' {} a -> s {routeId = a} :: GetRouteResponse')++-- | The route key for the route.+getRouteResponse'_routeKey :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Text)+getRouteResponse'_routeKey = Lens.lens (\GetRouteResponse'' {routeKey} -> routeKey) (\s@GetRouteResponse'' {} a -> s {routeKey = a} :: GetRouteResponse')++-- | The route response selection expression for the route. Supported only+-- for WebSocket APIs.+getRouteResponse'_routeResponseSelectionExpression :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Text)+getRouteResponse'_routeResponseSelectionExpression = Lens.lens (\GetRouteResponse'' {routeResponseSelectionExpression} -> routeResponseSelectionExpression) (\s@GetRouteResponse'' {} a -> s {routeResponseSelectionExpression = a} :: GetRouteResponse')++-- | The target for the route.+getRouteResponse'_target :: Lens.Lens' GetRouteResponse' (Prelude.Maybe Prelude.Text)+getRouteResponse'_target = Lens.lens (\GetRouteResponse'' {target} -> target) (\s@GetRouteResponse'' {} a -> s {target = a} :: GetRouteResponse')++-- | The response's http status code.+getRouteResponse'_httpStatus :: Lens.Lens' GetRouteResponse' Prelude.Int+getRouteResponse'_httpStatus = Lens.lens (\GetRouteResponse'' {httpStatus} -> httpStatus) (\s@GetRouteResponse'' {} a -> s {httpStatus = a} :: GetRouteResponse')++instance Prelude.NFData GetRouteResponse' where+  rnf GetRouteResponse'' {..} =+    Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiKeyRequired+      `Prelude.seq` Prelude.rnf authorizationScopes+      `Prelude.seq` Prelude.rnf authorizationType+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf operationName+      `Prelude.seq` Prelude.rnf requestModels+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf routeId+      `Prelude.seq` Prelude.rnf routeKey+      `Prelude.seq` Prelude.rnf routeResponseSelectionExpression+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetRouteResponse.hs view
@@ -0,0 +1,255 @@+{-# 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.ApiGatewayV2.GetRouteResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a RouteResponse.+module Amazonka.ApiGatewayV2.GetRouteResponse+  ( -- * Creating a Request+    GetRouteResponse (..),+    newGetRouteResponse,++    -- * Request Lenses+    getRouteResponse_routeResponseId,+    getRouteResponse_apiId,+    getRouteResponse_routeId,++    -- * Destructuring the Response+    GetRouteResponseResponse (..),+    newGetRouteResponseResponse,++    -- * Response Lenses+    getRouteResponseResponse_modelSelectionExpression,+    getRouteResponseResponse_responseModels,+    getRouteResponseResponse_responseParameters,+    getRouteResponseResponse_routeResponseId,+    getRouteResponseResponse_routeResponseKey,+    getRouteResponseResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetRouteResponse' smart constructor.+data GetRouteResponse = GetRouteResponse'+  { -- | The route response ID.+    routeResponseId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'routeResponseId', 'getRouteResponse_routeResponseId' - The route response ID.+--+-- 'apiId', 'getRouteResponse_apiId' - The API identifier.+--+-- 'routeId', 'getRouteResponse_routeId' - The route ID.+newGetRouteResponse ::+  -- | 'routeResponseId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeId'+  Prelude.Text ->+  GetRouteResponse+newGetRouteResponse+  pRouteResponseId_+  pApiId_+  pRouteId_ =+    GetRouteResponse'+      { routeResponseId =+          pRouteResponseId_,+        apiId = pApiId_,+        routeId = pRouteId_+      }++-- | The route response ID.+getRouteResponse_routeResponseId :: Lens.Lens' GetRouteResponse Prelude.Text+getRouteResponse_routeResponseId = Lens.lens (\GetRouteResponse' {routeResponseId} -> routeResponseId) (\s@GetRouteResponse' {} a -> s {routeResponseId = a} :: GetRouteResponse)++-- | The API identifier.+getRouteResponse_apiId :: Lens.Lens' GetRouteResponse Prelude.Text+getRouteResponse_apiId = Lens.lens (\GetRouteResponse' {apiId} -> apiId) (\s@GetRouteResponse' {} a -> s {apiId = a} :: GetRouteResponse)++-- | The route ID.+getRouteResponse_routeId :: Lens.Lens' GetRouteResponse Prelude.Text+getRouteResponse_routeId = Lens.lens (\GetRouteResponse' {routeId} -> routeId) (\s@GetRouteResponse' {} a -> s {routeId = a} :: GetRouteResponse)++instance Core.AWSRequest GetRouteResponse where+  type+    AWSResponse GetRouteResponse =+      GetRouteResponseResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRouteResponseResponse'+            Prelude.<$> (x Data..?> "modelSelectionExpression")+            Prelude.<*> (x Data..?> "responseModels" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "routeResponseId")+            Prelude.<*> (x Data..?> "routeResponseKey")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetRouteResponse where+  hashWithSalt _salt GetRouteResponse' {..} =+    _salt+      `Prelude.hashWithSalt` routeResponseId+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeId++instance Prelude.NFData GetRouteResponse where+  rnf GetRouteResponse' {..} =+    Prelude.rnf routeResponseId+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf routeId++instance Data.ToHeaders GetRouteResponse where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetRouteResponse where+  toPath GetRouteResponse' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId,+        "/routeresponses/",+        Data.toBS routeResponseId+      ]++instance Data.ToQuery GetRouteResponse where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRouteResponseResponse' smart constructor.+data GetRouteResponseResponse = GetRouteResponseResponse'+  { -- | Represents the model selection expression of a route response. Supported+    -- only for WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the response models of a route response.+    responseModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents the response parameters of a route response.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | Represents the identifier of a route response.+    routeResponseId :: Prelude.Maybe Prelude.Text,+    -- | Represents the route response key of a route response.+    routeResponseKey :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRouteResponseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelSelectionExpression', 'getRouteResponseResponse_modelSelectionExpression' - Represents the model selection expression of a route response. Supported+-- only for WebSocket APIs.+--+-- 'responseModels', 'getRouteResponseResponse_responseModels' - Represents the response models of a route response.+--+-- 'responseParameters', 'getRouteResponseResponse_responseParameters' - Represents the response parameters of a route response.+--+-- 'routeResponseId', 'getRouteResponseResponse_routeResponseId' - Represents the identifier of a route response.+--+-- 'routeResponseKey', 'getRouteResponseResponse_routeResponseKey' - Represents the route response key of a route response.+--+-- 'httpStatus', 'getRouteResponseResponse_httpStatus' - The response's http status code.+newGetRouteResponseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetRouteResponseResponse+newGetRouteResponseResponse pHttpStatus_ =+  GetRouteResponseResponse'+    { modelSelectionExpression =+        Prelude.Nothing,+      responseModels = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      routeResponseId = Prelude.Nothing,+      routeResponseKey = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Represents the model selection expression of a route response. Supported+-- only for WebSocket APIs.+getRouteResponseResponse_modelSelectionExpression :: Lens.Lens' GetRouteResponseResponse (Prelude.Maybe Prelude.Text)+getRouteResponseResponse_modelSelectionExpression = Lens.lens (\GetRouteResponseResponse' {modelSelectionExpression} -> modelSelectionExpression) (\s@GetRouteResponseResponse' {} a -> s {modelSelectionExpression = a} :: GetRouteResponseResponse)++-- | Represents the response models of a route response.+getRouteResponseResponse_responseModels :: Lens.Lens' GetRouteResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getRouteResponseResponse_responseModels = Lens.lens (\GetRouteResponseResponse' {responseModels} -> responseModels) (\s@GetRouteResponseResponse' {} a -> s {responseModels = a} :: GetRouteResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents the response parameters of a route response.+getRouteResponseResponse_responseParameters :: Lens.Lens' GetRouteResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+getRouteResponseResponse_responseParameters = Lens.lens (\GetRouteResponseResponse' {responseParameters} -> responseParameters) (\s@GetRouteResponseResponse' {} a -> s {responseParameters = a} :: GetRouteResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents the identifier of a route response.+getRouteResponseResponse_routeResponseId :: Lens.Lens' GetRouteResponseResponse (Prelude.Maybe Prelude.Text)+getRouteResponseResponse_routeResponseId = Lens.lens (\GetRouteResponseResponse' {routeResponseId} -> routeResponseId) (\s@GetRouteResponseResponse' {} a -> s {routeResponseId = a} :: GetRouteResponseResponse)++-- | Represents the route response key of a route response.+getRouteResponseResponse_routeResponseKey :: Lens.Lens' GetRouteResponseResponse (Prelude.Maybe Prelude.Text)+getRouteResponseResponse_routeResponseKey = Lens.lens (\GetRouteResponseResponse' {routeResponseKey} -> routeResponseKey) (\s@GetRouteResponseResponse' {} a -> s {routeResponseKey = a} :: GetRouteResponseResponse)++-- | The response's http status code.+getRouteResponseResponse_httpStatus :: Lens.Lens' GetRouteResponseResponse Prelude.Int+getRouteResponseResponse_httpStatus = Lens.lens (\GetRouteResponseResponse' {httpStatus} -> httpStatus) (\s@GetRouteResponseResponse' {} a -> s {httpStatus = a} :: GetRouteResponseResponse)++instance Prelude.NFData GetRouteResponseResponse where+  rnf GetRouteResponseResponse' {..} =+    Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf responseModels+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf routeResponseId+      `Prelude.seq` Prelude.rnf routeResponseKey+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetRouteResponses.hs view
@@ -0,0 +1,251 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetRouteResponses+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the RouteResponses for a Route.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetRouteResponses+  ( -- * Creating a Request+    GetRouteResponses (..),+    newGetRouteResponses,++    -- * Request Lenses+    getRouteResponses_maxResults,+    getRouteResponses_nextToken,+    getRouteResponses_routeId,+    getRouteResponses_apiId,++    -- * Destructuring the Response+    GetRouteResponsesResponse (..),+    newGetRouteResponsesResponse,++    -- * Response Lenses+    getRouteResponsesResponse_items,+    getRouteResponsesResponse_nextToken,+    getRouteResponsesResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetRouteResponses' smart constructor.+data GetRouteResponses = GetRouteResponses'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRouteResponses' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getRouteResponses_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getRouteResponses_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'routeId', 'getRouteResponses_routeId' - The route ID.+--+-- 'apiId', 'getRouteResponses_apiId' - The API identifier.+newGetRouteResponses ::+  -- | 'routeId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  GetRouteResponses+newGetRouteResponses pRouteId_ pApiId_ =+  GetRouteResponses'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      routeId = pRouteId_,+      apiId = pApiId_+    }++-- | The maximum number of elements to be returned for this resource.+getRouteResponses_maxResults :: Lens.Lens' GetRouteResponses (Prelude.Maybe Prelude.Text)+getRouteResponses_maxResults = Lens.lens (\GetRouteResponses' {maxResults} -> maxResults) (\s@GetRouteResponses' {} a -> s {maxResults = a} :: GetRouteResponses)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getRouteResponses_nextToken :: Lens.Lens' GetRouteResponses (Prelude.Maybe Prelude.Text)+getRouteResponses_nextToken = Lens.lens (\GetRouteResponses' {nextToken} -> nextToken) (\s@GetRouteResponses' {} a -> s {nextToken = a} :: GetRouteResponses)++-- | The route ID.+getRouteResponses_routeId :: Lens.Lens' GetRouteResponses Prelude.Text+getRouteResponses_routeId = Lens.lens (\GetRouteResponses' {routeId} -> routeId) (\s@GetRouteResponses' {} a -> s {routeId = a} :: GetRouteResponses)++-- | The API identifier.+getRouteResponses_apiId :: Lens.Lens' GetRouteResponses Prelude.Text+getRouteResponses_apiId = Lens.lens (\GetRouteResponses' {apiId} -> apiId) (\s@GetRouteResponses' {} a -> s {apiId = a} :: GetRouteResponses)++instance Core.AWSPager GetRouteResponses where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getRouteResponsesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getRouteResponsesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getRouteResponses_nextToken+          Lens..~ rs+          Lens.^? getRouteResponsesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetRouteResponses where+  type+    AWSResponse GetRouteResponses =+      GetRouteResponsesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRouteResponsesResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetRouteResponses where+  hashWithSalt _salt GetRouteResponses' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` routeId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetRouteResponses where+  rnf GetRouteResponses' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf routeId+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetRouteResponses where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetRouteResponses where+  toPath GetRouteResponses' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId,+        "/routeresponses"+      ]++instance Data.ToQuery GetRouteResponses where+  toQuery GetRouteResponses' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetRouteResponsesResponse' smart constructor.+data GetRouteResponsesResponse = GetRouteResponsesResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [RouteResponse],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRouteResponsesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getRouteResponsesResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getRouteResponsesResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getRouteResponsesResponse_httpStatus' - The response's http status code.+newGetRouteResponsesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetRouteResponsesResponse+newGetRouteResponsesResponse pHttpStatus_ =+  GetRouteResponsesResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getRouteResponsesResponse_items :: Lens.Lens' GetRouteResponsesResponse (Prelude.Maybe [RouteResponse])+getRouteResponsesResponse_items = Lens.lens (\GetRouteResponsesResponse' {items} -> items) (\s@GetRouteResponsesResponse' {} a -> s {items = a} :: GetRouteResponsesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getRouteResponsesResponse_nextToken :: Lens.Lens' GetRouteResponsesResponse (Prelude.Maybe Prelude.Text)+getRouteResponsesResponse_nextToken = Lens.lens (\GetRouteResponsesResponse' {nextToken} -> nextToken) (\s@GetRouteResponsesResponse' {} a -> s {nextToken = a} :: GetRouteResponsesResponse)++-- | The response's http status code.+getRouteResponsesResponse_httpStatus :: Lens.Lens' GetRouteResponsesResponse Prelude.Int+getRouteResponsesResponse_httpStatus = Lens.lens (\GetRouteResponsesResponse' {httpStatus} -> httpStatus) (\s@GetRouteResponsesResponse' {} a -> s {httpStatus = a} :: GetRouteResponsesResponse)++instance Prelude.NFData GetRouteResponsesResponse where+  rnf GetRouteResponsesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetRoutes.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetRoutes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the Routes for an API.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetRoutes+  ( -- * Creating a Request+    GetRoutes (..),+    newGetRoutes,++    -- * Request Lenses+    getRoutes_maxResults,+    getRoutes_nextToken,+    getRoutes_apiId,++    -- * Destructuring the Response+    GetRoutesResponse (..),+    newGetRoutesResponse,++    -- * Response Lenses+    getRoutesResponse_items,+    getRoutesResponse_nextToken,+    getRoutesResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetRoutes' smart constructor.+data GetRoutes = GetRoutes'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRoutes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getRoutes_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getRoutes_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'apiId', 'getRoutes_apiId' - The API identifier.+newGetRoutes ::+  -- | 'apiId'+  Prelude.Text ->+  GetRoutes+newGetRoutes pApiId_ =+  GetRoutes'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      apiId = pApiId_+    }++-- | The maximum number of elements to be returned for this resource.+getRoutes_maxResults :: Lens.Lens' GetRoutes (Prelude.Maybe Prelude.Text)+getRoutes_maxResults = Lens.lens (\GetRoutes' {maxResults} -> maxResults) (\s@GetRoutes' {} a -> s {maxResults = a} :: GetRoutes)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getRoutes_nextToken :: Lens.Lens' GetRoutes (Prelude.Maybe Prelude.Text)+getRoutes_nextToken = Lens.lens (\GetRoutes' {nextToken} -> nextToken) (\s@GetRoutes' {} a -> s {nextToken = a} :: GetRoutes)++-- | The API identifier.+getRoutes_apiId :: Lens.Lens' GetRoutes Prelude.Text+getRoutes_apiId = Lens.lens (\GetRoutes' {apiId} -> apiId) (\s@GetRoutes' {} a -> s {apiId = a} :: GetRoutes)++instance Core.AWSPager GetRoutes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getRoutesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getRoutesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getRoutes_nextToken+          Lens..~ rs+          Lens.^? getRoutesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetRoutes where+  type AWSResponse GetRoutes = GetRoutesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRoutesResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetRoutes where+  hashWithSalt _salt GetRoutes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetRoutes where+  rnf GetRoutes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetRoutes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetRoutes where+  toPath GetRoutes' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/routes"]++instance Data.ToQuery GetRoutes where+  toQuery GetRoutes' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetRoutesResponse' smart constructor.+data GetRoutesResponse = GetRoutesResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Route],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRoutesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getRoutesResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getRoutesResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getRoutesResponse_httpStatus' - The response's http status code.+newGetRoutesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetRoutesResponse+newGetRoutesResponse pHttpStatus_ =+  GetRoutesResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getRoutesResponse_items :: Lens.Lens' GetRoutesResponse (Prelude.Maybe [Route])+getRoutesResponse_items = Lens.lens (\GetRoutesResponse' {items} -> items) (\s@GetRoutesResponse' {} a -> s {items = a} :: GetRoutesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getRoutesResponse_nextToken :: Lens.Lens' GetRoutesResponse (Prelude.Maybe Prelude.Text)+getRoutesResponse_nextToken = Lens.lens (\GetRoutesResponse' {nextToken} -> nextToken) (\s@GetRoutesResponse' {} a -> s {nextToken = a} :: GetRoutesResponse)++-- | The response's http status code.+getRoutesResponse_httpStatus :: Lens.Lens' GetRoutesResponse Prelude.Int+getRoutesResponse_httpStatus = Lens.lens (\GetRoutesResponse' {httpStatus} -> httpStatus) (\s@GetRoutesResponse' {} a -> s {httpStatus = a} :: GetRoutesResponse)++instance Prelude.NFData GetRoutesResponse where+  rnf GetRoutesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetStage.hs view
@@ -0,0 +1,362 @@+{-# 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.ApiGatewayV2.GetStage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a Stage.+module Amazonka.ApiGatewayV2.GetStage+  ( -- * Creating a Request+    GetStage (..),+    newGetStage,++    -- * Request Lenses+    getStage_stageName,+    getStage_apiId,++    -- * Destructuring the Response+    GetStageResponse (..),+    newGetStageResponse,++    -- * Response Lenses+    getStageResponse_accessLogSettings,+    getStageResponse_apiGatewayManaged,+    getStageResponse_autoDeploy,+    getStageResponse_clientCertificateId,+    getStageResponse_createdDate,+    getStageResponse_defaultRouteSettings,+    getStageResponse_deploymentId,+    getStageResponse_description,+    getStageResponse_lastDeploymentStatusMessage,+    getStageResponse_lastUpdatedDate,+    getStageResponse_routeSettings,+    getStageResponse_stageName,+    getStageResponse_stageVariables,+    getStageResponse_tags,+    getStageResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetStage' smart constructor.+data GetStage = GetStage'+  { -- | The stage name. Stage names can only contain alphanumeric characters,+    -- hyphens, and underscores. Maximum length is 128 characters.+    stageName :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stageName', 'getStage_stageName' - The stage name. Stage names can only contain alphanumeric characters,+-- hyphens, and underscores. Maximum length is 128 characters.+--+-- 'apiId', 'getStage_apiId' - The API identifier.+newGetStage ::+  -- | 'stageName'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  GetStage+newGetStage pStageName_ pApiId_ =+  GetStage' {stageName = pStageName_, apiId = pApiId_}++-- | The stage name. Stage names can only contain alphanumeric characters,+-- hyphens, and underscores. Maximum length is 128 characters.+getStage_stageName :: Lens.Lens' GetStage Prelude.Text+getStage_stageName = Lens.lens (\GetStage' {stageName} -> stageName) (\s@GetStage' {} a -> s {stageName = a} :: GetStage)++-- | The API identifier.+getStage_apiId :: Lens.Lens' GetStage Prelude.Text+getStage_apiId = Lens.lens (\GetStage' {apiId} -> apiId) (\s@GetStage' {} a -> s {apiId = a} :: GetStage)++instance Core.AWSRequest GetStage where+  type AWSResponse GetStage = GetStageResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStageResponse'+            Prelude.<$> (x Data..?> "accessLogSettings")+            Prelude.<*> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "autoDeploy")+            Prelude.<*> (x Data..?> "clientCertificateId")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "defaultRouteSettings")+            Prelude.<*> (x Data..?> "deploymentId")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "lastDeploymentStatusMessage")+            Prelude.<*> (x Data..?> "lastUpdatedDate")+            Prelude.<*> (x Data..?> "routeSettings" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "stageName")+            Prelude.<*> (x Data..?> "stageVariables" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetStage where+  hashWithSalt _salt GetStage' {..} =+    _salt+      `Prelude.hashWithSalt` stageName+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetStage where+  rnf GetStage' {..} =+    Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetStage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStage where+  toPath GetStage' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/stages/",+        Data.toBS stageName+      ]++instance Data.ToQuery GetStage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStageResponse' smart constructor.+data GetStageResponse = GetStageResponse'+  { -- | Settings for logging access in this stage.+    accessLogSettings :: Prelude.Maybe AccessLogSettings,+    -- | Specifies whether a stage is managed by API Gateway. If you created an+    -- API using quick create, the $default stage is managed by API Gateway.+    -- You can\'t modify the $default stage.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether updates to an API automatically trigger a new+    -- deployment. The default value is false.+    autoDeploy :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of a client certificate for a Stage. Supported only for+    -- WebSocket APIs.+    clientCertificateId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the stage was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | Default route settings for the stage.+    defaultRouteSettings :: Prelude.Maybe RouteSettings,+    -- | The identifier of the Deployment that the Stage is associated with.+    -- Can\'t be updated if autoDeploy is enabled.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The description of the stage.+    description :: Prelude.Maybe Prelude.Text,+    -- | Describes the status of the last deployment of a stage. Supported only+    -- for stages with autoDeploy enabled.+    lastDeploymentStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the stage was last updated.+    lastUpdatedDate :: Prelude.Maybe Data.ISO8601,+    -- | Route settings for the stage, by routeKey.+    routeSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings),+    -- | The name of the stage.+    stageName :: Prelude.Maybe Prelude.Text,+    -- | A map that defines the stage variables for a stage resource. Variable+    -- names can have alphanumeric and underscore characters, and the values+    -- must match [A-Za-z0-9-._~:\/?#&=,]+.+    stageVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of tags. Each tag element is associated with a given+    -- resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessLogSettings', 'getStageResponse_accessLogSettings' - Settings for logging access in this stage.+--+-- 'apiGatewayManaged', 'getStageResponse_apiGatewayManaged' - Specifies whether a stage is managed by API Gateway. If you created an+-- API using quick create, the $default stage is managed by API Gateway.+-- You can\'t modify the $default stage.+--+-- 'autoDeploy', 'getStageResponse_autoDeploy' - Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+--+-- 'clientCertificateId', 'getStageResponse_clientCertificateId' - The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+--+-- 'createdDate', 'getStageResponse_createdDate' - The timestamp when the stage was created.+--+-- 'defaultRouteSettings', 'getStageResponse_defaultRouteSettings' - Default route settings for the stage.+--+-- 'deploymentId', 'getStageResponse_deploymentId' - The identifier of the Deployment that the Stage is associated with.+-- Can\'t be updated if autoDeploy is enabled.+--+-- 'description', 'getStageResponse_description' - The description of the stage.+--+-- 'lastDeploymentStatusMessage', 'getStageResponse_lastDeploymentStatusMessage' - Describes the status of the last deployment of a stage. Supported only+-- for stages with autoDeploy enabled.+--+-- 'lastUpdatedDate', 'getStageResponse_lastUpdatedDate' - The timestamp when the stage was last updated.+--+-- 'routeSettings', 'getStageResponse_routeSettings' - Route settings for the stage, by routeKey.+--+-- 'stageName', 'getStageResponse_stageName' - The name of the stage.+--+-- 'stageVariables', 'getStageResponse_stageVariables' - A map that defines the stage variables for a stage resource. Variable+-- names can have alphanumeric and underscore characters, and the values+-- must match [A-Za-z0-9-._~:\/?#&=,]+.+--+-- 'tags', 'getStageResponse_tags' - The collection of tags. Each tag element is associated with a given+-- resource.+--+-- 'httpStatus', 'getStageResponse_httpStatus' - The response's http status code.+newGetStageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetStageResponse+newGetStageResponse pHttpStatus_ =+  GetStageResponse'+    { accessLogSettings =+        Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      autoDeploy = Prelude.Nothing,+      clientCertificateId = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      defaultRouteSettings = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      description = Prelude.Nothing,+      lastDeploymentStatusMessage = Prelude.Nothing,+      lastUpdatedDate = Prelude.Nothing,+      routeSettings = Prelude.Nothing,+      stageName = Prelude.Nothing,+      stageVariables = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Settings for logging access in this stage.+getStageResponse_accessLogSettings :: Lens.Lens' GetStageResponse (Prelude.Maybe AccessLogSettings)+getStageResponse_accessLogSettings = Lens.lens (\GetStageResponse' {accessLogSettings} -> accessLogSettings) (\s@GetStageResponse' {} a -> s {accessLogSettings = a} :: GetStageResponse)++-- | Specifies whether a stage is managed by API Gateway. If you created an+-- API using quick create, the $default stage is managed by API Gateway.+-- You can\'t modify the $default stage.+getStageResponse_apiGatewayManaged :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Bool)+getStageResponse_apiGatewayManaged = Lens.lens (\GetStageResponse' {apiGatewayManaged} -> apiGatewayManaged) (\s@GetStageResponse' {} a -> s {apiGatewayManaged = a} :: GetStageResponse)++-- | Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+getStageResponse_autoDeploy :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Bool)+getStageResponse_autoDeploy = Lens.lens (\GetStageResponse' {autoDeploy} -> autoDeploy) (\s@GetStageResponse' {} a -> s {autoDeploy = a} :: GetStageResponse)++-- | The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+getStageResponse_clientCertificateId :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)+getStageResponse_clientCertificateId = Lens.lens (\GetStageResponse' {clientCertificateId} -> clientCertificateId) (\s@GetStageResponse' {} a -> s {clientCertificateId = a} :: GetStageResponse)++-- | The timestamp when the stage was created.+getStageResponse_createdDate :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.UTCTime)+getStageResponse_createdDate = Lens.lens (\GetStageResponse' {createdDate} -> createdDate) (\s@GetStageResponse' {} a -> s {createdDate = a} :: GetStageResponse) Prelude.. Lens.mapping Data._Time++-- | Default route settings for the stage.+getStageResponse_defaultRouteSettings :: Lens.Lens' GetStageResponse (Prelude.Maybe RouteSettings)+getStageResponse_defaultRouteSettings = Lens.lens (\GetStageResponse' {defaultRouteSettings} -> defaultRouteSettings) (\s@GetStageResponse' {} a -> s {defaultRouteSettings = a} :: GetStageResponse)++-- | The identifier of the Deployment that the Stage is associated with.+-- Can\'t be updated if autoDeploy is enabled.+getStageResponse_deploymentId :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)+getStageResponse_deploymentId = Lens.lens (\GetStageResponse' {deploymentId} -> deploymentId) (\s@GetStageResponse' {} a -> s {deploymentId = a} :: GetStageResponse)++-- | The description of the stage.+getStageResponse_description :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)+getStageResponse_description = Lens.lens (\GetStageResponse' {description} -> description) (\s@GetStageResponse' {} a -> s {description = a} :: GetStageResponse)++-- | Describes the status of the last deployment of a stage. Supported only+-- for stages with autoDeploy enabled.+getStageResponse_lastDeploymentStatusMessage :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)+getStageResponse_lastDeploymentStatusMessage = Lens.lens (\GetStageResponse' {lastDeploymentStatusMessage} -> lastDeploymentStatusMessage) (\s@GetStageResponse' {} a -> s {lastDeploymentStatusMessage = a} :: GetStageResponse)++-- | The timestamp when the stage was last updated.+getStageResponse_lastUpdatedDate :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.UTCTime)+getStageResponse_lastUpdatedDate = Lens.lens (\GetStageResponse' {lastUpdatedDate} -> lastUpdatedDate) (\s@GetStageResponse' {} a -> s {lastUpdatedDate = a} :: GetStageResponse) Prelude.. Lens.mapping Data._Time++-- | Route settings for the stage, by routeKey.+getStageResponse_routeSettings :: Lens.Lens' GetStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings))+getStageResponse_routeSettings = Lens.lens (\GetStageResponse' {routeSettings} -> routeSettings) (\s@GetStageResponse' {} a -> s {routeSettings = a} :: GetStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the stage.+getStageResponse_stageName :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)+getStageResponse_stageName = Lens.lens (\GetStageResponse' {stageName} -> stageName) (\s@GetStageResponse' {} a -> s {stageName = a} :: GetStageResponse)++-- | A map that defines the stage variables for a stage resource. Variable+-- names can have alphanumeric and underscore characters, and the values+-- must match [A-Za-z0-9-._~:\/?#&=,]+.+getStageResponse_stageVariables :: Lens.Lens' GetStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getStageResponse_stageVariables = Lens.lens (\GetStageResponse' {stageVariables} -> stageVariables) (\s@GetStageResponse' {} a -> s {stageVariables = a} :: GetStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of tags. Each tag element is associated with a given+-- resource.+getStageResponse_tags :: Lens.Lens' GetStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getStageResponse_tags = Lens.lens (\GetStageResponse' {tags} -> tags) (\s@GetStageResponse' {} a -> s {tags = a} :: GetStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getStageResponse_httpStatus :: Lens.Lens' GetStageResponse Prelude.Int+getStageResponse_httpStatus = Lens.lens (\GetStageResponse' {httpStatus} -> httpStatus) (\s@GetStageResponse' {} a -> s {httpStatus = a} :: GetStageResponse)++instance Prelude.NFData GetStageResponse where+  rnf GetStageResponse' {..} =+    Prelude.rnf accessLogSettings+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf autoDeploy+      `Prelude.seq` Prelude.rnf clientCertificateId+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf defaultRouteSettings+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastDeploymentStatusMessage+      `Prelude.seq` Prelude.rnf lastUpdatedDate+      `Prelude.seq` Prelude.rnf routeSettings+      `Prelude.seq` Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf stageVariables+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetStages.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetStages+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the Stages for an API.+--+-- This operation returns paginated results.+module Amazonka.ApiGatewayV2.GetStages+  ( -- * Creating a Request+    GetStages (..),+    newGetStages,++    -- * Request Lenses+    getStages_maxResults,+    getStages_nextToken,+    getStages_apiId,++    -- * Destructuring the Response+    GetStagesResponse (..),+    newGetStagesResponse,++    -- * Response Lenses+    getStagesResponse_items,+    getStagesResponse_nextToken,+    getStagesResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetStages' smart constructor.+data GetStages = GetStages'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStages' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getStages_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getStages_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'apiId', 'getStages_apiId' - The API identifier.+newGetStages ::+  -- | 'apiId'+  Prelude.Text ->+  GetStages+newGetStages pApiId_ =+  GetStages'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      apiId = pApiId_+    }++-- | The maximum number of elements to be returned for this resource.+getStages_maxResults :: Lens.Lens' GetStages (Prelude.Maybe Prelude.Text)+getStages_maxResults = Lens.lens (\GetStages' {maxResults} -> maxResults) (\s@GetStages' {} a -> s {maxResults = a} :: GetStages)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getStages_nextToken :: Lens.Lens' GetStages (Prelude.Maybe Prelude.Text)+getStages_nextToken = Lens.lens (\GetStages' {nextToken} -> nextToken) (\s@GetStages' {} a -> s {nextToken = a} :: GetStages)++-- | The API identifier.+getStages_apiId :: Lens.Lens' GetStages Prelude.Text+getStages_apiId = Lens.lens (\GetStages' {apiId} -> apiId) (\s@GetStages' {} a -> s {apiId = a} :: GetStages)++instance Core.AWSPager GetStages where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getStagesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getStagesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getStages_nextToken+          Lens..~ rs+          Lens.^? getStagesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetStages where+  type AWSResponse GetStages = GetStagesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStagesResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetStages where+  hashWithSalt _salt GetStages' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData GetStages where+  rnf GetStages' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders GetStages where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStages where+  toPath GetStages' {..} =+    Prelude.mconcat+      ["/v2/apis/", Data.toBS apiId, "/stages"]++instance Data.ToQuery GetStages where+  toQuery GetStages' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetStagesResponse' smart constructor.+data GetStagesResponse = GetStagesResponse'+  { -- | The elements from this collection.+    items :: Prelude.Maybe [Stage],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStagesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getStagesResponse_items' - The elements from this collection.+--+-- 'nextToken', 'getStagesResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getStagesResponse_httpStatus' - The response's http status code.+newGetStagesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetStagesResponse+newGetStagesResponse pHttpStatus_ =+  GetStagesResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The elements from this collection.+getStagesResponse_items :: Lens.Lens' GetStagesResponse (Prelude.Maybe [Stage])+getStagesResponse_items = Lens.lens (\GetStagesResponse' {items} -> items) (\s@GetStagesResponse' {} a -> s {items = a} :: GetStagesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getStagesResponse_nextToken :: Lens.Lens' GetStagesResponse (Prelude.Maybe Prelude.Text)+getStagesResponse_nextToken = Lens.lens (\GetStagesResponse' {nextToken} -> nextToken) (\s@GetStagesResponse' {} a -> s {nextToken = a} :: GetStagesResponse)++-- | The response's http status code.+getStagesResponse_httpStatus :: Lens.Lens' GetStagesResponse Prelude.Int+getStagesResponse_httpStatus = Lens.lens (\GetStagesResponse' {httpStatus} -> httpStatus) (\s@GetStagesResponse' {} a -> s {httpStatus = a} :: GetStagesResponse)++instance Prelude.NFData GetStagesResponse where+  rnf GetStagesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetTags.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.GetTags+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a collection of Tag resources.+module Amazonka.ApiGatewayV2.GetTags+  ( -- * Creating a Request+    GetTags (..),+    newGetTags,++    -- * Request Lenses+    getTags_resourceArn,++    -- * Destructuring the Response+    GetTagsResponse (..),+    newGetTagsResponse,++    -- * Response Lenses+    getTagsResponse_tags,+    getTagsResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetTags' smart constructor.+data GetTags = GetTags'+  { -- | The resource ARN for the tag.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTags' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'getTags_resourceArn' - The resource ARN for the tag.+newGetTags ::+  -- | 'resourceArn'+  Prelude.Text ->+  GetTags+newGetTags pResourceArn_ =+  GetTags' {resourceArn = pResourceArn_}++-- | The resource ARN for the tag.+getTags_resourceArn :: Lens.Lens' GetTags Prelude.Text+getTags_resourceArn = Lens.lens (\GetTags' {resourceArn} -> resourceArn) (\s@GetTags' {} a -> s {resourceArn = a} :: GetTags)++instance Core.AWSRequest GetTags where+  type AWSResponse GetTags = GetTagsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetTagsResponse'+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetTags where+  hashWithSalt _salt GetTags' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData GetTags where+  rnf GetTags' {..} = Prelude.rnf resourceArn++instance Data.ToHeaders GetTags where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetTags where+  toPath GetTags' {..} =+    Prelude.mconcat+      ["/v2/tags/", Data.toBS resourceArn]++instance Data.ToQuery GetTags where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetTagsResponse' smart constructor.+data GetTagsResponse = GetTagsResponse'+  { tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTagsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'getTagsResponse_tags' - Undocumented member.+--+-- 'httpStatus', 'getTagsResponse_httpStatus' - The response's http status code.+newGetTagsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetTagsResponse+newGetTagsResponse pHttpStatus_ =+  GetTagsResponse'+    { tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+getTagsResponse_tags :: Lens.Lens' GetTagsResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getTagsResponse_tags = Lens.lens (\GetTagsResponse' {tags} -> tags) (\s@GetTagsResponse' {} a -> s {tags = a} :: GetTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getTagsResponse_httpStatus :: Lens.Lens' GetTagsResponse Prelude.Int+getTagsResponse_httpStatus = Lens.lens (\GetTagsResponse' {httpStatus} -> httpStatus) (\s@GetTagsResponse' {} a -> s {httpStatus = a} :: GetTagsResponse)++instance Prelude.NFData GetTagsResponse where+  rnf GetTagsResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetVpcLink.hs view
@@ -0,0 +1,255 @@+{-# 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.ApiGatewayV2.GetVpcLink+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a VPC link.+module Amazonka.ApiGatewayV2.GetVpcLink+  ( -- * Creating a Request+    GetVpcLink (..),+    newGetVpcLink,++    -- * Request Lenses+    getVpcLink_vpcLinkId,++    -- * Destructuring the Response+    GetVpcLinkResponse (..),+    newGetVpcLinkResponse,++    -- * Response Lenses+    getVpcLinkResponse_createdDate,+    getVpcLinkResponse_name,+    getVpcLinkResponse_securityGroupIds,+    getVpcLinkResponse_subnetIds,+    getVpcLinkResponse_tags,+    getVpcLinkResponse_vpcLinkId,+    getVpcLinkResponse_vpcLinkStatus,+    getVpcLinkResponse_vpcLinkStatusMessage,+    getVpcLinkResponse_vpcLinkVersion,+    getVpcLinkResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetVpcLink' smart constructor.+data GetVpcLink = GetVpcLink'+  { -- | The ID of the VPC link.+    vpcLinkId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVpcLink' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vpcLinkId', 'getVpcLink_vpcLinkId' - The ID of the VPC link.+newGetVpcLink ::+  -- | 'vpcLinkId'+  Prelude.Text ->+  GetVpcLink+newGetVpcLink pVpcLinkId_ =+  GetVpcLink' {vpcLinkId = pVpcLinkId_}++-- | The ID of the VPC link.+getVpcLink_vpcLinkId :: Lens.Lens' GetVpcLink Prelude.Text+getVpcLink_vpcLinkId = Lens.lens (\GetVpcLink' {vpcLinkId} -> vpcLinkId) (\s@GetVpcLink' {} a -> s {vpcLinkId = a} :: GetVpcLink)++instance Core.AWSRequest GetVpcLink where+  type AWSResponse GetVpcLink = GetVpcLinkResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetVpcLinkResponse'+            Prelude.<$> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> ( x+                            Data..?> "securityGroupIds"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "subnetIds" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "vpcLinkId")+            Prelude.<*> (x Data..?> "vpcLinkStatus")+            Prelude.<*> (x Data..?> "vpcLinkStatusMessage")+            Prelude.<*> (x Data..?> "vpcLinkVersion")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetVpcLink where+  hashWithSalt _salt GetVpcLink' {..} =+    _salt `Prelude.hashWithSalt` vpcLinkId++instance Prelude.NFData GetVpcLink where+  rnf GetVpcLink' {..} = Prelude.rnf vpcLinkId++instance Data.ToHeaders GetVpcLink where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetVpcLink where+  toPath GetVpcLink' {..} =+    Prelude.mconcat+      ["/v2/vpclinks/", Data.toBS vpcLinkId]++instance Data.ToQuery GetVpcLink where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetVpcLinkResponse' smart constructor.+data GetVpcLinkResponse = GetVpcLinkResponse'+  { -- | The timestamp when the VPC link was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The name of the VPC link.+    name :: Prelude.Maybe Prelude.Text,+    -- | A list of security group IDs for the VPC link.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | A list of subnet IDs to include in the VPC link.+    subnetIds :: Prelude.Maybe [Prelude.Text],+    -- | Tags for the VPC link.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the VPC link.+    vpcLinkId :: Prelude.Maybe Prelude.Text,+    -- | The status of the VPC link.+    vpcLinkStatus :: Prelude.Maybe VpcLinkStatus,+    -- | A message summarizing the cause of the status of the VPC link.+    vpcLinkStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The version of the VPC link.+    vpcLinkVersion :: Prelude.Maybe VpcLinkVersion,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVpcLinkResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdDate', 'getVpcLinkResponse_createdDate' - The timestamp when the VPC link was created.+--+-- 'name', 'getVpcLinkResponse_name' - The name of the VPC link.+--+-- 'securityGroupIds', 'getVpcLinkResponse_securityGroupIds' - A list of security group IDs for the VPC link.+--+-- 'subnetIds', 'getVpcLinkResponse_subnetIds' - A list of subnet IDs to include in the VPC link.+--+-- 'tags', 'getVpcLinkResponse_tags' - Tags for the VPC link.+--+-- 'vpcLinkId', 'getVpcLinkResponse_vpcLinkId' - The ID of the VPC link.+--+-- 'vpcLinkStatus', 'getVpcLinkResponse_vpcLinkStatus' - The status of the VPC link.+--+-- 'vpcLinkStatusMessage', 'getVpcLinkResponse_vpcLinkStatusMessage' - A message summarizing the cause of the status of the VPC link.+--+-- 'vpcLinkVersion', 'getVpcLinkResponse_vpcLinkVersion' - The version of the VPC link.+--+-- 'httpStatus', 'getVpcLinkResponse_httpStatus' - The response's http status code.+newGetVpcLinkResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetVpcLinkResponse+newGetVpcLinkResponse pHttpStatus_ =+  GetVpcLinkResponse'+    { createdDate = Prelude.Nothing,+      name = Prelude.Nothing,+      securityGroupIds = Prelude.Nothing,+      subnetIds = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcLinkId = Prelude.Nothing,+      vpcLinkStatus = Prelude.Nothing,+      vpcLinkStatusMessage = Prelude.Nothing,+      vpcLinkVersion = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The timestamp when the VPC link was created.+getVpcLinkResponse_createdDate :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe Prelude.UTCTime)+getVpcLinkResponse_createdDate = Lens.lens (\GetVpcLinkResponse' {createdDate} -> createdDate) (\s@GetVpcLinkResponse' {} a -> s {createdDate = a} :: GetVpcLinkResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the VPC link.+getVpcLinkResponse_name :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe Prelude.Text)+getVpcLinkResponse_name = Lens.lens (\GetVpcLinkResponse' {name} -> name) (\s@GetVpcLinkResponse' {} a -> s {name = a} :: GetVpcLinkResponse)++-- | A list of security group IDs for the VPC link.+getVpcLinkResponse_securityGroupIds :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe [Prelude.Text])+getVpcLinkResponse_securityGroupIds = Lens.lens (\GetVpcLinkResponse' {securityGroupIds} -> securityGroupIds) (\s@GetVpcLinkResponse' {} a -> s {securityGroupIds = a} :: GetVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of subnet IDs to include in the VPC link.+getVpcLinkResponse_subnetIds :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe [Prelude.Text])+getVpcLinkResponse_subnetIds = Lens.lens (\GetVpcLinkResponse' {subnetIds} -> subnetIds) (\s@GetVpcLinkResponse' {} a -> s {subnetIds = a} :: GetVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | Tags for the VPC link.+getVpcLinkResponse_tags :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getVpcLinkResponse_tags = Lens.lens (\GetVpcLinkResponse' {tags} -> tags) (\s@GetVpcLinkResponse' {} a -> s {tags = a} :: GetVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the VPC link.+getVpcLinkResponse_vpcLinkId :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe Prelude.Text)+getVpcLinkResponse_vpcLinkId = Lens.lens (\GetVpcLinkResponse' {vpcLinkId} -> vpcLinkId) (\s@GetVpcLinkResponse' {} a -> s {vpcLinkId = a} :: GetVpcLinkResponse)++-- | The status of the VPC link.+getVpcLinkResponse_vpcLinkStatus :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe VpcLinkStatus)+getVpcLinkResponse_vpcLinkStatus = Lens.lens (\GetVpcLinkResponse' {vpcLinkStatus} -> vpcLinkStatus) (\s@GetVpcLinkResponse' {} a -> s {vpcLinkStatus = a} :: GetVpcLinkResponse)++-- | A message summarizing the cause of the status of the VPC link.+getVpcLinkResponse_vpcLinkStatusMessage :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe Prelude.Text)+getVpcLinkResponse_vpcLinkStatusMessage = Lens.lens (\GetVpcLinkResponse' {vpcLinkStatusMessage} -> vpcLinkStatusMessage) (\s@GetVpcLinkResponse' {} a -> s {vpcLinkStatusMessage = a} :: GetVpcLinkResponse)++-- | The version of the VPC link.+getVpcLinkResponse_vpcLinkVersion :: Lens.Lens' GetVpcLinkResponse (Prelude.Maybe VpcLinkVersion)+getVpcLinkResponse_vpcLinkVersion = Lens.lens (\GetVpcLinkResponse' {vpcLinkVersion} -> vpcLinkVersion) (\s@GetVpcLinkResponse' {} a -> s {vpcLinkVersion = a} :: GetVpcLinkResponse)++-- | The response's http status code.+getVpcLinkResponse_httpStatus :: Lens.Lens' GetVpcLinkResponse Prelude.Int+getVpcLinkResponse_httpStatus = Lens.lens (\GetVpcLinkResponse' {httpStatus} -> httpStatus) (\s@GetVpcLinkResponse' {} a -> s {httpStatus = a} :: GetVpcLinkResponse)++instance Prelude.NFData GetVpcLinkResponse where+  rnf GetVpcLinkResponse' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcLinkId+      `Prelude.seq` Prelude.rnf vpcLinkStatus+      `Prelude.seq` Prelude.rnf vpcLinkStatusMessage+      `Prelude.seq` Prelude.rnf vpcLinkVersion+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/GetVpcLinks.hs view
@@ -0,0 +1,190 @@+{-# 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.ApiGatewayV2.GetVpcLinks+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a collection of VPC links.+module Amazonka.ApiGatewayV2.GetVpcLinks+  ( -- * Creating a Request+    GetVpcLinks (..),+    newGetVpcLinks,++    -- * Request Lenses+    getVpcLinks_maxResults,+    getVpcLinks_nextToken,++    -- * Destructuring the Response+    GetVpcLinksResponse (..),+    newGetVpcLinksResponse,++    -- * Response Lenses+    getVpcLinksResponse_items,+    getVpcLinksResponse_nextToken,+    getVpcLinksResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newGetVpcLinks' smart constructor.+data GetVpcLinks = GetVpcLinks'+  { -- | The maximum number of elements to be returned for this resource.+    maxResults :: Prelude.Maybe Prelude.Text,+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVpcLinks' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getVpcLinks_maxResults' - The maximum number of elements to be returned for this resource.+--+-- 'nextToken', 'getVpcLinks_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+newGetVpcLinks ::+  GetVpcLinks+newGetVpcLinks =+  GetVpcLinks'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of elements to be returned for this resource.+getVpcLinks_maxResults :: Lens.Lens' GetVpcLinks (Prelude.Maybe Prelude.Text)+getVpcLinks_maxResults = Lens.lens (\GetVpcLinks' {maxResults} -> maxResults) (\s@GetVpcLinks' {} a -> s {maxResults = a} :: GetVpcLinks)++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getVpcLinks_nextToken :: Lens.Lens' GetVpcLinks (Prelude.Maybe Prelude.Text)+getVpcLinks_nextToken = Lens.lens (\GetVpcLinks' {nextToken} -> nextToken) (\s@GetVpcLinks' {} a -> s {nextToken = a} :: GetVpcLinks)++instance Core.AWSRequest GetVpcLinks where+  type AWSResponse GetVpcLinks = GetVpcLinksResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetVpcLinksResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetVpcLinks where+  hashWithSalt _salt GetVpcLinks' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetVpcLinks where+  rnf GetVpcLinks' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetVpcLinks where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetVpcLinks where+  toPath = Prelude.const "/v2/vpclinks"++instance Data.ToQuery GetVpcLinks where+  toQuery GetVpcLinks' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newGetVpcLinksResponse' smart constructor.+data GetVpcLinksResponse = GetVpcLinksResponse'+  { -- | A collection of VPC links.+    items :: Prelude.Maybe [VpcLink],+    -- | The next page of elements from this collection. Not valid for the last+    -- element of the collection.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVpcLinksResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getVpcLinksResponse_items' - A collection of VPC links.+--+-- 'nextToken', 'getVpcLinksResponse_nextToken' - The next page of elements from this collection. Not valid for the last+-- element of the collection.+--+-- 'httpStatus', 'getVpcLinksResponse_httpStatus' - The response's http status code.+newGetVpcLinksResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetVpcLinksResponse+newGetVpcLinksResponse pHttpStatus_ =+  GetVpcLinksResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A collection of VPC links.+getVpcLinksResponse_items :: Lens.Lens' GetVpcLinksResponse (Prelude.Maybe [VpcLink])+getVpcLinksResponse_items = Lens.lens (\GetVpcLinksResponse' {items} -> items) (\s@GetVpcLinksResponse' {} a -> s {items = a} :: GetVpcLinksResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page of elements from this collection. Not valid for the last+-- element of the collection.+getVpcLinksResponse_nextToken :: Lens.Lens' GetVpcLinksResponse (Prelude.Maybe Prelude.Text)+getVpcLinksResponse_nextToken = Lens.lens (\GetVpcLinksResponse' {nextToken} -> nextToken) (\s@GetVpcLinksResponse' {} a -> s {nextToken = a} :: GetVpcLinksResponse)++-- | The response's http status code.+getVpcLinksResponse_httpStatus :: Lens.Lens' GetVpcLinksResponse Prelude.Int+getVpcLinksResponse_httpStatus = Lens.lens (\GetVpcLinksResponse' {httpStatus} -> httpStatus) (\s@GetVpcLinksResponse' {} a -> s {httpStatus = a} :: GetVpcLinksResponse)++instance Prelude.NFData GetVpcLinksResponse where+  rnf GetVpcLinksResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/ImportApi.hs view
@@ -0,0 +1,441 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.ImportApi+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Imports an API.+module Amazonka.ApiGatewayV2.ImportApi+  ( -- * Creating a Request+    ImportApi (..),+    newImportApi,++    -- * Request Lenses+    importApi_basepath,+    importApi_failOnWarnings,+    importApi_body,++    -- * Destructuring the Response+    ImportApiResponse (..),+    newImportApiResponse,++    -- * Response Lenses+    importApiResponse_apiEndpoint,+    importApiResponse_apiGatewayManaged,+    importApiResponse_apiId,+    importApiResponse_apiKeySelectionExpression,+    importApiResponse_corsConfiguration,+    importApiResponse_createdDate,+    importApiResponse_description,+    importApiResponse_disableExecuteApiEndpoint,+    importApiResponse_disableSchemaValidation,+    importApiResponse_importInfo,+    importApiResponse_name,+    importApiResponse_protocolType,+    importApiResponse_routeSelectionExpression,+    importApiResponse_tags,+    importApiResponse_version,+    importApiResponse_warnings,+    importApiResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newImportApi' smart constructor.+data ImportApi = ImportApi'+  { -- | Specifies how to interpret the base path of the API during import. Valid+    -- values are ignore, prepend, and split. The default value is ignore. To+    -- learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html Set the OpenAPI basePath Property>.+    -- Supported only for HTTP APIs.+    basepath :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether to rollback the API creation when a warning is+    -- encountered. By default, API creation continues if a warning is+    -- encountered.+    failOnWarnings :: Prelude.Maybe Prelude.Bool,+    -- | The OpenAPI definition. Supported only for HTTP APIs.+    body :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportApi' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'basepath', 'importApi_basepath' - Specifies how to interpret the base path of the API during import. Valid+-- values are ignore, prepend, and split. The default value is ignore. To+-- learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html Set the OpenAPI basePath Property>.+-- Supported only for HTTP APIs.+--+-- 'failOnWarnings', 'importApi_failOnWarnings' - Specifies whether to rollback the API creation when a warning is+-- encountered. By default, API creation continues if a warning is+-- encountered.+--+-- 'body', 'importApi_body' - The OpenAPI definition. Supported only for HTTP APIs.+newImportApi ::+  -- | 'body'+  Prelude.Text ->+  ImportApi+newImportApi pBody_ =+  ImportApi'+    { basepath = Prelude.Nothing,+      failOnWarnings = Prelude.Nothing,+      body = pBody_+    }++-- | Specifies how to interpret the base path of the API during import. Valid+-- values are ignore, prepend, and split. The default value is ignore. To+-- learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html Set the OpenAPI basePath Property>.+-- Supported only for HTTP APIs.+importApi_basepath :: Lens.Lens' ImportApi (Prelude.Maybe Prelude.Text)+importApi_basepath = Lens.lens (\ImportApi' {basepath} -> basepath) (\s@ImportApi' {} a -> s {basepath = a} :: ImportApi)++-- | Specifies whether to rollback the API creation when a warning is+-- encountered. By default, API creation continues if a warning is+-- encountered.+importApi_failOnWarnings :: Lens.Lens' ImportApi (Prelude.Maybe Prelude.Bool)+importApi_failOnWarnings = Lens.lens (\ImportApi' {failOnWarnings} -> failOnWarnings) (\s@ImportApi' {} a -> s {failOnWarnings = a} :: ImportApi)++-- | The OpenAPI definition. Supported only for HTTP APIs.+importApi_body :: Lens.Lens' ImportApi Prelude.Text+importApi_body = Lens.lens (\ImportApi' {body} -> body) (\s@ImportApi' {} a -> s {body = a} :: ImportApi)++instance Core.AWSRequest ImportApi where+  type AWSResponse ImportApi = ImportApiResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ImportApiResponse'+            Prelude.<$> (x Data..?> "apiEndpoint")+            Prelude.<*> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "apiId")+            Prelude.<*> (x Data..?> "apiKeySelectionExpression")+            Prelude.<*> (x Data..?> "corsConfiguration")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "disableExecuteApiEndpoint")+            Prelude.<*> (x Data..?> "disableSchemaValidation")+            Prelude.<*> (x Data..?> "importInfo" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "protocolType")+            Prelude.<*> (x Data..?> "routeSelectionExpression")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (x Data..?> "warnings" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ImportApi where+  hashWithSalt _salt ImportApi' {..} =+    _salt+      `Prelude.hashWithSalt` basepath+      `Prelude.hashWithSalt` failOnWarnings+      `Prelude.hashWithSalt` body++instance Prelude.NFData ImportApi where+  rnf ImportApi' {..} =+    Prelude.rnf basepath+      `Prelude.seq` Prelude.rnf failOnWarnings+      `Prelude.seq` Prelude.rnf body++instance Data.ToHeaders ImportApi where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ImportApi where+  toJSON ImportApi' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("body" Data..= body)]+      )++instance Data.ToPath ImportApi where+  toPath = Prelude.const "/v2/apis"++instance Data.ToQuery ImportApi where+  toQuery ImportApi' {..} =+    Prelude.mconcat+      [ "basepath" Data.=: basepath,+        "failOnWarnings" Data.=: failOnWarnings+      ]++-- | /See:/ 'newImportApiResponse' smart constructor.+data ImportApiResponse = ImportApiResponse'+  { -- | The URI of the API, of the form+    -- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+    -- appended to this URI to form a complete path to a deployed API stage.+    apiEndpoint :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether an API is managed by API Gateway. You can\'t update or+    -- delete a managed API by using API Gateway. A managed API can be deleted+    -- only through the tooling or service that created it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The API ID.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | An API key selection expression. Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+    apiKeySelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A CORS configuration. Supported only for HTTP APIs.+    corsConfiguration :: Prelude.Maybe Cors,+    -- | The timestamp when the API was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The description of the API.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether clients can invoke your API by using the default+    -- execute-api endpoint. By default, clients can invoke your API with the+    -- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+    -- To require that clients use a custom domain name to invoke your API,+    -- disable the default endpoint.+    disableExecuteApiEndpoint :: Prelude.Maybe Prelude.Bool,+    -- | Avoid validating models when creating a deployment. Supported only for+    -- WebSocket APIs.+    disableSchemaValidation :: Prelude.Maybe Prelude.Bool,+    -- | The validation information during API import. This may include+    -- particular properties of your OpenAPI definition which are ignored+    -- during import. Supported only for HTTP APIs.+    importInfo :: Prelude.Maybe [Prelude.Text],+    -- | The name of the API.+    name :: Prelude.Maybe Prelude.Text,+    -- | The API protocol.+    protocolType :: Prelude.Maybe ProtocolType,+    -- | The route selection expression for the API. For HTTP APIs, the+    -- routeSelectionExpression must be ${request.method} ${request.path}. If+    -- not provided, this will be the default for HTTP APIs. This property is+    -- required for WebSocket APIs.+    routeSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A collection of tags associated with the API.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A version identifier for the API.+    version :: Prelude.Maybe Prelude.Text,+    -- | The warning messages reported when failonwarnings is turned on during+    -- API import.+    warnings :: Prelude.Maybe [Prelude.Text],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportApiResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiEndpoint', 'importApiResponse_apiEndpoint' - The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+--+-- 'apiGatewayManaged', 'importApiResponse_apiGatewayManaged' - Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+--+-- 'apiId', 'importApiResponse_apiId' - The API ID.+--+-- 'apiKeySelectionExpression', 'importApiResponse_apiKeySelectionExpression' - An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+--+-- 'corsConfiguration', 'importApiResponse_corsConfiguration' - A CORS configuration. Supported only for HTTP APIs.+--+-- 'createdDate', 'importApiResponse_createdDate' - The timestamp when the API was created.+--+-- 'description', 'importApiResponse_description' - The description of the API.+--+-- 'disableExecuteApiEndpoint', 'importApiResponse_disableExecuteApiEndpoint' - Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+--+-- 'disableSchemaValidation', 'importApiResponse_disableSchemaValidation' - Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+--+-- 'importInfo', 'importApiResponse_importInfo' - The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+--+-- 'name', 'importApiResponse_name' - The name of the API.+--+-- 'protocolType', 'importApiResponse_protocolType' - The API protocol.+--+-- 'routeSelectionExpression', 'importApiResponse_routeSelectionExpression' - The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+--+-- 'tags', 'importApiResponse_tags' - A collection of tags associated with the API.+--+-- 'version', 'importApiResponse_version' - A version identifier for the API.+--+-- 'warnings', 'importApiResponse_warnings' - The warning messages reported when failonwarnings is turned on during+-- API import.+--+-- 'httpStatus', 'importApiResponse_httpStatus' - The response's http status code.+newImportApiResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ImportApiResponse+newImportApiResponse pHttpStatus_ =+  ImportApiResponse'+    { apiEndpoint = Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      apiId = Prelude.Nothing,+      apiKeySelectionExpression = Prelude.Nothing,+      corsConfiguration = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      disableExecuteApiEndpoint = Prelude.Nothing,+      disableSchemaValidation = Prelude.Nothing,+      importInfo = Prelude.Nothing,+      name = Prelude.Nothing,+      protocolType = Prelude.Nothing,+      routeSelectionExpression = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      warnings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+importApiResponse_apiEndpoint :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Text)+importApiResponse_apiEndpoint = Lens.lens (\ImportApiResponse' {apiEndpoint} -> apiEndpoint) (\s@ImportApiResponse' {} a -> s {apiEndpoint = a} :: ImportApiResponse)++-- | Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+importApiResponse_apiGatewayManaged :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Bool)+importApiResponse_apiGatewayManaged = Lens.lens (\ImportApiResponse' {apiGatewayManaged} -> apiGatewayManaged) (\s@ImportApiResponse' {} a -> s {apiGatewayManaged = a} :: ImportApiResponse)++-- | The API ID.+importApiResponse_apiId :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Text)+importApiResponse_apiId = Lens.lens (\ImportApiResponse' {apiId} -> apiId) (\s@ImportApiResponse' {} a -> s {apiId = a} :: ImportApiResponse)++-- | An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+importApiResponse_apiKeySelectionExpression :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Text)+importApiResponse_apiKeySelectionExpression = Lens.lens (\ImportApiResponse' {apiKeySelectionExpression} -> apiKeySelectionExpression) (\s@ImportApiResponse' {} a -> s {apiKeySelectionExpression = a} :: ImportApiResponse)++-- | A CORS configuration. Supported only for HTTP APIs.+importApiResponse_corsConfiguration :: Lens.Lens' ImportApiResponse (Prelude.Maybe Cors)+importApiResponse_corsConfiguration = Lens.lens (\ImportApiResponse' {corsConfiguration} -> corsConfiguration) (\s@ImportApiResponse' {} a -> s {corsConfiguration = a} :: ImportApiResponse)++-- | The timestamp when the API was created.+importApiResponse_createdDate :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.UTCTime)+importApiResponse_createdDate = Lens.lens (\ImportApiResponse' {createdDate} -> createdDate) (\s@ImportApiResponse' {} a -> s {createdDate = a} :: ImportApiResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the API.+importApiResponse_description :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Text)+importApiResponse_description = Lens.lens (\ImportApiResponse' {description} -> description) (\s@ImportApiResponse' {} a -> s {description = a} :: ImportApiResponse)++-- | Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+importApiResponse_disableExecuteApiEndpoint :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Bool)+importApiResponse_disableExecuteApiEndpoint = Lens.lens (\ImportApiResponse' {disableExecuteApiEndpoint} -> disableExecuteApiEndpoint) (\s@ImportApiResponse' {} a -> s {disableExecuteApiEndpoint = a} :: ImportApiResponse)++-- | Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+importApiResponse_disableSchemaValidation :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Bool)+importApiResponse_disableSchemaValidation = Lens.lens (\ImportApiResponse' {disableSchemaValidation} -> disableSchemaValidation) (\s@ImportApiResponse' {} a -> s {disableSchemaValidation = a} :: ImportApiResponse)++-- | The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+importApiResponse_importInfo :: Lens.Lens' ImportApiResponse (Prelude.Maybe [Prelude.Text])+importApiResponse_importInfo = Lens.lens (\ImportApiResponse' {importInfo} -> importInfo) (\s@ImportApiResponse' {} a -> s {importInfo = a} :: ImportApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the API.+importApiResponse_name :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Text)+importApiResponse_name = Lens.lens (\ImportApiResponse' {name} -> name) (\s@ImportApiResponse' {} a -> s {name = a} :: ImportApiResponse)++-- | The API protocol.+importApiResponse_protocolType :: Lens.Lens' ImportApiResponse (Prelude.Maybe ProtocolType)+importApiResponse_protocolType = Lens.lens (\ImportApiResponse' {protocolType} -> protocolType) (\s@ImportApiResponse' {} a -> s {protocolType = a} :: ImportApiResponse)++-- | The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+importApiResponse_routeSelectionExpression :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Text)+importApiResponse_routeSelectionExpression = Lens.lens (\ImportApiResponse' {routeSelectionExpression} -> routeSelectionExpression) (\s@ImportApiResponse' {} a -> s {routeSelectionExpression = a} :: ImportApiResponse)++-- | A collection of tags associated with the API.+importApiResponse_tags :: Lens.Lens' ImportApiResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+importApiResponse_tags = Lens.lens (\ImportApiResponse' {tags} -> tags) (\s@ImportApiResponse' {} a -> s {tags = a} :: ImportApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | A version identifier for the API.+importApiResponse_version :: Lens.Lens' ImportApiResponse (Prelude.Maybe Prelude.Text)+importApiResponse_version = Lens.lens (\ImportApiResponse' {version} -> version) (\s@ImportApiResponse' {} a -> s {version = a} :: ImportApiResponse)++-- | The warning messages reported when failonwarnings is turned on during+-- API import.+importApiResponse_warnings :: Lens.Lens' ImportApiResponse (Prelude.Maybe [Prelude.Text])+importApiResponse_warnings = Lens.lens (\ImportApiResponse' {warnings} -> warnings) (\s@ImportApiResponse' {} a -> s {warnings = a} :: ImportApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+importApiResponse_httpStatus :: Lens.Lens' ImportApiResponse Prelude.Int+importApiResponse_httpStatus = Lens.lens (\ImportApiResponse' {httpStatus} -> httpStatus) (\s@ImportApiResponse' {} a -> s {httpStatus = a} :: ImportApiResponse)++instance Prelude.NFData ImportApiResponse where+  rnf ImportApiResponse' {..} =+    Prelude.rnf apiEndpoint+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiKeySelectionExpression+      `Prelude.seq` Prelude.rnf corsConfiguration+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf disableExecuteApiEndpoint+      `Prelude.seq` Prelude.rnf disableSchemaValidation+      `Prelude.seq` Prelude.rnf importInfo+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf routeSelectionExpression+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf warnings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/Lens.hs view
@@ -0,0 +1,1215 @@+{-# 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.ApiGatewayV2.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.ApiGatewayV2.Lens+  ( -- * Operations++    -- ** CreateApi+    createApi_apiKeySelectionExpression,+    createApi_corsConfiguration,+    createApi_credentialsArn,+    createApi_description,+    createApi_disableExecuteApiEndpoint,+    createApi_disableSchemaValidation,+    createApi_routeKey,+    createApi_routeSelectionExpression,+    createApi_tags,+    createApi_target,+    createApi_version,+    createApi_protocolType,+    createApi_name,+    createApiResponse_apiEndpoint,+    createApiResponse_apiGatewayManaged,+    createApiResponse_apiId,+    createApiResponse_apiKeySelectionExpression,+    createApiResponse_corsConfiguration,+    createApiResponse_createdDate,+    createApiResponse_description,+    createApiResponse_disableExecuteApiEndpoint,+    createApiResponse_disableSchemaValidation,+    createApiResponse_importInfo,+    createApiResponse_name,+    createApiResponse_protocolType,+    createApiResponse_routeSelectionExpression,+    createApiResponse_tags,+    createApiResponse_version,+    createApiResponse_warnings,+    createApiResponse_httpStatus,++    -- ** CreateApiMapping+    createApiMapping_apiMappingKey,+    createApiMapping_domainName,+    createApiMapping_stage,+    createApiMapping_apiId,+    createApiMappingResponse_apiId,+    createApiMappingResponse_apiMappingId,+    createApiMappingResponse_apiMappingKey,+    createApiMappingResponse_stage,+    createApiMappingResponse_httpStatus,++    -- ** CreateAuthorizer+    createAuthorizer_authorizerCredentialsArn,+    createAuthorizer_authorizerPayloadFormatVersion,+    createAuthorizer_authorizerResultTtlInSeconds,+    createAuthorizer_authorizerUri,+    createAuthorizer_enableSimpleResponses,+    createAuthorizer_identityValidationExpression,+    createAuthorizer_jwtConfiguration,+    createAuthorizer_apiId,+    createAuthorizer_authorizerType,+    createAuthorizer_identitySource,+    createAuthorizer_name,+    createAuthorizerResponse_authorizerCredentialsArn,+    createAuthorizerResponse_authorizerId,+    createAuthorizerResponse_authorizerPayloadFormatVersion,+    createAuthorizerResponse_authorizerResultTtlInSeconds,+    createAuthorizerResponse_authorizerType,+    createAuthorizerResponse_authorizerUri,+    createAuthorizerResponse_enableSimpleResponses,+    createAuthorizerResponse_identitySource,+    createAuthorizerResponse_identityValidationExpression,+    createAuthorizerResponse_jwtConfiguration,+    createAuthorizerResponse_name,+    createAuthorizerResponse_httpStatus,++    -- ** CreateDeployment+    createDeployment_description,+    createDeployment_stageName,+    createDeployment_apiId,+    createDeploymentResponse_autoDeployed,+    createDeploymentResponse_createdDate,+    createDeploymentResponse_deploymentId,+    createDeploymentResponse_deploymentStatus,+    createDeploymentResponse_deploymentStatusMessage,+    createDeploymentResponse_description,+    createDeploymentResponse_httpStatus,++    -- ** CreateDomainName+    createDomainName_domainNameConfigurations,+    createDomainName_mutualTlsAuthentication,+    createDomainName_tags,+    createDomainName_domainName,+    createDomainNameResponse_apiMappingSelectionExpression,+    createDomainNameResponse_domainName,+    createDomainNameResponse_domainNameConfigurations,+    createDomainNameResponse_mutualTlsAuthentication,+    createDomainNameResponse_tags,+    createDomainNameResponse_httpStatus,++    -- ** CreateIntegration+    createIntegration_connectionId,+    createIntegration_connectionType,+    createIntegration_contentHandlingStrategy,+    createIntegration_credentialsArn,+    createIntegration_description,+    createIntegration_integrationMethod,+    createIntegration_integrationSubtype,+    createIntegration_integrationUri,+    createIntegration_passthroughBehavior,+    createIntegration_payloadFormatVersion,+    createIntegration_requestParameters,+    createIntegration_requestTemplates,+    createIntegration_responseParameters,+    createIntegration_templateSelectionExpression,+    createIntegration_timeoutInMillis,+    createIntegration_tlsConfig,+    createIntegration_apiId,+    createIntegration_integrationType,+    createIntegrationResponse'_apiGatewayManaged,+    createIntegrationResponse'_connectionId,+    createIntegrationResponse'_connectionType,+    createIntegrationResponse'_contentHandlingStrategy,+    createIntegrationResponse'_credentialsArn,+    createIntegrationResponse'_description,+    createIntegrationResponse'_integrationId,+    createIntegrationResponse'_integrationMethod,+    createIntegrationResponse'_integrationResponseSelectionExpression,+    createIntegrationResponse'_integrationSubtype,+    createIntegrationResponse'_integrationType,+    createIntegrationResponse'_integrationUri,+    createIntegrationResponse'_passthroughBehavior,+    createIntegrationResponse'_payloadFormatVersion,+    createIntegrationResponse'_requestParameters,+    createIntegrationResponse'_requestTemplates,+    createIntegrationResponse'_responseParameters,+    createIntegrationResponse'_templateSelectionExpression,+    createIntegrationResponse'_timeoutInMillis,+    createIntegrationResponse'_tlsConfig,+    createIntegrationResponse'_httpStatus,++    -- ** CreateIntegrationResponse+    createIntegrationResponse_contentHandlingStrategy,+    createIntegrationResponse_responseParameters,+    createIntegrationResponse_responseTemplates,+    createIntegrationResponse_templateSelectionExpression,+    createIntegrationResponse_apiId,+    createIntegrationResponse_integrationId,+    createIntegrationResponse_integrationResponseKey,+    createIntegrationResponseResponse_contentHandlingStrategy,+    createIntegrationResponseResponse_integrationResponseId,+    createIntegrationResponseResponse_integrationResponseKey,+    createIntegrationResponseResponse_responseParameters,+    createIntegrationResponseResponse_responseTemplates,+    createIntegrationResponseResponse_templateSelectionExpression,+    createIntegrationResponseResponse_httpStatus,++    -- ** CreateModel+    createModel_contentType,+    createModel_description,+    createModel_apiId,+    createModel_schema,+    createModel_name,+    createModelResponse_contentType,+    createModelResponse_description,+    createModelResponse_modelId,+    createModelResponse_name,+    createModelResponse_schema,+    createModelResponse_httpStatus,++    -- ** CreateRoute+    createRoute_apiKeyRequired,+    createRoute_authorizationScopes,+    createRoute_authorizationType,+    createRoute_authorizerId,+    createRoute_modelSelectionExpression,+    createRoute_operationName,+    createRoute_requestModels,+    createRoute_requestParameters,+    createRoute_routeResponseSelectionExpression,+    createRoute_target,+    createRoute_apiId,+    createRoute_routeKey,+    createRouteResponse'_apiGatewayManaged,+    createRouteResponse'_apiKeyRequired,+    createRouteResponse'_authorizationScopes,+    createRouteResponse'_authorizationType,+    createRouteResponse'_authorizerId,+    createRouteResponse'_modelSelectionExpression,+    createRouteResponse'_operationName,+    createRouteResponse'_requestModels,+    createRouteResponse'_requestParameters,+    createRouteResponse'_routeId,+    createRouteResponse'_routeKey,+    createRouteResponse'_routeResponseSelectionExpression,+    createRouteResponse'_target,+    createRouteResponse'_httpStatus,++    -- ** CreateRouteResponse+    createRouteResponse_modelSelectionExpression,+    createRouteResponse_responseModels,+    createRouteResponse_responseParameters,+    createRouteResponse_apiId,+    createRouteResponse_routeId,+    createRouteResponse_routeResponseKey,+    createRouteResponseResponse_modelSelectionExpression,+    createRouteResponseResponse_responseModels,+    createRouteResponseResponse_responseParameters,+    createRouteResponseResponse_routeResponseId,+    createRouteResponseResponse_routeResponseKey,+    createRouteResponseResponse_httpStatus,++    -- ** CreateStage+    createStage_accessLogSettings,+    createStage_autoDeploy,+    createStage_clientCertificateId,+    createStage_defaultRouteSettings,+    createStage_deploymentId,+    createStage_description,+    createStage_routeSettings,+    createStage_stageVariables,+    createStage_tags,+    createStage_apiId,+    createStage_stageName,+    createStageResponse_accessLogSettings,+    createStageResponse_apiGatewayManaged,+    createStageResponse_autoDeploy,+    createStageResponse_clientCertificateId,+    createStageResponse_createdDate,+    createStageResponse_defaultRouteSettings,+    createStageResponse_deploymentId,+    createStageResponse_description,+    createStageResponse_lastDeploymentStatusMessage,+    createStageResponse_lastUpdatedDate,+    createStageResponse_routeSettings,+    createStageResponse_stageName,+    createStageResponse_stageVariables,+    createStageResponse_tags,+    createStageResponse_httpStatus,++    -- ** CreateVpcLink+    createVpcLink_securityGroupIds,+    createVpcLink_tags,+    createVpcLink_subnetIds,+    createVpcLink_name,+    createVpcLinkResponse_createdDate,+    createVpcLinkResponse_name,+    createVpcLinkResponse_securityGroupIds,+    createVpcLinkResponse_subnetIds,+    createVpcLinkResponse_tags,+    createVpcLinkResponse_vpcLinkId,+    createVpcLinkResponse_vpcLinkStatus,+    createVpcLinkResponse_vpcLinkStatusMessage,+    createVpcLinkResponse_vpcLinkVersion,+    createVpcLinkResponse_httpStatus,++    -- ** DeleteAccessLogSettings+    deleteAccessLogSettings_stageName,+    deleteAccessLogSettings_apiId,++    -- ** DeleteApi+    deleteApi_apiId,++    -- ** DeleteApiMapping+    deleteApiMapping_apiMappingId,+    deleteApiMapping_domainName,++    -- ** DeleteAuthorizer+    deleteAuthorizer_authorizerId,+    deleteAuthorizer_apiId,++    -- ** DeleteCorsConfiguration+    deleteCorsConfiguration_apiId,++    -- ** DeleteDeployment+    deleteDeployment_apiId,+    deleteDeployment_deploymentId,++    -- ** DeleteDomainName+    deleteDomainName_domainName,++    -- ** DeleteIntegration+    deleteIntegration_apiId,+    deleteIntegration_integrationId,++    -- ** DeleteIntegrationResponse+    deleteIntegrationResponse_apiId,+    deleteIntegrationResponse_integrationResponseId,+    deleteIntegrationResponse_integrationId,++    -- ** DeleteModel+    deleteModel_modelId,+    deleteModel_apiId,++    -- ** DeleteRoute+    deleteRoute_apiId,+    deleteRoute_routeId,++    -- ** DeleteRouteRequestParameter+    deleteRouteRequestParameter_requestParameterKey,+    deleteRouteRequestParameter_apiId,+    deleteRouteRequestParameter_routeId,++    -- ** DeleteRouteResponse+    deleteRouteResponse_routeResponseId,+    deleteRouteResponse_apiId,+    deleteRouteResponse_routeId,++    -- ** DeleteRouteSettings+    deleteRouteSettings_stageName,+    deleteRouteSettings_routeKey,+    deleteRouteSettings_apiId,++    -- ** DeleteStage+    deleteStage_stageName,+    deleteStage_apiId,++    -- ** DeleteVpcLink+    deleteVpcLink_vpcLinkId,+    deleteVpcLinkResponse_httpStatus,++    -- ** ExportApi+    exportApi_exportVersion,+    exportApi_includeExtensions,+    exportApi_stageName,+    exportApi_specification,+    exportApi_outputType,+    exportApi_apiId,+    exportApiResponse_body,+    exportApiResponse_httpStatus,++    -- ** GetApi+    getApi_apiId,+    getApiResponse_apiEndpoint,+    getApiResponse_apiGatewayManaged,+    getApiResponse_apiId,+    getApiResponse_apiKeySelectionExpression,+    getApiResponse_corsConfiguration,+    getApiResponse_createdDate,+    getApiResponse_description,+    getApiResponse_disableExecuteApiEndpoint,+    getApiResponse_disableSchemaValidation,+    getApiResponse_importInfo,+    getApiResponse_name,+    getApiResponse_protocolType,+    getApiResponse_routeSelectionExpression,+    getApiResponse_tags,+    getApiResponse_version,+    getApiResponse_warnings,+    getApiResponse_httpStatus,++    -- ** GetApiMapping+    getApiMapping_apiMappingId,+    getApiMapping_domainName,+    getApiMappingResponse_apiId,+    getApiMappingResponse_apiMappingId,+    getApiMappingResponse_apiMappingKey,+    getApiMappingResponse_stage,+    getApiMappingResponse_httpStatus,++    -- ** GetApiMappings+    getApiMappings_maxResults,+    getApiMappings_nextToken,+    getApiMappings_domainName,+    getApiMappingsResponse_items,+    getApiMappingsResponse_nextToken,+    getApiMappingsResponse_httpStatus,++    -- ** GetApis+    getApis_maxResults,+    getApis_nextToken,+    getApisResponse_items,+    getApisResponse_nextToken,+    getApisResponse_httpStatus,++    -- ** GetAuthorizer+    getAuthorizer_authorizerId,+    getAuthorizer_apiId,+    getAuthorizerResponse_authorizerCredentialsArn,+    getAuthorizerResponse_authorizerId,+    getAuthorizerResponse_authorizerPayloadFormatVersion,+    getAuthorizerResponse_authorizerResultTtlInSeconds,+    getAuthorizerResponse_authorizerType,+    getAuthorizerResponse_authorizerUri,+    getAuthorizerResponse_enableSimpleResponses,+    getAuthorizerResponse_identitySource,+    getAuthorizerResponse_identityValidationExpression,+    getAuthorizerResponse_jwtConfiguration,+    getAuthorizerResponse_name,+    getAuthorizerResponse_httpStatus,++    -- ** GetAuthorizers+    getAuthorizers_maxResults,+    getAuthorizers_nextToken,+    getAuthorizers_apiId,+    getAuthorizersResponse_items,+    getAuthorizersResponse_nextToken,+    getAuthorizersResponse_httpStatus,++    -- ** GetDeployment+    getDeployment_apiId,+    getDeployment_deploymentId,+    getDeploymentResponse_autoDeployed,+    getDeploymentResponse_createdDate,+    getDeploymentResponse_deploymentId,+    getDeploymentResponse_deploymentStatus,+    getDeploymentResponse_deploymentStatusMessage,+    getDeploymentResponse_description,+    getDeploymentResponse_httpStatus,++    -- ** GetDeployments+    getDeployments_maxResults,+    getDeployments_nextToken,+    getDeployments_apiId,+    getDeploymentsResponse_items,+    getDeploymentsResponse_nextToken,+    getDeploymentsResponse_httpStatus,++    -- ** GetDomainName+    getDomainName_domainName,+    getDomainNameResponse_apiMappingSelectionExpression,+    getDomainNameResponse_domainName,+    getDomainNameResponse_domainNameConfigurations,+    getDomainNameResponse_mutualTlsAuthentication,+    getDomainNameResponse_tags,+    getDomainNameResponse_httpStatus,++    -- ** GetDomainNames+    getDomainNames_maxResults,+    getDomainNames_nextToken,+    getDomainNamesResponse_items,+    getDomainNamesResponse_nextToken,+    getDomainNamesResponse_httpStatus,++    -- ** GetIntegration+    getIntegration_apiId,+    getIntegration_integrationId,+    getIntegrationResponse'_apiGatewayManaged,+    getIntegrationResponse'_connectionId,+    getIntegrationResponse'_connectionType,+    getIntegrationResponse'_contentHandlingStrategy,+    getIntegrationResponse'_credentialsArn,+    getIntegrationResponse'_description,+    getIntegrationResponse'_integrationId,+    getIntegrationResponse'_integrationMethod,+    getIntegrationResponse'_integrationResponseSelectionExpression,+    getIntegrationResponse'_integrationSubtype,+    getIntegrationResponse'_integrationType,+    getIntegrationResponse'_integrationUri,+    getIntegrationResponse'_passthroughBehavior,+    getIntegrationResponse'_payloadFormatVersion,+    getIntegrationResponse'_requestParameters,+    getIntegrationResponse'_requestTemplates,+    getIntegrationResponse'_responseParameters,+    getIntegrationResponse'_templateSelectionExpression,+    getIntegrationResponse'_timeoutInMillis,+    getIntegrationResponse'_tlsConfig,+    getIntegrationResponse'_httpStatus,++    -- ** GetIntegrationResponse+    getIntegrationResponse_apiId,+    getIntegrationResponse_integrationResponseId,+    getIntegrationResponse_integrationId,+    getIntegrationResponseResponse_contentHandlingStrategy,+    getIntegrationResponseResponse_integrationResponseId,+    getIntegrationResponseResponse_integrationResponseKey,+    getIntegrationResponseResponse_responseParameters,+    getIntegrationResponseResponse_responseTemplates,+    getIntegrationResponseResponse_templateSelectionExpression,+    getIntegrationResponseResponse_httpStatus,++    -- ** GetIntegrationResponses+    getIntegrationResponses_maxResults,+    getIntegrationResponses_nextToken,+    getIntegrationResponses_integrationId,+    getIntegrationResponses_apiId,+    getIntegrationResponsesResponse_items,+    getIntegrationResponsesResponse_nextToken,+    getIntegrationResponsesResponse_httpStatus,++    -- ** GetIntegrations+    getIntegrations_maxResults,+    getIntegrations_nextToken,+    getIntegrations_apiId,+    getIntegrationsResponse_items,+    getIntegrationsResponse_nextToken,+    getIntegrationsResponse_httpStatus,++    -- ** GetModel+    getModel_modelId,+    getModel_apiId,+    getModelResponse_contentType,+    getModelResponse_description,+    getModelResponse_modelId,+    getModelResponse_name,+    getModelResponse_schema,+    getModelResponse_httpStatus,++    -- ** GetModelTemplate+    getModelTemplate_modelId,+    getModelTemplate_apiId,+    getModelTemplateResponse_value,+    getModelTemplateResponse_httpStatus,++    -- ** GetModels+    getModels_maxResults,+    getModels_nextToken,+    getModels_apiId,+    getModelsResponse_items,+    getModelsResponse_nextToken,+    getModelsResponse_httpStatus,++    -- ** GetRoute+    getRoute_apiId,+    getRoute_routeId,+    getRouteResponse'_apiGatewayManaged,+    getRouteResponse'_apiKeyRequired,+    getRouteResponse'_authorizationScopes,+    getRouteResponse'_authorizationType,+    getRouteResponse'_authorizerId,+    getRouteResponse'_modelSelectionExpression,+    getRouteResponse'_operationName,+    getRouteResponse'_requestModels,+    getRouteResponse'_requestParameters,+    getRouteResponse'_routeId,+    getRouteResponse'_routeKey,+    getRouteResponse'_routeResponseSelectionExpression,+    getRouteResponse'_target,+    getRouteResponse'_httpStatus,++    -- ** GetRouteResponse+    getRouteResponse_routeResponseId,+    getRouteResponse_apiId,+    getRouteResponse_routeId,+    getRouteResponseResponse_modelSelectionExpression,+    getRouteResponseResponse_responseModels,+    getRouteResponseResponse_responseParameters,+    getRouteResponseResponse_routeResponseId,+    getRouteResponseResponse_routeResponseKey,+    getRouteResponseResponse_httpStatus,++    -- ** GetRouteResponses+    getRouteResponses_maxResults,+    getRouteResponses_nextToken,+    getRouteResponses_routeId,+    getRouteResponses_apiId,+    getRouteResponsesResponse_items,+    getRouteResponsesResponse_nextToken,+    getRouteResponsesResponse_httpStatus,++    -- ** GetRoutes+    getRoutes_maxResults,+    getRoutes_nextToken,+    getRoutes_apiId,+    getRoutesResponse_items,+    getRoutesResponse_nextToken,+    getRoutesResponse_httpStatus,++    -- ** GetStage+    getStage_stageName,+    getStage_apiId,+    getStageResponse_accessLogSettings,+    getStageResponse_apiGatewayManaged,+    getStageResponse_autoDeploy,+    getStageResponse_clientCertificateId,+    getStageResponse_createdDate,+    getStageResponse_defaultRouteSettings,+    getStageResponse_deploymentId,+    getStageResponse_description,+    getStageResponse_lastDeploymentStatusMessage,+    getStageResponse_lastUpdatedDate,+    getStageResponse_routeSettings,+    getStageResponse_stageName,+    getStageResponse_stageVariables,+    getStageResponse_tags,+    getStageResponse_httpStatus,++    -- ** GetStages+    getStages_maxResults,+    getStages_nextToken,+    getStages_apiId,+    getStagesResponse_items,+    getStagesResponse_nextToken,+    getStagesResponse_httpStatus,++    -- ** GetTags+    getTags_resourceArn,+    getTagsResponse_tags,+    getTagsResponse_httpStatus,++    -- ** GetVpcLink+    getVpcLink_vpcLinkId,+    getVpcLinkResponse_createdDate,+    getVpcLinkResponse_name,+    getVpcLinkResponse_securityGroupIds,+    getVpcLinkResponse_subnetIds,+    getVpcLinkResponse_tags,+    getVpcLinkResponse_vpcLinkId,+    getVpcLinkResponse_vpcLinkStatus,+    getVpcLinkResponse_vpcLinkStatusMessage,+    getVpcLinkResponse_vpcLinkVersion,+    getVpcLinkResponse_httpStatus,++    -- ** GetVpcLinks+    getVpcLinks_maxResults,+    getVpcLinks_nextToken,+    getVpcLinksResponse_items,+    getVpcLinksResponse_nextToken,+    getVpcLinksResponse_httpStatus,++    -- ** ImportApi+    importApi_basepath,+    importApi_failOnWarnings,+    importApi_body,+    importApiResponse_apiEndpoint,+    importApiResponse_apiGatewayManaged,+    importApiResponse_apiId,+    importApiResponse_apiKeySelectionExpression,+    importApiResponse_corsConfiguration,+    importApiResponse_createdDate,+    importApiResponse_description,+    importApiResponse_disableExecuteApiEndpoint,+    importApiResponse_disableSchemaValidation,+    importApiResponse_importInfo,+    importApiResponse_name,+    importApiResponse_protocolType,+    importApiResponse_routeSelectionExpression,+    importApiResponse_tags,+    importApiResponse_version,+    importApiResponse_warnings,+    importApiResponse_httpStatus,++    -- ** ReimportApi+    reimportApi_basepath,+    reimportApi_failOnWarnings,+    reimportApi_apiId,+    reimportApi_body,+    reimportApiResponse_apiEndpoint,+    reimportApiResponse_apiGatewayManaged,+    reimportApiResponse_apiId,+    reimportApiResponse_apiKeySelectionExpression,+    reimportApiResponse_corsConfiguration,+    reimportApiResponse_createdDate,+    reimportApiResponse_description,+    reimportApiResponse_disableExecuteApiEndpoint,+    reimportApiResponse_disableSchemaValidation,+    reimportApiResponse_importInfo,+    reimportApiResponse_name,+    reimportApiResponse_protocolType,+    reimportApiResponse_routeSelectionExpression,+    reimportApiResponse_tags,+    reimportApiResponse_version,+    reimportApiResponse_warnings,+    reimportApiResponse_httpStatus,++    -- ** ResetAuthorizersCache+    resetAuthorizersCache_stageName,+    resetAuthorizersCache_apiId,++    -- ** TagResource+    tagResource_tags,+    tagResource_resourceArn,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- ** UpdateApi+    updateApi_apiKeySelectionExpression,+    updateApi_corsConfiguration,+    updateApi_credentialsArn,+    updateApi_description,+    updateApi_disableExecuteApiEndpoint,+    updateApi_disableSchemaValidation,+    updateApi_name,+    updateApi_routeKey,+    updateApi_routeSelectionExpression,+    updateApi_target,+    updateApi_version,+    updateApi_apiId,+    updateApiResponse_apiEndpoint,+    updateApiResponse_apiGatewayManaged,+    updateApiResponse_apiId,+    updateApiResponse_apiKeySelectionExpression,+    updateApiResponse_corsConfiguration,+    updateApiResponse_createdDate,+    updateApiResponse_description,+    updateApiResponse_disableExecuteApiEndpoint,+    updateApiResponse_disableSchemaValidation,+    updateApiResponse_importInfo,+    updateApiResponse_name,+    updateApiResponse_protocolType,+    updateApiResponse_routeSelectionExpression,+    updateApiResponse_tags,+    updateApiResponse_version,+    updateApiResponse_warnings,+    updateApiResponse_httpStatus,++    -- ** UpdateApiMapping+    updateApiMapping_apiMappingKey,+    updateApiMapping_stage,+    updateApiMapping_apiMappingId,+    updateApiMapping_apiId,+    updateApiMapping_domainName,+    updateApiMappingResponse_apiId,+    updateApiMappingResponse_apiMappingId,+    updateApiMappingResponse_apiMappingKey,+    updateApiMappingResponse_stage,+    updateApiMappingResponse_httpStatus,++    -- ** UpdateAuthorizer+    updateAuthorizer_authorizerCredentialsArn,+    updateAuthorizer_authorizerPayloadFormatVersion,+    updateAuthorizer_authorizerResultTtlInSeconds,+    updateAuthorizer_authorizerType,+    updateAuthorizer_authorizerUri,+    updateAuthorizer_enableSimpleResponses,+    updateAuthorizer_identitySource,+    updateAuthorizer_identityValidationExpression,+    updateAuthorizer_jwtConfiguration,+    updateAuthorizer_name,+    updateAuthorizer_authorizerId,+    updateAuthorizer_apiId,+    updateAuthorizerResponse_authorizerCredentialsArn,+    updateAuthorizerResponse_authorizerId,+    updateAuthorizerResponse_authorizerPayloadFormatVersion,+    updateAuthorizerResponse_authorizerResultTtlInSeconds,+    updateAuthorizerResponse_authorizerType,+    updateAuthorizerResponse_authorizerUri,+    updateAuthorizerResponse_enableSimpleResponses,+    updateAuthorizerResponse_identitySource,+    updateAuthorizerResponse_identityValidationExpression,+    updateAuthorizerResponse_jwtConfiguration,+    updateAuthorizerResponse_name,+    updateAuthorizerResponse_httpStatus,++    -- ** UpdateDeployment+    updateDeployment_description,+    updateDeployment_apiId,+    updateDeployment_deploymentId,+    updateDeploymentResponse_autoDeployed,+    updateDeploymentResponse_createdDate,+    updateDeploymentResponse_deploymentId,+    updateDeploymentResponse_deploymentStatus,+    updateDeploymentResponse_deploymentStatusMessage,+    updateDeploymentResponse_description,+    updateDeploymentResponse_httpStatus,++    -- ** UpdateDomainName+    updateDomainName_domainNameConfigurations,+    updateDomainName_mutualTlsAuthentication,+    updateDomainName_domainName,+    updateDomainNameResponse_apiMappingSelectionExpression,+    updateDomainNameResponse_domainName,+    updateDomainNameResponse_domainNameConfigurations,+    updateDomainNameResponse_mutualTlsAuthentication,+    updateDomainNameResponse_tags,+    updateDomainNameResponse_httpStatus,++    -- ** UpdateIntegration+    updateIntegration_connectionId,+    updateIntegration_connectionType,+    updateIntegration_contentHandlingStrategy,+    updateIntegration_credentialsArn,+    updateIntegration_description,+    updateIntegration_integrationMethod,+    updateIntegration_integrationSubtype,+    updateIntegration_integrationType,+    updateIntegration_integrationUri,+    updateIntegration_passthroughBehavior,+    updateIntegration_payloadFormatVersion,+    updateIntegration_requestParameters,+    updateIntegration_requestTemplates,+    updateIntegration_responseParameters,+    updateIntegration_templateSelectionExpression,+    updateIntegration_timeoutInMillis,+    updateIntegration_tlsConfig,+    updateIntegration_apiId,+    updateIntegration_integrationId,+    updateIntegrationResponse'_apiGatewayManaged,+    updateIntegrationResponse'_connectionId,+    updateIntegrationResponse'_connectionType,+    updateIntegrationResponse'_contentHandlingStrategy,+    updateIntegrationResponse'_credentialsArn,+    updateIntegrationResponse'_description,+    updateIntegrationResponse'_integrationId,+    updateIntegrationResponse'_integrationMethod,+    updateIntegrationResponse'_integrationResponseSelectionExpression,+    updateIntegrationResponse'_integrationSubtype,+    updateIntegrationResponse'_integrationType,+    updateIntegrationResponse'_integrationUri,+    updateIntegrationResponse'_passthroughBehavior,+    updateIntegrationResponse'_payloadFormatVersion,+    updateIntegrationResponse'_requestParameters,+    updateIntegrationResponse'_requestTemplates,+    updateIntegrationResponse'_responseParameters,+    updateIntegrationResponse'_templateSelectionExpression,+    updateIntegrationResponse'_timeoutInMillis,+    updateIntegrationResponse'_tlsConfig,+    updateIntegrationResponse'_httpStatus,++    -- ** UpdateIntegrationResponse+    updateIntegrationResponse_contentHandlingStrategy,+    updateIntegrationResponse_integrationResponseKey,+    updateIntegrationResponse_responseParameters,+    updateIntegrationResponse_responseTemplates,+    updateIntegrationResponse_templateSelectionExpression,+    updateIntegrationResponse_apiId,+    updateIntegrationResponse_integrationResponseId,+    updateIntegrationResponse_integrationId,+    updateIntegrationResponseResponse_contentHandlingStrategy,+    updateIntegrationResponseResponse_integrationResponseId,+    updateIntegrationResponseResponse_integrationResponseKey,+    updateIntegrationResponseResponse_responseParameters,+    updateIntegrationResponseResponse_responseTemplates,+    updateIntegrationResponseResponse_templateSelectionExpression,+    updateIntegrationResponseResponse_httpStatus,++    -- ** UpdateModel+    updateModel_contentType,+    updateModel_description,+    updateModel_name,+    updateModel_schema,+    updateModel_modelId,+    updateModel_apiId,+    updateModelResponse_contentType,+    updateModelResponse_description,+    updateModelResponse_modelId,+    updateModelResponse_name,+    updateModelResponse_schema,+    updateModelResponse_httpStatus,++    -- ** UpdateRoute+    updateRoute_apiKeyRequired,+    updateRoute_authorizationScopes,+    updateRoute_authorizationType,+    updateRoute_authorizerId,+    updateRoute_modelSelectionExpression,+    updateRoute_operationName,+    updateRoute_requestModels,+    updateRoute_requestParameters,+    updateRoute_routeKey,+    updateRoute_routeResponseSelectionExpression,+    updateRoute_target,+    updateRoute_apiId,+    updateRoute_routeId,+    updateRouteResponse'_apiGatewayManaged,+    updateRouteResponse'_apiKeyRequired,+    updateRouteResponse'_authorizationScopes,+    updateRouteResponse'_authorizationType,+    updateRouteResponse'_authorizerId,+    updateRouteResponse'_modelSelectionExpression,+    updateRouteResponse'_operationName,+    updateRouteResponse'_requestModels,+    updateRouteResponse'_requestParameters,+    updateRouteResponse'_routeId,+    updateRouteResponse'_routeKey,+    updateRouteResponse'_routeResponseSelectionExpression,+    updateRouteResponse'_target,+    updateRouteResponse'_httpStatus,++    -- ** UpdateRouteResponse+    updateRouteResponse_modelSelectionExpression,+    updateRouteResponse_responseModels,+    updateRouteResponse_responseParameters,+    updateRouteResponse_routeResponseKey,+    updateRouteResponse_routeResponseId,+    updateRouteResponse_apiId,+    updateRouteResponse_routeId,+    updateRouteResponseResponse_modelSelectionExpression,+    updateRouteResponseResponse_responseModels,+    updateRouteResponseResponse_responseParameters,+    updateRouteResponseResponse_routeResponseId,+    updateRouteResponseResponse_routeResponseKey,+    updateRouteResponseResponse_httpStatus,++    -- ** UpdateStage+    updateStage_accessLogSettings,+    updateStage_autoDeploy,+    updateStage_clientCertificateId,+    updateStage_defaultRouteSettings,+    updateStage_deploymentId,+    updateStage_description,+    updateStage_routeSettings,+    updateStage_stageVariables,+    updateStage_stageName,+    updateStage_apiId,+    updateStageResponse_accessLogSettings,+    updateStageResponse_apiGatewayManaged,+    updateStageResponse_autoDeploy,+    updateStageResponse_clientCertificateId,+    updateStageResponse_createdDate,+    updateStageResponse_defaultRouteSettings,+    updateStageResponse_deploymentId,+    updateStageResponse_description,+    updateStageResponse_lastDeploymentStatusMessage,+    updateStageResponse_lastUpdatedDate,+    updateStageResponse_routeSettings,+    updateStageResponse_stageName,+    updateStageResponse_stageVariables,+    updateStageResponse_tags,+    updateStageResponse_httpStatus,++    -- ** UpdateVpcLink+    updateVpcLink_name,+    updateVpcLink_vpcLinkId,+    updateVpcLinkResponse_createdDate,+    updateVpcLinkResponse_name,+    updateVpcLinkResponse_securityGroupIds,+    updateVpcLinkResponse_subnetIds,+    updateVpcLinkResponse_tags,+    updateVpcLinkResponse_vpcLinkId,+    updateVpcLinkResponse_vpcLinkStatus,+    updateVpcLinkResponse_vpcLinkStatusMessage,+    updateVpcLinkResponse_vpcLinkVersion,+    updateVpcLinkResponse_httpStatus,++    -- * Types++    -- ** AccessLogSettings+    accessLogSettings_destinationArn,+    accessLogSettings_format,++    -- ** Api+    api_apiEndpoint,+    api_apiGatewayManaged,+    api_apiId,+    api_apiKeySelectionExpression,+    api_corsConfiguration,+    api_createdDate,+    api_description,+    api_disableExecuteApiEndpoint,+    api_disableSchemaValidation,+    api_importInfo,+    api_tags,+    api_version,+    api_warnings,+    api_routeSelectionExpression,+    api_name,+    api_protocolType,++    -- ** ApiMapping+    apiMapping_apiMappingId,+    apiMapping_apiMappingKey,+    apiMapping_stage,+    apiMapping_apiId,++    -- ** Authorizer+    authorizer_authorizerCredentialsArn,+    authorizer_authorizerId,+    authorizer_authorizerPayloadFormatVersion,+    authorizer_authorizerResultTtlInSeconds,+    authorizer_authorizerType,+    authorizer_authorizerUri,+    authorizer_enableSimpleResponses,+    authorizer_identitySource,+    authorizer_identityValidationExpression,+    authorizer_jwtConfiguration,+    authorizer_name,++    -- ** Cors+    cors_allowCredentials,+    cors_allowHeaders,+    cors_allowMethods,+    cors_allowOrigins,+    cors_exposeHeaders,+    cors_maxAge,++    -- ** Deployment+    deployment_autoDeployed,+    deployment_createdDate,+    deployment_deploymentId,+    deployment_deploymentStatus,+    deployment_deploymentStatusMessage,+    deployment_description,++    -- ** DomainName+    domainName_apiMappingSelectionExpression,+    domainName_domainNameConfigurations,+    domainName_mutualTlsAuthentication,+    domainName_tags,+    domainName_domainName,++    -- ** DomainNameConfiguration+    domainNameConfiguration_apiGatewayDomainName,+    domainNameConfiguration_certificateArn,+    domainNameConfiguration_certificateName,+    domainNameConfiguration_certificateUploadDate,+    domainNameConfiguration_domainNameStatus,+    domainNameConfiguration_domainNameStatusMessage,+    domainNameConfiguration_endpointType,+    domainNameConfiguration_hostedZoneId,+    domainNameConfiguration_ownershipVerificationCertificateArn,+    domainNameConfiguration_securityPolicy,++    -- ** Integration+    integration_apiGatewayManaged,+    integration_connectionId,+    integration_connectionType,+    integration_contentHandlingStrategy,+    integration_credentialsArn,+    integration_description,+    integration_integrationId,+    integration_integrationMethod,+    integration_integrationResponseSelectionExpression,+    integration_integrationSubtype,+    integration_integrationType,+    integration_integrationUri,+    integration_passthroughBehavior,+    integration_payloadFormatVersion,+    integration_requestParameters,+    integration_requestTemplates,+    integration_responseParameters,+    integration_templateSelectionExpression,+    integration_timeoutInMillis,+    integration_tlsConfig,++    -- ** IntegrationResponse+    integrationResponse_contentHandlingStrategy,+    integrationResponse_integrationResponseId,+    integrationResponse_responseParameters,+    integrationResponse_responseTemplates,+    integrationResponse_templateSelectionExpression,+    integrationResponse_integrationResponseKey,++    -- ** JWTConfiguration+    jWTConfiguration_audience,+    jWTConfiguration_issuer,++    -- ** Model+    model_contentType,+    model_description,+    model_modelId,+    model_schema,+    model_name,++    -- ** MutualTlsAuthentication+    mutualTlsAuthentication_truststoreUri,+    mutualTlsAuthentication_truststoreVersion,+    mutualTlsAuthentication_truststoreWarnings,++    -- ** MutualTlsAuthenticationInput+    mutualTlsAuthenticationInput_truststoreUri,+    mutualTlsAuthenticationInput_truststoreVersion,++    -- ** ParameterConstraints+    parameterConstraints_required,++    -- ** Route+    route_apiGatewayManaged,+    route_apiKeyRequired,+    route_authorizationScopes,+    route_authorizationType,+    route_authorizerId,+    route_modelSelectionExpression,+    route_operationName,+    route_requestModels,+    route_requestParameters,+    route_routeId,+    route_routeResponseSelectionExpression,+    route_target,+    route_routeKey,++    -- ** RouteResponse+    routeResponse_modelSelectionExpression,+    routeResponse_responseModels,+    routeResponse_responseParameters,+    routeResponse_routeResponseId,+    routeResponse_routeResponseKey,++    -- ** RouteSettings+    routeSettings_dataTraceEnabled,+    routeSettings_detailedMetricsEnabled,+    routeSettings_loggingLevel,+    routeSettings_throttlingBurstLimit,+    routeSettings_throttlingRateLimit,++    -- ** Stage+    stage_accessLogSettings,+    stage_apiGatewayManaged,+    stage_autoDeploy,+    stage_clientCertificateId,+    stage_createdDate,+    stage_defaultRouteSettings,+    stage_deploymentId,+    stage_description,+    stage_lastDeploymentStatusMessage,+    stage_lastUpdatedDate,+    stage_routeSettings,+    stage_stageVariables,+    stage_tags,+    stage_stageName,++    -- ** TlsConfig+    tlsConfig_serverNameToVerify,++    -- ** TlsConfigInput+    tlsConfigInput_serverNameToVerify,++    -- ** VpcLink+    vpcLink_createdDate,+    vpcLink_tags,+    vpcLink_vpcLinkStatus,+    vpcLink_vpcLinkStatusMessage,+    vpcLink_vpcLinkVersion,+    vpcLink_vpcLinkId,+    vpcLink_securityGroupIds,+    vpcLink_subnetIds,+    vpcLink_name,+  )+where++import Amazonka.ApiGatewayV2.CreateApi+import Amazonka.ApiGatewayV2.CreateApiMapping+import Amazonka.ApiGatewayV2.CreateAuthorizer+import Amazonka.ApiGatewayV2.CreateDeployment+import Amazonka.ApiGatewayV2.CreateDomainName+import Amazonka.ApiGatewayV2.CreateIntegration+import Amazonka.ApiGatewayV2.CreateIntegrationResponse+import Amazonka.ApiGatewayV2.CreateModel+import Amazonka.ApiGatewayV2.CreateRoute+import Amazonka.ApiGatewayV2.CreateRouteResponse+import Amazonka.ApiGatewayV2.CreateStage+import Amazonka.ApiGatewayV2.CreateVpcLink+import Amazonka.ApiGatewayV2.DeleteAccessLogSettings+import Amazonka.ApiGatewayV2.DeleteApi+import Amazonka.ApiGatewayV2.DeleteApiMapping+import Amazonka.ApiGatewayV2.DeleteAuthorizer+import Amazonka.ApiGatewayV2.DeleteCorsConfiguration+import Amazonka.ApiGatewayV2.DeleteDeployment+import Amazonka.ApiGatewayV2.DeleteDomainName+import Amazonka.ApiGatewayV2.DeleteIntegration+import Amazonka.ApiGatewayV2.DeleteIntegrationResponse+import Amazonka.ApiGatewayV2.DeleteModel+import Amazonka.ApiGatewayV2.DeleteRoute+import Amazonka.ApiGatewayV2.DeleteRouteRequestParameter+import Amazonka.ApiGatewayV2.DeleteRouteResponse+import Amazonka.ApiGatewayV2.DeleteRouteSettings+import Amazonka.ApiGatewayV2.DeleteStage+import Amazonka.ApiGatewayV2.DeleteVpcLink+import Amazonka.ApiGatewayV2.ExportApi+import Amazonka.ApiGatewayV2.GetApi+import Amazonka.ApiGatewayV2.GetApiMapping+import Amazonka.ApiGatewayV2.GetApiMappings+import Amazonka.ApiGatewayV2.GetApis+import Amazonka.ApiGatewayV2.GetAuthorizer+import Amazonka.ApiGatewayV2.GetAuthorizers+import Amazonka.ApiGatewayV2.GetDeployment+import Amazonka.ApiGatewayV2.GetDeployments+import Amazonka.ApiGatewayV2.GetDomainName+import Amazonka.ApiGatewayV2.GetDomainNames+import Amazonka.ApiGatewayV2.GetIntegration+import Amazonka.ApiGatewayV2.GetIntegrationResponse+import Amazonka.ApiGatewayV2.GetIntegrationResponses+import Amazonka.ApiGatewayV2.GetIntegrations+import Amazonka.ApiGatewayV2.GetModel+import Amazonka.ApiGatewayV2.GetModelTemplate+import Amazonka.ApiGatewayV2.GetModels+import Amazonka.ApiGatewayV2.GetRoute+import Amazonka.ApiGatewayV2.GetRouteResponse+import Amazonka.ApiGatewayV2.GetRouteResponses+import Amazonka.ApiGatewayV2.GetRoutes+import Amazonka.ApiGatewayV2.GetStage+import Amazonka.ApiGatewayV2.GetStages+import Amazonka.ApiGatewayV2.GetTags+import Amazonka.ApiGatewayV2.GetVpcLink+import Amazonka.ApiGatewayV2.GetVpcLinks+import Amazonka.ApiGatewayV2.ImportApi+import Amazonka.ApiGatewayV2.ReimportApi+import Amazonka.ApiGatewayV2.ResetAuthorizersCache+import Amazonka.ApiGatewayV2.TagResource+import Amazonka.ApiGatewayV2.Types.AccessLogSettings+import Amazonka.ApiGatewayV2.Types.Api+import Amazonka.ApiGatewayV2.Types.ApiMapping+import Amazonka.ApiGatewayV2.Types.Authorizer+import Amazonka.ApiGatewayV2.Types.Cors+import Amazonka.ApiGatewayV2.Types.Deployment+import Amazonka.ApiGatewayV2.Types.DomainName+import Amazonka.ApiGatewayV2.Types.DomainNameConfiguration+import Amazonka.ApiGatewayV2.Types.Integration+import Amazonka.ApiGatewayV2.Types.IntegrationResponse+import Amazonka.ApiGatewayV2.Types.JWTConfiguration+import Amazonka.ApiGatewayV2.Types.Model+import Amazonka.ApiGatewayV2.Types.MutualTlsAuthentication+import Amazonka.ApiGatewayV2.Types.MutualTlsAuthenticationInput+import Amazonka.ApiGatewayV2.Types.ParameterConstraints+import Amazonka.ApiGatewayV2.Types.Route+import Amazonka.ApiGatewayV2.Types.RouteResponse+import Amazonka.ApiGatewayV2.Types.RouteSettings+import Amazonka.ApiGatewayV2.Types.Stage+import Amazonka.ApiGatewayV2.Types.TlsConfig+import Amazonka.ApiGatewayV2.Types.TlsConfigInput+import Amazonka.ApiGatewayV2.Types.VpcLink+import Amazonka.ApiGatewayV2.UntagResource+import Amazonka.ApiGatewayV2.UpdateApi+import Amazonka.ApiGatewayV2.UpdateApiMapping+import Amazonka.ApiGatewayV2.UpdateAuthorizer+import Amazonka.ApiGatewayV2.UpdateDeployment+import Amazonka.ApiGatewayV2.UpdateDomainName+import Amazonka.ApiGatewayV2.UpdateIntegration+import Amazonka.ApiGatewayV2.UpdateIntegrationResponse+import Amazonka.ApiGatewayV2.UpdateModel+import Amazonka.ApiGatewayV2.UpdateRoute+import Amazonka.ApiGatewayV2.UpdateRouteResponse+import Amazonka.ApiGatewayV2.UpdateStage+import Amazonka.ApiGatewayV2.UpdateVpcLink
+ gen/Amazonka/ApiGatewayV2/ReimportApi.hs view
@@ -0,0 +1,456 @@+{-# 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.ApiGatewayV2.ReimportApi+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Puts an Api resource.+module Amazonka.ApiGatewayV2.ReimportApi+  ( -- * Creating a Request+    ReimportApi (..),+    newReimportApi,++    -- * Request Lenses+    reimportApi_basepath,+    reimportApi_failOnWarnings,+    reimportApi_apiId,+    reimportApi_body,++    -- * Destructuring the Response+    ReimportApiResponse (..),+    newReimportApiResponse,++    -- * Response Lenses+    reimportApiResponse_apiEndpoint,+    reimportApiResponse_apiGatewayManaged,+    reimportApiResponse_apiId,+    reimportApiResponse_apiKeySelectionExpression,+    reimportApiResponse_corsConfiguration,+    reimportApiResponse_createdDate,+    reimportApiResponse_description,+    reimportApiResponse_disableExecuteApiEndpoint,+    reimportApiResponse_disableSchemaValidation,+    reimportApiResponse_importInfo,+    reimportApiResponse_name,+    reimportApiResponse_protocolType,+    reimportApiResponse_routeSelectionExpression,+    reimportApiResponse_tags,+    reimportApiResponse_version,+    reimportApiResponse_warnings,+    reimportApiResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newReimportApi' smart constructor.+data ReimportApi = ReimportApi'+  { -- | Specifies how to interpret the base path of the API during import. Valid+    -- values are ignore, prepend, and split. The default value is ignore. To+    -- learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html Set the OpenAPI basePath Property>.+    -- Supported only for HTTP APIs.+    basepath :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether to rollback the API creation when a warning is+    -- encountered. By default, API creation continues if a warning is+    -- encountered.+    failOnWarnings :: Prelude.Maybe Prelude.Bool,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The OpenAPI definition. Supported only for HTTP APIs.+    body :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReimportApi' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'basepath', 'reimportApi_basepath' - Specifies how to interpret the base path of the API during import. Valid+-- values are ignore, prepend, and split. The default value is ignore. To+-- learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html Set the OpenAPI basePath Property>.+-- Supported only for HTTP APIs.+--+-- 'failOnWarnings', 'reimportApi_failOnWarnings' - Specifies whether to rollback the API creation when a warning is+-- encountered. By default, API creation continues if a warning is+-- encountered.+--+-- 'apiId', 'reimportApi_apiId' - The API identifier.+--+-- 'body', 'reimportApi_body' - The OpenAPI definition. Supported only for HTTP APIs.+newReimportApi ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'body'+  Prelude.Text ->+  ReimportApi+newReimportApi pApiId_ pBody_ =+  ReimportApi'+    { basepath = Prelude.Nothing,+      failOnWarnings = Prelude.Nothing,+      apiId = pApiId_,+      body = pBody_+    }++-- | Specifies how to interpret the base path of the API during import. Valid+-- values are ignore, prepend, and split. The default value is ignore. To+-- learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html Set the OpenAPI basePath Property>.+-- Supported only for HTTP APIs.+reimportApi_basepath :: Lens.Lens' ReimportApi (Prelude.Maybe Prelude.Text)+reimportApi_basepath = Lens.lens (\ReimportApi' {basepath} -> basepath) (\s@ReimportApi' {} a -> s {basepath = a} :: ReimportApi)++-- | Specifies whether to rollback the API creation when a warning is+-- encountered. By default, API creation continues if a warning is+-- encountered.+reimportApi_failOnWarnings :: Lens.Lens' ReimportApi (Prelude.Maybe Prelude.Bool)+reimportApi_failOnWarnings = Lens.lens (\ReimportApi' {failOnWarnings} -> failOnWarnings) (\s@ReimportApi' {} a -> s {failOnWarnings = a} :: ReimportApi)++-- | The API identifier.+reimportApi_apiId :: Lens.Lens' ReimportApi Prelude.Text+reimportApi_apiId = Lens.lens (\ReimportApi' {apiId} -> apiId) (\s@ReimportApi' {} a -> s {apiId = a} :: ReimportApi)++-- | The OpenAPI definition. Supported only for HTTP APIs.+reimportApi_body :: Lens.Lens' ReimportApi Prelude.Text+reimportApi_body = Lens.lens (\ReimportApi' {body} -> body) (\s@ReimportApi' {} a -> s {body = a} :: ReimportApi)++instance Core.AWSRequest ReimportApi where+  type AWSResponse ReimportApi = ReimportApiResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ReimportApiResponse'+            Prelude.<$> (x Data..?> "apiEndpoint")+            Prelude.<*> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "apiId")+            Prelude.<*> (x Data..?> "apiKeySelectionExpression")+            Prelude.<*> (x Data..?> "corsConfiguration")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "disableExecuteApiEndpoint")+            Prelude.<*> (x Data..?> "disableSchemaValidation")+            Prelude.<*> (x Data..?> "importInfo" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "protocolType")+            Prelude.<*> (x Data..?> "routeSelectionExpression")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (x Data..?> "warnings" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ReimportApi where+  hashWithSalt _salt ReimportApi' {..} =+    _salt+      `Prelude.hashWithSalt` basepath+      `Prelude.hashWithSalt` failOnWarnings+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` body++instance Prelude.NFData ReimportApi where+  rnf ReimportApi' {..} =+    Prelude.rnf basepath+      `Prelude.seq` Prelude.rnf failOnWarnings+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf body++instance Data.ToHeaders ReimportApi where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ReimportApi where+  toJSON ReimportApi' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("body" Data..= body)]+      )++instance Data.ToPath ReimportApi where+  toPath ReimportApi' {..} =+    Prelude.mconcat ["/v2/apis/", Data.toBS apiId]++instance Data.ToQuery ReimportApi where+  toQuery ReimportApi' {..} =+    Prelude.mconcat+      [ "basepath" Data.=: basepath,+        "failOnWarnings" Data.=: failOnWarnings+      ]++-- | /See:/ 'newReimportApiResponse' smart constructor.+data ReimportApiResponse = ReimportApiResponse'+  { -- | The URI of the API, of the form+    -- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+    -- appended to this URI to form a complete path to a deployed API stage.+    apiEndpoint :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether an API is managed by API Gateway. You can\'t update or+    -- delete a managed API by using API Gateway. A managed API can be deleted+    -- only through the tooling or service that created it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The API ID.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | An API key selection expression. Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+    apiKeySelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A CORS configuration. Supported only for HTTP APIs.+    corsConfiguration :: Prelude.Maybe Cors,+    -- | The timestamp when the API was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The description of the API.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether clients can invoke your API by using the default+    -- execute-api endpoint. By default, clients can invoke your API with the+    -- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+    -- To require that clients use a custom domain name to invoke your API,+    -- disable the default endpoint.+    disableExecuteApiEndpoint :: Prelude.Maybe Prelude.Bool,+    -- | Avoid validating models when creating a deployment. Supported only for+    -- WebSocket APIs.+    disableSchemaValidation :: Prelude.Maybe Prelude.Bool,+    -- | The validation information during API import. This may include+    -- particular properties of your OpenAPI definition which are ignored+    -- during import. Supported only for HTTP APIs.+    importInfo :: Prelude.Maybe [Prelude.Text],+    -- | The name of the API.+    name :: Prelude.Maybe Prelude.Text,+    -- | The API protocol.+    protocolType :: Prelude.Maybe ProtocolType,+    -- | The route selection expression for the API. For HTTP APIs, the+    -- routeSelectionExpression must be ${request.method} ${request.path}. If+    -- not provided, this will be the default for HTTP APIs. This property is+    -- required for WebSocket APIs.+    routeSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A collection of tags associated with the API.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A version identifier for the API.+    version :: Prelude.Maybe Prelude.Text,+    -- | The warning messages reported when failonwarnings is turned on during+    -- API import.+    warnings :: Prelude.Maybe [Prelude.Text],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReimportApiResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiEndpoint', 'reimportApiResponse_apiEndpoint' - The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+--+-- 'apiGatewayManaged', 'reimportApiResponse_apiGatewayManaged' - Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+--+-- 'apiId', 'reimportApiResponse_apiId' - The API ID.+--+-- 'apiKeySelectionExpression', 'reimportApiResponse_apiKeySelectionExpression' - An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+--+-- 'corsConfiguration', 'reimportApiResponse_corsConfiguration' - A CORS configuration. Supported only for HTTP APIs.+--+-- 'createdDate', 'reimportApiResponse_createdDate' - The timestamp when the API was created.+--+-- 'description', 'reimportApiResponse_description' - The description of the API.+--+-- 'disableExecuteApiEndpoint', 'reimportApiResponse_disableExecuteApiEndpoint' - Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+--+-- 'disableSchemaValidation', 'reimportApiResponse_disableSchemaValidation' - Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+--+-- 'importInfo', 'reimportApiResponse_importInfo' - The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+--+-- 'name', 'reimportApiResponse_name' - The name of the API.+--+-- 'protocolType', 'reimportApiResponse_protocolType' - The API protocol.+--+-- 'routeSelectionExpression', 'reimportApiResponse_routeSelectionExpression' - The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+--+-- 'tags', 'reimportApiResponse_tags' - A collection of tags associated with the API.+--+-- 'version', 'reimportApiResponse_version' - A version identifier for the API.+--+-- 'warnings', 'reimportApiResponse_warnings' - The warning messages reported when failonwarnings is turned on during+-- API import.+--+-- 'httpStatus', 'reimportApiResponse_httpStatus' - The response's http status code.+newReimportApiResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ReimportApiResponse+newReimportApiResponse pHttpStatus_ =+  ReimportApiResponse'+    { apiEndpoint = Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      apiId = Prelude.Nothing,+      apiKeySelectionExpression = Prelude.Nothing,+      corsConfiguration = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      disableExecuteApiEndpoint = Prelude.Nothing,+      disableSchemaValidation = Prelude.Nothing,+      importInfo = Prelude.Nothing,+      name = Prelude.Nothing,+      protocolType = Prelude.Nothing,+      routeSelectionExpression = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      warnings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+reimportApiResponse_apiEndpoint :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Text)+reimportApiResponse_apiEndpoint = Lens.lens (\ReimportApiResponse' {apiEndpoint} -> apiEndpoint) (\s@ReimportApiResponse' {} a -> s {apiEndpoint = a} :: ReimportApiResponse)++-- | Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+reimportApiResponse_apiGatewayManaged :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Bool)+reimportApiResponse_apiGatewayManaged = Lens.lens (\ReimportApiResponse' {apiGatewayManaged} -> apiGatewayManaged) (\s@ReimportApiResponse' {} a -> s {apiGatewayManaged = a} :: ReimportApiResponse)++-- | The API ID.+reimportApiResponse_apiId :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Text)+reimportApiResponse_apiId = Lens.lens (\ReimportApiResponse' {apiId} -> apiId) (\s@ReimportApiResponse' {} a -> s {apiId = a} :: ReimportApiResponse)++-- | An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+reimportApiResponse_apiKeySelectionExpression :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Text)+reimportApiResponse_apiKeySelectionExpression = Lens.lens (\ReimportApiResponse' {apiKeySelectionExpression} -> apiKeySelectionExpression) (\s@ReimportApiResponse' {} a -> s {apiKeySelectionExpression = a} :: ReimportApiResponse)++-- | A CORS configuration. Supported only for HTTP APIs.+reimportApiResponse_corsConfiguration :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Cors)+reimportApiResponse_corsConfiguration = Lens.lens (\ReimportApiResponse' {corsConfiguration} -> corsConfiguration) (\s@ReimportApiResponse' {} a -> s {corsConfiguration = a} :: ReimportApiResponse)++-- | The timestamp when the API was created.+reimportApiResponse_createdDate :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.UTCTime)+reimportApiResponse_createdDate = Lens.lens (\ReimportApiResponse' {createdDate} -> createdDate) (\s@ReimportApiResponse' {} a -> s {createdDate = a} :: ReimportApiResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the API.+reimportApiResponse_description :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Text)+reimportApiResponse_description = Lens.lens (\ReimportApiResponse' {description} -> description) (\s@ReimportApiResponse' {} a -> s {description = a} :: ReimportApiResponse)++-- | Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+reimportApiResponse_disableExecuteApiEndpoint :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Bool)+reimportApiResponse_disableExecuteApiEndpoint = Lens.lens (\ReimportApiResponse' {disableExecuteApiEndpoint} -> disableExecuteApiEndpoint) (\s@ReimportApiResponse' {} a -> s {disableExecuteApiEndpoint = a} :: ReimportApiResponse)++-- | Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+reimportApiResponse_disableSchemaValidation :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Bool)+reimportApiResponse_disableSchemaValidation = Lens.lens (\ReimportApiResponse' {disableSchemaValidation} -> disableSchemaValidation) (\s@ReimportApiResponse' {} a -> s {disableSchemaValidation = a} :: ReimportApiResponse)++-- | The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+reimportApiResponse_importInfo :: Lens.Lens' ReimportApiResponse (Prelude.Maybe [Prelude.Text])+reimportApiResponse_importInfo = Lens.lens (\ReimportApiResponse' {importInfo} -> importInfo) (\s@ReimportApiResponse' {} a -> s {importInfo = a} :: ReimportApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the API.+reimportApiResponse_name :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Text)+reimportApiResponse_name = Lens.lens (\ReimportApiResponse' {name} -> name) (\s@ReimportApiResponse' {} a -> s {name = a} :: ReimportApiResponse)++-- | The API protocol.+reimportApiResponse_protocolType :: Lens.Lens' ReimportApiResponse (Prelude.Maybe ProtocolType)+reimportApiResponse_protocolType = Lens.lens (\ReimportApiResponse' {protocolType} -> protocolType) (\s@ReimportApiResponse' {} a -> s {protocolType = a} :: ReimportApiResponse)++-- | The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+reimportApiResponse_routeSelectionExpression :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Text)+reimportApiResponse_routeSelectionExpression = Lens.lens (\ReimportApiResponse' {routeSelectionExpression} -> routeSelectionExpression) (\s@ReimportApiResponse' {} a -> s {routeSelectionExpression = a} :: ReimportApiResponse)++-- | A collection of tags associated with the API.+reimportApiResponse_tags :: Lens.Lens' ReimportApiResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+reimportApiResponse_tags = Lens.lens (\ReimportApiResponse' {tags} -> tags) (\s@ReimportApiResponse' {} a -> s {tags = a} :: ReimportApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | A version identifier for the API.+reimportApiResponse_version :: Lens.Lens' ReimportApiResponse (Prelude.Maybe Prelude.Text)+reimportApiResponse_version = Lens.lens (\ReimportApiResponse' {version} -> version) (\s@ReimportApiResponse' {} a -> s {version = a} :: ReimportApiResponse)++-- | The warning messages reported when failonwarnings is turned on during+-- API import.+reimportApiResponse_warnings :: Lens.Lens' ReimportApiResponse (Prelude.Maybe [Prelude.Text])+reimportApiResponse_warnings = Lens.lens (\ReimportApiResponse' {warnings} -> warnings) (\s@ReimportApiResponse' {} a -> s {warnings = a} :: ReimportApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+reimportApiResponse_httpStatus :: Lens.Lens' ReimportApiResponse Prelude.Int+reimportApiResponse_httpStatus = Lens.lens (\ReimportApiResponse' {httpStatus} -> httpStatus) (\s@ReimportApiResponse' {} a -> s {httpStatus = a} :: ReimportApiResponse)++instance Prelude.NFData ReimportApiResponse where+  rnf ReimportApiResponse' {..} =+    Prelude.rnf apiEndpoint+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiKeySelectionExpression+      `Prelude.seq` Prelude.rnf corsConfiguration+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf disableExecuteApiEndpoint+      `Prelude.seq` Prelude.rnf disableSchemaValidation+      `Prelude.seq` Prelude.rnf importInfo+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf routeSelectionExpression+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf warnings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/ResetAuthorizersCache.hs view
@@ -0,0 +1,154 @@+{-# 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.ApiGatewayV2.ResetAuthorizersCache+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Resets all authorizer cache entries on a stage. Supported only for HTTP+-- APIs.+module Amazonka.ApiGatewayV2.ResetAuthorizersCache+  ( -- * Creating a Request+    ResetAuthorizersCache (..),+    newResetAuthorizersCache,++    -- * Request Lenses+    resetAuthorizersCache_stageName,+    resetAuthorizersCache_apiId,++    -- * Destructuring the Response+    ResetAuthorizersCacheResponse (..),+    newResetAuthorizersCacheResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newResetAuthorizersCache' smart constructor.+data ResetAuthorizersCache = ResetAuthorizersCache'+  { -- | The stage name. Stage names can contain only alphanumeric characters,+    -- hyphens, and underscores, or be $default. Maximum length is 128+    -- characters.+    stageName :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResetAuthorizersCache' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stageName', 'resetAuthorizersCache_stageName' - The stage name. Stage names can contain only alphanumeric characters,+-- hyphens, and underscores, or be $default. Maximum length is 128+-- characters.+--+-- 'apiId', 'resetAuthorizersCache_apiId' - The API identifier.+newResetAuthorizersCache ::+  -- | 'stageName'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  ResetAuthorizersCache+newResetAuthorizersCache pStageName_ pApiId_ =+  ResetAuthorizersCache'+    { stageName = pStageName_,+      apiId = pApiId_+    }++-- | The stage name. Stage names can contain only alphanumeric characters,+-- hyphens, and underscores, or be $default. Maximum length is 128+-- characters.+resetAuthorizersCache_stageName :: Lens.Lens' ResetAuthorizersCache Prelude.Text+resetAuthorizersCache_stageName = Lens.lens (\ResetAuthorizersCache' {stageName} -> stageName) (\s@ResetAuthorizersCache' {} a -> s {stageName = a} :: ResetAuthorizersCache)++-- | The API identifier.+resetAuthorizersCache_apiId :: Lens.Lens' ResetAuthorizersCache Prelude.Text+resetAuthorizersCache_apiId = Lens.lens (\ResetAuthorizersCache' {apiId} -> apiId) (\s@ResetAuthorizersCache' {} a -> s {apiId = a} :: ResetAuthorizersCache)++instance Core.AWSRequest ResetAuthorizersCache where+  type+    AWSResponse ResetAuthorizersCache =+      ResetAuthorizersCacheResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull ResetAuthorizersCacheResponse'++instance Prelude.Hashable ResetAuthorizersCache where+  hashWithSalt _salt ResetAuthorizersCache' {..} =+    _salt+      `Prelude.hashWithSalt` stageName+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData ResetAuthorizersCache where+  rnf ResetAuthorizersCache' {..} =+    Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders ResetAuthorizersCache where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ResetAuthorizersCache where+  toPath ResetAuthorizersCache' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/stages/",+        Data.toBS stageName,+        "/cache/authorizers"+      ]++instance Data.ToQuery ResetAuthorizersCache where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newResetAuthorizersCacheResponse' smart constructor.+data ResetAuthorizersCacheResponse = ResetAuthorizersCacheResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResetAuthorizersCacheResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newResetAuthorizersCacheResponse ::+  ResetAuthorizersCacheResponse+newResetAuthorizersCacheResponse =+  ResetAuthorizersCacheResponse'++instance Prelude.NFData ResetAuthorizersCacheResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/TagResource.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new Tag resource to represent a tag.+module Amazonka.ApiGatewayV2.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_tags,+    tagResource_resourceArn,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Creates a new Tag resource to represent a tag.+--+-- /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The collection of tags. Each tag element is associated with a given+    -- resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The resource ARN for the tag.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'tagResource_tags' - The collection of tags. Each tag element is associated with a given+-- resource.+--+-- 'resourceArn', 'tagResource_resourceArn' - The resource ARN for the tag.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { tags = Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | The collection of tags. Each tag element is associated with a given+-- resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.mapping Lens.coerced++-- | The resource ARN for the tag.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [("tags" Data..=) Prelude.<$> tags]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat+      ["/v2/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/Types.hs view
@@ -0,0 +1,461 @@+{-# 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.ApiGatewayV2.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.ApiGatewayV2.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _BadRequestException,+    _ConflictException,+    _NotFoundException,+    _TooManyRequestsException,++    -- * AuthorizationType+    AuthorizationType (..),++    -- * AuthorizerType+    AuthorizerType (..),++    -- * ConnectionType+    ConnectionType (..),++    -- * ContentHandlingStrategy+    ContentHandlingStrategy (..),++    -- * DeploymentStatus+    DeploymentStatus (..),++    -- * DomainNameStatus+    DomainNameStatus (..),++    -- * EndpointType+    EndpointType (..),++    -- * IntegrationType+    IntegrationType (..),++    -- * LoggingLevel+    LoggingLevel (..),++    -- * PassthroughBehavior+    PassthroughBehavior (..),++    -- * ProtocolType+    ProtocolType (..),++    -- * SecurityPolicy+    SecurityPolicy (..),++    -- * VpcLinkStatus+    VpcLinkStatus (..),++    -- * VpcLinkVersion+    VpcLinkVersion (..),++    -- * AccessLogSettings+    AccessLogSettings (..),+    newAccessLogSettings,+    accessLogSettings_destinationArn,+    accessLogSettings_format,++    -- * Api+    Api (..),+    newApi,+    api_apiEndpoint,+    api_apiGatewayManaged,+    api_apiId,+    api_apiKeySelectionExpression,+    api_corsConfiguration,+    api_createdDate,+    api_description,+    api_disableExecuteApiEndpoint,+    api_disableSchemaValidation,+    api_importInfo,+    api_tags,+    api_version,+    api_warnings,+    api_routeSelectionExpression,+    api_name,+    api_protocolType,++    -- * ApiMapping+    ApiMapping (..),+    newApiMapping,+    apiMapping_apiMappingId,+    apiMapping_apiMappingKey,+    apiMapping_stage,+    apiMapping_apiId,++    -- * Authorizer+    Authorizer (..),+    newAuthorizer,+    authorizer_authorizerCredentialsArn,+    authorizer_authorizerId,+    authorizer_authorizerPayloadFormatVersion,+    authorizer_authorizerResultTtlInSeconds,+    authorizer_authorizerType,+    authorizer_authorizerUri,+    authorizer_enableSimpleResponses,+    authorizer_identitySource,+    authorizer_identityValidationExpression,+    authorizer_jwtConfiguration,+    authorizer_name,++    -- * Cors+    Cors (..),+    newCors,+    cors_allowCredentials,+    cors_allowHeaders,+    cors_allowMethods,+    cors_allowOrigins,+    cors_exposeHeaders,+    cors_maxAge,++    -- * Deployment+    Deployment (..),+    newDeployment,+    deployment_autoDeployed,+    deployment_createdDate,+    deployment_deploymentId,+    deployment_deploymentStatus,+    deployment_deploymentStatusMessage,+    deployment_description,++    -- * DomainName+    DomainName (..),+    newDomainName,+    domainName_apiMappingSelectionExpression,+    domainName_domainNameConfigurations,+    domainName_mutualTlsAuthentication,+    domainName_tags,+    domainName_domainName,++    -- * DomainNameConfiguration+    DomainNameConfiguration (..),+    newDomainNameConfiguration,+    domainNameConfiguration_apiGatewayDomainName,+    domainNameConfiguration_certificateArn,+    domainNameConfiguration_certificateName,+    domainNameConfiguration_certificateUploadDate,+    domainNameConfiguration_domainNameStatus,+    domainNameConfiguration_domainNameStatusMessage,+    domainNameConfiguration_endpointType,+    domainNameConfiguration_hostedZoneId,+    domainNameConfiguration_ownershipVerificationCertificateArn,+    domainNameConfiguration_securityPolicy,++    -- * Integration+    Integration (..),+    newIntegration,+    integration_apiGatewayManaged,+    integration_connectionId,+    integration_connectionType,+    integration_contentHandlingStrategy,+    integration_credentialsArn,+    integration_description,+    integration_integrationId,+    integration_integrationMethod,+    integration_integrationResponseSelectionExpression,+    integration_integrationSubtype,+    integration_integrationType,+    integration_integrationUri,+    integration_passthroughBehavior,+    integration_payloadFormatVersion,+    integration_requestParameters,+    integration_requestTemplates,+    integration_responseParameters,+    integration_templateSelectionExpression,+    integration_timeoutInMillis,+    integration_tlsConfig,++    -- * IntegrationResponse+    IntegrationResponse (..),+    newIntegrationResponse,+    integrationResponse_contentHandlingStrategy,+    integrationResponse_integrationResponseId,+    integrationResponse_responseParameters,+    integrationResponse_responseTemplates,+    integrationResponse_templateSelectionExpression,+    integrationResponse_integrationResponseKey,++    -- * JWTConfiguration+    JWTConfiguration (..),+    newJWTConfiguration,+    jWTConfiguration_audience,+    jWTConfiguration_issuer,++    -- * Model+    Model (..),+    newModel,+    model_contentType,+    model_description,+    model_modelId,+    model_schema,+    model_name,++    -- * MutualTlsAuthentication+    MutualTlsAuthentication (..),+    newMutualTlsAuthentication,+    mutualTlsAuthentication_truststoreUri,+    mutualTlsAuthentication_truststoreVersion,+    mutualTlsAuthentication_truststoreWarnings,++    -- * MutualTlsAuthenticationInput+    MutualTlsAuthenticationInput (..),+    newMutualTlsAuthenticationInput,+    mutualTlsAuthenticationInput_truststoreUri,+    mutualTlsAuthenticationInput_truststoreVersion,++    -- * ParameterConstraints+    ParameterConstraints (..),+    newParameterConstraints,+    parameterConstraints_required,++    -- * Route+    Route (..),+    newRoute,+    route_apiGatewayManaged,+    route_apiKeyRequired,+    route_authorizationScopes,+    route_authorizationType,+    route_authorizerId,+    route_modelSelectionExpression,+    route_operationName,+    route_requestModels,+    route_requestParameters,+    route_routeId,+    route_routeResponseSelectionExpression,+    route_target,+    route_routeKey,++    -- * RouteResponse+    RouteResponse (..),+    newRouteResponse,+    routeResponse_modelSelectionExpression,+    routeResponse_responseModels,+    routeResponse_responseParameters,+    routeResponse_routeResponseId,+    routeResponse_routeResponseKey,++    -- * RouteSettings+    RouteSettings (..),+    newRouteSettings,+    routeSettings_dataTraceEnabled,+    routeSettings_detailedMetricsEnabled,+    routeSettings_loggingLevel,+    routeSettings_throttlingBurstLimit,+    routeSettings_throttlingRateLimit,++    -- * Stage+    Stage (..),+    newStage,+    stage_accessLogSettings,+    stage_apiGatewayManaged,+    stage_autoDeploy,+    stage_clientCertificateId,+    stage_createdDate,+    stage_defaultRouteSettings,+    stage_deploymentId,+    stage_description,+    stage_lastDeploymentStatusMessage,+    stage_lastUpdatedDate,+    stage_routeSettings,+    stage_stageVariables,+    stage_tags,+    stage_stageName,++    -- * TlsConfig+    TlsConfig (..),+    newTlsConfig,+    tlsConfig_serverNameToVerify,++    -- * TlsConfigInput+    TlsConfigInput (..),+    newTlsConfigInput,+    tlsConfigInput_serverNameToVerify,++    -- * VpcLink+    VpcLink (..),+    newVpcLink,+    vpcLink_createdDate,+    vpcLink_tags,+    vpcLink_vpcLinkStatus,+    vpcLink_vpcLinkStatusMessage,+    vpcLink_vpcLinkVersion,+    vpcLink_vpcLinkId,+    vpcLink_securityGroupIds,+    vpcLink_subnetIds,+    vpcLink_name,+  )+where++import Amazonka.ApiGatewayV2.Types.AccessLogSettings+import Amazonka.ApiGatewayV2.Types.Api+import Amazonka.ApiGatewayV2.Types.ApiMapping+import Amazonka.ApiGatewayV2.Types.AuthorizationType+import Amazonka.ApiGatewayV2.Types.Authorizer+import Amazonka.ApiGatewayV2.Types.AuthorizerType+import Amazonka.ApiGatewayV2.Types.ConnectionType+import Amazonka.ApiGatewayV2.Types.ContentHandlingStrategy+import Amazonka.ApiGatewayV2.Types.Cors+import Amazonka.ApiGatewayV2.Types.Deployment+import Amazonka.ApiGatewayV2.Types.DeploymentStatus+import Amazonka.ApiGatewayV2.Types.DomainName+import Amazonka.ApiGatewayV2.Types.DomainNameConfiguration+import Amazonka.ApiGatewayV2.Types.DomainNameStatus+import Amazonka.ApiGatewayV2.Types.EndpointType+import Amazonka.ApiGatewayV2.Types.Integration+import Amazonka.ApiGatewayV2.Types.IntegrationResponse+import Amazonka.ApiGatewayV2.Types.IntegrationType+import Amazonka.ApiGatewayV2.Types.JWTConfiguration+import Amazonka.ApiGatewayV2.Types.LoggingLevel+import Amazonka.ApiGatewayV2.Types.Model+import Amazonka.ApiGatewayV2.Types.MutualTlsAuthentication+import Amazonka.ApiGatewayV2.Types.MutualTlsAuthenticationInput+import Amazonka.ApiGatewayV2.Types.ParameterConstraints+import Amazonka.ApiGatewayV2.Types.PassthroughBehavior+import Amazonka.ApiGatewayV2.Types.ProtocolType+import Amazonka.ApiGatewayV2.Types.Route+import Amazonka.ApiGatewayV2.Types.RouteResponse+import Amazonka.ApiGatewayV2.Types.RouteSettings+import Amazonka.ApiGatewayV2.Types.SecurityPolicy+import Amazonka.ApiGatewayV2.Types.Stage+import Amazonka.ApiGatewayV2.Types.TlsConfig+import Amazonka.ApiGatewayV2.Types.TlsConfigInput+import Amazonka.ApiGatewayV2.Types.VpcLink+import Amazonka.ApiGatewayV2.Types.VpcLinkStatus+import Amazonka.ApiGatewayV2.Types.VpcLinkVersion+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 @2018-11-29@ of the Amazon ApiGatewayV2 SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "ApiGatewayV2",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "apigateway",+      Core.signingName = "apigateway",+      Core.version = "2018-11-29",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "ApiGatewayV2",+      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++-- | Prism for AccessDeniedException' errors.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | The request is not valid, for example, the input is incomplete or+-- incorrect. See the accompanying error message for details.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+  Core._MatchServiceError+    defaultService+    "BadRequestException"+    Prelude.. Core.hasStatus 400++-- | The requested operation would cause a conflict with the current state of+-- a service resource associated with the request. Resolve the conflict+-- before retrying this request. See the accompanying error message for+-- details.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | The resource specified in the request was not found. See the message+-- field for more information.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+  Core._MatchServiceError+    defaultService+    "NotFoundException"+    Prelude.. Core.hasStatus 404++-- | A limit has been exceeded. See the accompanying error message for+-- details.+_TooManyRequestsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyRequestsException =+  Core._MatchServiceError+    defaultService+    "TooManyRequestsException"+    Prelude.. Core.hasStatus 429
+ gen/Amazonka/ApiGatewayV2/Types/AccessLogSettings.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.Types.AccessLogSettings+-- 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.ApiGatewayV2.Types.AccessLogSettings 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++-- | Settings for logging access in a stage.+--+-- /See:/ 'newAccessLogSettings' smart constructor.+data AccessLogSettings = AccessLogSettings'+  { -- | The ARN of the CloudWatch Logs log group to receive access logs.+    destinationArn :: Prelude.Maybe Prelude.Text,+    -- | A single line format of the access logs of data, as specified by+    -- selected $context variables. The format must include at least+    -- \$context.requestId.+    format :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessLogSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destinationArn', 'accessLogSettings_destinationArn' - The ARN of the CloudWatch Logs log group to receive access logs.+--+-- 'format', 'accessLogSettings_format' - A single line format of the access logs of data, as specified by+-- selected $context variables. The format must include at least+-- \$context.requestId.+newAccessLogSettings ::+  AccessLogSettings+newAccessLogSettings =+  AccessLogSettings'+    { destinationArn =+        Prelude.Nothing,+      format = Prelude.Nothing+    }++-- | The ARN of the CloudWatch Logs log group to receive access logs.+accessLogSettings_destinationArn :: Lens.Lens' AccessLogSettings (Prelude.Maybe Prelude.Text)+accessLogSettings_destinationArn = Lens.lens (\AccessLogSettings' {destinationArn} -> destinationArn) (\s@AccessLogSettings' {} a -> s {destinationArn = a} :: AccessLogSettings)++-- | A single line format of the access logs of data, as specified by+-- selected $context variables. The format must include at least+-- \$context.requestId.+accessLogSettings_format :: Lens.Lens' AccessLogSettings (Prelude.Maybe Prelude.Text)+accessLogSettings_format = Lens.lens (\AccessLogSettings' {format} -> format) (\s@AccessLogSettings' {} a -> s {format = a} :: AccessLogSettings)++instance Data.FromJSON AccessLogSettings where+  parseJSON =+    Data.withObject+      "AccessLogSettings"+      ( \x ->+          AccessLogSettings'+            Prelude.<$> (x Data..:? "destinationArn")+            Prelude.<*> (x Data..:? "format")+      )++instance Prelude.Hashable AccessLogSettings where+  hashWithSalt _salt AccessLogSettings' {..} =+    _salt+      `Prelude.hashWithSalt` destinationArn+      `Prelude.hashWithSalt` format++instance Prelude.NFData AccessLogSettings where+  rnf AccessLogSettings' {..} =+    Prelude.rnf destinationArn+      `Prelude.seq` Prelude.rnf format++instance Data.ToJSON AccessLogSettings where+  toJSON AccessLogSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("destinationArn" Data..=)+              Prelude.<$> destinationArn,+            ("format" Data..=) Prelude.<$> format+          ]+      )
+ gen/Amazonka/ApiGatewayV2/Types/Api.hs view
@@ -0,0 +1,312 @@+{-# 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.ApiGatewayV2.Types.Api+-- 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.ApiGatewayV2.Types.Api where++import Amazonka.ApiGatewayV2.Types.Cors+import Amazonka.ApiGatewayV2.Types.ProtocolType+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 an API.+--+-- /See:/ 'newApi' smart constructor.+data Api = Api'+  { -- | The URI of the API, of the form+    -- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+    -- appended to this URI to form a complete path to a deployed API stage.+    apiEndpoint :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether an API is managed by API Gateway. You can\'t update or+    -- delete a managed API by using API Gateway. A managed API can be deleted+    -- only through the tooling or service that created it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The API ID.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | An API key selection expression. Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+    apiKeySelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A CORS configuration. Supported only for HTTP APIs.+    corsConfiguration :: Prelude.Maybe Cors,+    -- | The timestamp when the API was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The description of the API.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether clients can invoke your API by using the default+    -- execute-api endpoint. By default, clients can invoke your API with the+    -- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+    -- To require that clients use a custom domain name to invoke your API,+    -- disable the default endpoint.+    disableExecuteApiEndpoint :: Prelude.Maybe Prelude.Bool,+    -- | Avoid validating models when creating a deployment. Supported only for+    -- WebSocket APIs.+    disableSchemaValidation :: Prelude.Maybe Prelude.Bool,+    -- | The validation information during API import. This may include+    -- particular properties of your OpenAPI definition which are ignored+    -- during import. Supported only for HTTP APIs.+    importInfo :: Prelude.Maybe [Prelude.Text],+    -- | A collection of tags associated with the API.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A version identifier for the API.+    version :: Prelude.Maybe Prelude.Text,+    -- | The warning messages reported when failonwarnings is turned on during+    -- API import.+    warnings :: Prelude.Maybe [Prelude.Text],+    -- | The route selection expression for the API. For HTTP APIs, the+    -- routeSelectionExpression must be ${request.method} ${request.path}. If+    -- not provided, this will be the default for HTTP APIs. This property is+    -- required for WebSocket APIs.+    routeSelectionExpression :: Prelude.Text,+    -- | The name of the API.+    name :: Prelude.Text,+    -- | The API protocol.+    protocolType :: ProtocolType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Api' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiEndpoint', 'api_apiEndpoint' - The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+--+-- 'apiGatewayManaged', 'api_apiGatewayManaged' - Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+--+-- 'apiId', 'api_apiId' - The API ID.+--+-- 'apiKeySelectionExpression', 'api_apiKeySelectionExpression' - An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+--+-- 'corsConfiguration', 'api_corsConfiguration' - A CORS configuration. Supported only for HTTP APIs.+--+-- 'createdDate', 'api_createdDate' - The timestamp when the API was created.+--+-- 'description', 'api_description' - The description of the API.+--+-- 'disableExecuteApiEndpoint', 'api_disableExecuteApiEndpoint' - Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+--+-- 'disableSchemaValidation', 'api_disableSchemaValidation' - Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+--+-- 'importInfo', 'api_importInfo' - The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+--+-- 'tags', 'api_tags' - A collection of tags associated with the API.+--+-- 'version', 'api_version' - A version identifier for the API.+--+-- 'warnings', 'api_warnings' - The warning messages reported when failonwarnings is turned on during+-- API import.+--+-- 'routeSelectionExpression', 'api_routeSelectionExpression' - The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+--+-- 'name', 'api_name' - The name of the API.+--+-- 'protocolType', 'api_protocolType' - The API protocol.+newApi ::+  -- | 'routeSelectionExpression'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'protocolType'+  ProtocolType ->+  Api+newApi+  pRouteSelectionExpression_+  pName_+  pProtocolType_ =+    Api'+      { apiEndpoint = Prelude.Nothing,+        apiGatewayManaged = Prelude.Nothing,+        apiId = Prelude.Nothing,+        apiKeySelectionExpression = Prelude.Nothing,+        corsConfiguration = Prelude.Nothing,+        createdDate = Prelude.Nothing,+        description = Prelude.Nothing,+        disableExecuteApiEndpoint = Prelude.Nothing,+        disableSchemaValidation = Prelude.Nothing,+        importInfo = Prelude.Nothing,+        tags = Prelude.Nothing,+        version = Prelude.Nothing,+        warnings = Prelude.Nothing,+        routeSelectionExpression =+          pRouteSelectionExpression_,+        name = pName_,+        protocolType = pProtocolType_+      }++-- | The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+api_apiEndpoint :: Lens.Lens' Api (Prelude.Maybe Prelude.Text)+api_apiEndpoint = Lens.lens (\Api' {apiEndpoint} -> apiEndpoint) (\s@Api' {} a -> s {apiEndpoint = a} :: Api)++-- | Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+api_apiGatewayManaged :: Lens.Lens' Api (Prelude.Maybe Prelude.Bool)+api_apiGatewayManaged = Lens.lens (\Api' {apiGatewayManaged} -> apiGatewayManaged) (\s@Api' {} a -> s {apiGatewayManaged = a} :: Api)++-- | The API ID.+api_apiId :: Lens.Lens' Api (Prelude.Maybe Prelude.Text)+api_apiId = Lens.lens (\Api' {apiId} -> apiId) (\s@Api' {} a -> s {apiId = a} :: Api)++-- | An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+api_apiKeySelectionExpression :: Lens.Lens' Api (Prelude.Maybe Prelude.Text)+api_apiKeySelectionExpression = Lens.lens (\Api' {apiKeySelectionExpression} -> apiKeySelectionExpression) (\s@Api' {} a -> s {apiKeySelectionExpression = a} :: Api)++-- | A CORS configuration. Supported only for HTTP APIs.+api_corsConfiguration :: Lens.Lens' Api (Prelude.Maybe Cors)+api_corsConfiguration = Lens.lens (\Api' {corsConfiguration} -> corsConfiguration) (\s@Api' {} a -> s {corsConfiguration = a} :: Api)++-- | The timestamp when the API was created.+api_createdDate :: Lens.Lens' Api (Prelude.Maybe Prelude.UTCTime)+api_createdDate = Lens.lens (\Api' {createdDate} -> createdDate) (\s@Api' {} a -> s {createdDate = a} :: Api) Prelude.. Lens.mapping Data._Time++-- | The description of the API.+api_description :: Lens.Lens' Api (Prelude.Maybe Prelude.Text)+api_description = Lens.lens (\Api' {description} -> description) (\s@Api' {} a -> s {description = a} :: Api)++-- | Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+api_disableExecuteApiEndpoint :: Lens.Lens' Api (Prelude.Maybe Prelude.Bool)+api_disableExecuteApiEndpoint = Lens.lens (\Api' {disableExecuteApiEndpoint} -> disableExecuteApiEndpoint) (\s@Api' {} a -> s {disableExecuteApiEndpoint = a} :: Api)++-- | Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+api_disableSchemaValidation :: Lens.Lens' Api (Prelude.Maybe Prelude.Bool)+api_disableSchemaValidation = Lens.lens (\Api' {disableSchemaValidation} -> disableSchemaValidation) (\s@Api' {} a -> s {disableSchemaValidation = a} :: Api)++-- | The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+api_importInfo :: Lens.Lens' Api (Prelude.Maybe [Prelude.Text])+api_importInfo = Lens.lens (\Api' {importInfo} -> importInfo) (\s@Api' {} a -> s {importInfo = a} :: Api) Prelude.. Lens.mapping Lens.coerced++-- | A collection of tags associated with the API.+api_tags :: Lens.Lens' Api (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+api_tags = Lens.lens (\Api' {tags} -> tags) (\s@Api' {} a -> s {tags = a} :: Api) Prelude.. Lens.mapping Lens.coerced++-- | A version identifier for the API.+api_version :: Lens.Lens' Api (Prelude.Maybe Prelude.Text)+api_version = Lens.lens (\Api' {version} -> version) (\s@Api' {} a -> s {version = a} :: Api)++-- | The warning messages reported when failonwarnings is turned on during+-- API import.+api_warnings :: Lens.Lens' Api (Prelude.Maybe [Prelude.Text])+api_warnings = Lens.lens (\Api' {warnings} -> warnings) (\s@Api' {} a -> s {warnings = a} :: Api) Prelude.. Lens.mapping Lens.coerced++-- | The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+api_routeSelectionExpression :: Lens.Lens' Api Prelude.Text+api_routeSelectionExpression = Lens.lens (\Api' {routeSelectionExpression} -> routeSelectionExpression) (\s@Api' {} a -> s {routeSelectionExpression = a} :: Api)++-- | The name of the API.+api_name :: Lens.Lens' Api Prelude.Text+api_name = Lens.lens (\Api' {name} -> name) (\s@Api' {} a -> s {name = a} :: Api)++-- | The API protocol.+api_protocolType :: Lens.Lens' Api ProtocolType+api_protocolType = Lens.lens (\Api' {protocolType} -> protocolType) (\s@Api' {} a -> s {protocolType = a} :: Api)++instance Data.FromJSON Api where+  parseJSON =+    Data.withObject+      "Api"+      ( \x ->+          Api'+            Prelude.<$> (x Data..:? "apiEndpoint")+            Prelude.<*> (x Data..:? "apiGatewayManaged")+            Prelude.<*> (x Data..:? "apiId")+            Prelude.<*> (x Data..:? "apiKeySelectionExpression")+            Prelude.<*> (x Data..:? "corsConfiguration")+            Prelude.<*> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "disableExecuteApiEndpoint")+            Prelude.<*> (x Data..:? "disableSchemaValidation")+            Prelude.<*> (x Data..:? "importInfo" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "version")+            Prelude.<*> (x Data..:? "warnings" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "routeSelectionExpression")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "protocolType")+      )++instance Prelude.Hashable Api where+  hashWithSalt _salt Api' {..} =+    _salt+      `Prelude.hashWithSalt` apiEndpoint+      `Prelude.hashWithSalt` apiGatewayManaged+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` apiKeySelectionExpression+      `Prelude.hashWithSalt` corsConfiguration+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` disableExecuteApiEndpoint+      `Prelude.hashWithSalt` disableSchemaValidation+      `Prelude.hashWithSalt` importInfo+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` version+      `Prelude.hashWithSalt` warnings+      `Prelude.hashWithSalt` routeSelectionExpression+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` protocolType++instance Prelude.NFData Api where+  rnf Api' {..} =+    Prelude.rnf apiEndpoint+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiKeySelectionExpression+      `Prelude.seq` Prelude.rnf corsConfiguration+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf disableExecuteApiEndpoint+      `Prelude.seq` Prelude.rnf disableSchemaValidation+      `Prelude.seq` Prelude.rnf importInfo+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf warnings+      `Prelude.seq` Prelude.rnf routeSelectionExpression+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf protocolType
+ gen/Amazonka/ApiGatewayV2/Types/ApiMapping.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.ApiGatewayV2.Types.ApiMapping+-- 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.ApiGatewayV2.Types.ApiMapping 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++-- | Represents an API mapping.+--+-- /See:/ 'newApiMapping' smart constructor.+data ApiMapping = ApiMapping'+  { -- | The API mapping identifier.+    apiMappingId :: Prelude.Maybe Prelude.Text,+    -- | The API mapping key.+    apiMappingKey :: Prelude.Maybe Prelude.Text,+    -- | The API stage.+    stage :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApiMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingId', 'apiMapping_apiMappingId' - The API mapping identifier.+--+-- 'apiMappingKey', 'apiMapping_apiMappingKey' - The API mapping key.+--+-- 'stage', 'apiMapping_stage' - The API stage.+--+-- 'apiId', 'apiMapping_apiId' - The API identifier.+newApiMapping ::+  -- | 'stage'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  ApiMapping+newApiMapping pStage_ pApiId_ =+  ApiMapping'+    { apiMappingId = Prelude.Nothing,+      apiMappingKey = Prelude.Nothing,+      stage = pStage_,+      apiId = pApiId_+    }++-- | The API mapping identifier.+apiMapping_apiMappingId :: Lens.Lens' ApiMapping (Prelude.Maybe Prelude.Text)+apiMapping_apiMappingId = Lens.lens (\ApiMapping' {apiMappingId} -> apiMappingId) (\s@ApiMapping' {} a -> s {apiMappingId = a} :: ApiMapping)++-- | The API mapping key.+apiMapping_apiMappingKey :: Lens.Lens' ApiMapping (Prelude.Maybe Prelude.Text)+apiMapping_apiMappingKey = Lens.lens (\ApiMapping' {apiMappingKey} -> apiMappingKey) (\s@ApiMapping' {} a -> s {apiMappingKey = a} :: ApiMapping)++-- | The API stage.+apiMapping_stage :: Lens.Lens' ApiMapping Prelude.Text+apiMapping_stage = Lens.lens (\ApiMapping' {stage} -> stage) (\s@ApiMapping' {} a -> s {stage = a} :: ApiMapping)++-- | The API identifier.+apiMapping_apiId :: Lens.Lens' ApiMapping Prelude.Text+apiMapping_apiId = Lens.lens (\ApiMapping' {apiId} -> apiId) (\s@ApiMapping' {} a -> s {apiId = a} :: ApiMapping)++instance Data.FromJSON ApiMapping where+  parseJSON =+    Data.withObject+      "ApiMapping"+      ( \x ->+          ApiMapping'+            Prelude.<$> (x Data..:? "apiMappingId")+            Prelude.<*> (x Data..:? "apiMappingKey")+            Prelude.<*> (x Data..: "stage")+            Prelude.<*> (x Data..: "apiId")+      )++instance Prelude.Hashable ApiMapping where+  hashWithSalt _salt ApiMapping' {..} =+    _salt+      `Prelude.hashWithSalt` apiMappingId+      `Prelude.hashWithSalt` apiMappingKey+      `Prelude.hashWithSalt` stage+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData ApiMapping where+  rnf ApiMapping' {..} =+    Prelude.rnf apiMappingId+      `Prelude.seq` Prelude.rnf apiMappingKey+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf apiId
+ gen/Amazonka/ApiGatewayV2/Types/AuthorizationType.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.Types.AuthorizationType+-- 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.ApiGatewayV2.Types.AuthorizationType+  ( AuthorizationType+      ( ..,+        AuthorizationType_AWS_IAM,+        AuthorizationType_CUSTOM,+        AuthorizationType_JWT,+        AuthorizationType_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The authorization type. For WebSocket APIs, valid values are NONE for+-- open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using+-- a Lambda authorizer. For HTTP APIs, valid values are NONE for open+-- access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM+-- permissions, and CUSTOM for using a Lambda authorizer.+newtype AuthorizationType = AuthorizationType'+  { fromAuthorizationType ::+      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 AuthorizationType_AWS_IAM :: AuthorizationType+pattern AuthorizationType_AWS_IAM = AuthorizationType' "AWS_IAM"++pattern AuthorizationType_CUSTOM :: AuthorizationType+pattern AuthorizationType_CUSTOM = AuthorizationType' "CUSTOM"++pattern AuthorizationType_JWT :: AuthorizationType+pattern AuthorizationType_JWT = AuthorizationType' "JWT"++pattern AuthorizationType_NONE :: AuthorizationType+pattern AuthorizationType_NONE = AuthorizationType' "NONE"++{-# COMPLETE+  AuthorizationType_AWS_IAM,+  AuthorizationType_CUSTOM,+  AuthorizationType_JWT,+  AuthorizationType_NONE,+  AuthorizationType'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/Authorizer.hs view
@@ -0,0 +1,344 @@+{-# 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.ApiGatewayV2.Types.Authorizer+-- 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.ApiGatewayV2.Types.Authorizer where++import Amazonka.ApiGatewayV2.Types.AuthorizerType+import Amazonka.ApiGatewayV2.Types.JWTConfiguration+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 an authorizer.+--+-- /See:/ 'newAuthorizer' smart constructor.+data Authorizer = Authorizer'+  { -- | Specifies the required credentials as an IAM role for API Gateway to+    -- invoke the authorizer. To specify an IAM role for API Gateway to assume,+    -- use the role\'s Amazon Resource Name (ARN). To use resource-based+    -- permissions on the Lambda function, don\'t specify this parameter.+    -- Supported only for REQUEST authorizers.+    authorizerCredentialsArn :: Prelude.Maybe Prelude.Text,+    -- | The authorizer identifier.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the format of the payload sent to an HTTP API Lambda+    -- authorizer. Required for HTTP API Lambda authorizers. Supported values+    -- are 1.0 and 2.0. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    authorizerPayloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | The time to live (TTL) for cached authorizer results, in seconds. If it+    -- equals 0, authorization caching is disabled. If it is greater than 0,+    -- API Gateway caches authorizer responses. The maximum value is 3600, or 1+    -- hour. Supported only for HTTP API Lambda authorizers.+    authorizerResultTtlInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The authorizer type. Specify REQUEST for a Lambda function using+    -- incoming request parameters. Specify JWT to use JSON Web Tokens+    -- (supported only for HTTP APIs).+    authorizerType :: Prelude.Maybe AuthorizerType,+    -- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+    -- authorizers, this must be a well-formed Lambda function URI, for+    -- example,+    -- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+    -- In general, the URI has this form:+    -- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+    -- is the same as the region hosting the Lambda function, path indicates+    -- that the remaining substring in the URI should be treated as the path to+    -- the resource, including the initial \/. For Lambda functions, this is+    -- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+    -- Supported only for REQUEST authorizers.+    authorizerUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether a Lambda authorizer returns a response in a simple+    -- format. If enabled, the Lambda authorizer can return a boolean value+    -- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+    -- see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+    enableSimpleResponses :: Prelude.Maybe Prelude.Bool,+    -- | The identity source for which authorization is requested.+    --+    -- For a REQUEST authorizer, this is optional. The value is a set of one or+    -- more mapping expressions of the specified request parameters. The+    -- identity source can be headers, query string parameters, stage+    -- variables, and context parameters. For example, if an Auth header and a+    -- Name query string parameter are defined as identity sources, this value+    -- is route.request.header.Auth, route.request.querystring.Name for+    -- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+    -- \$, for example, $request.header.Auth, $request.querystring.Name. These+    -- parameters are used to perform runtime validation for Lambda-based+    -- authorizers by verifying all of the identity-related request parameters+    -- are present in the request, not null, and non-empty. Only when this is+    -- true does the authorizer invoke the authorizer Lambda function.+    -- Otherwise, it returns a 401 Unauthorized response without calling the+    -- Lambda function. For HTTP APIs, identity sources are also used as the+    -- cache key when caching is enabled. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    --+    -- For JWT, a single entry that specifies where to extract the JSON Web+    -- Token (JWT) from inbound requests. Currently only header-based and query+    -- parameter-based selections are supported, for example+    -- \$request.header.Authorization.+    identitySource :: Prelude.Maybe [Prelude.Text],+    -- | The validation expression does not apply to the REQUEST authorizer.+    identityValidationExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the configuration of a JWT authorizer. Required for the JWT+    -- authorizer type. Supported only for HTTP APIs.+    jwtConfiguration :: Prelude.Maybe JWTConfiguration,+    -- | The name of the authorizer.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Authorizer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorizerCredentialsArn', 'authorizer_authorizerCredentialsArn' - Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+--+-- 'authorizerId', 'authorizer_authorizerId' - The authorizer identifier.+--+-- 'authorizerPayloadFormatVersion', 'authorizer_authorizerPayloadFormatVersion' - Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- 'authorizerResultTtlInSeconds', 'authorizer_authorizerResultTtlInSeconds' - The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+--+-- 'authorizerType', 'authorizer_authorizerType' - The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+--+-- 'authorizerUri', 'authorizer_authorizerUri' - The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+--+-- 'enableSimpleResponses', 'authorizer_enableSimpleResponses' - Specifies whether a Lambda authorizer returns a response in a simple+-- format. If enabled, the Lambda authorizer can return a boolean value+-- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+-- see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+--+-- 'identitySource', 'authorizer_identitySource' - The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+--+-- 'identityValidationExpression', 'authorizer_identityValidationExpression' - The validation expression does not apply to the REQUEST authorizer.+--+-- 'jwtConfiguration', 'authorizer_jwtConfiguration' - Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+--+-- 'name', 'authorizer_name' - The name of the authorizer.+newAuthorizer ::+  -- | 'name'+  Prelude.Text ->+  Authorizer+newAuthorizer pName_ =+  Authorizer'+    { authorizerCredentialsArn =+        Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      authorizerPayloadFormatVersion = Prelude.Nothing,+      authorizerResultTtlInSeconds = Prelude.Nothing,+      authorizerType = Prelude.Nothing,+      authorizerUri = Prelude.Nothing,+      enableSimpleResponses = Prelude.Nothing,+      identitySource = Prelude.Nothing,+      identityValidationExpression = Prelude.Nothing,+      jwtConfiguration = Prelude.Nothing,+      name = pName_+    }++-- | Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+authorizer_authorizerCredentialsArn :: Lens.Lens' Authorizer (Prelude.Maybe Prelude.Text)+authorizer_authorizerCredentialsArn = Lens.lens (\Authorizer' {authorizerCredentialsArn} -> authorizerCredentialsArn) (\s@Authorizer' {} a -> s {authorizerCredentialsArn = a} :: Authorizer)++-- | The authorizer identifier.+authorizer_authorizerId :: Lens.Lens' Authorizer (Prelude.Maybe Prelude.Text)+authorizer_authorizerId = Lens.lens (\Authorizer' {authorizerId} -> authorizerId) (\s@Authorizer' {} a -> s {authorizerId = a} :: Authorizer)++-- | Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+authorizer_authorizerPayloadFormatVersion :: Lens.Lens' Authorizer (Prelude.Maybe Prelude.Text)+authorizer_authorizerPayloadFormatVersion = Lens.lens (\Authorizer' {authorizerPayloadFormatVersion} -> authorizerPayloadFormatVersion) (\s@Authorizer' {} a -> s {authorizerPayloadFormatVersion = a} :: Authorizer)++-- | The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+authorizer_authorizerResultTtlInSeconds :: Lens.Lens' Authorizer (Prelude.Maybe Prelude.Natural)+authorizer_authorizerResultTtlInSeconds = Lens.lens (\Authorizer' {authorizerResultTtlInSeconds} -> authorizerResultTtlInSeconds) (\s@Authorizer' {} a -> s {authorizerResultTtlInSeconds = a} :: Authorizer)++-- | The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+authorizer_authorizerType :: Lens.Lens' Authorizer (Prelude.Maybe AuthorizerType)+authorizer_authorizerType = Lens.lens (\Authorizer' {authorizerType} -> authorizerType) (\s@Authorizer' {} a -> s {authorizerType = a} :: Authorizer)++-- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+authorizer_authorizerUri :: Lens.Lens' Authorizer (Prelude.Maybe Prelude.Text)+authorizer_authorizerUri = Lens.lens (\Authorizer' {authorizerUri} -> authorizerUri) (\s@Authorizer' {} a -> s {authorizerUri = a} :: Authorizer)++-- | Specifies whether a Lambda authorizer returns a response in a simple+-- format. If enabled, the Lambda authorizer can return a boolean value+-- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+-- see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+authorizer_enableSimpleResponses :: Lens.Lens' Authorizer (Prelude.Maybe Prelude.Bool)+authorizer_enableSimpleResponses = Lens.lens (\Authorizer' {enableSimpleResponses} -> enableSimpleResponses) (\s@Authorizer' {} a -> s {enableSimpleResponses = a} :: Authorizer)++-- | The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+authorizer_identitySource :: Lens.Lens' Authorizer (Prelude.Maybe [Prelude.Text])+authorizer_identitySource = Lens.lens (\Authorizer' {identitySource} -> identitySource) (\s@Authorizer' {} a -> s {identitySource = a} :: Authorizer) Prelude.. Lens.mapping Lens.coerced++-- | The validation expression does not apply to the REQUEST authorizer.+authorizer_identityValidationExpression :: Lens.Lens' Authorizer (Prelude.Maybe Prelude.Text)+authorizer_identityValidationExpression = Lens.lens (\Authorizer' {identityValidationExpression} -> identityValidationExpression) (\s@Authorizer' {} a -> s {identityValidationExpression = a} :: Authorizer)++-- | Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+authorizer_jwtConfiguration :: Lens.Lens' Authorizer (Prelude.Maybe JWTConfiguration)+authorizer_jwtConfiguration = Lens.lens (\Authorizer' {jwtConfiguration} -> jwtConfiguration) (\s@Authorizer' {} a -> s {jwtConfiguration = a} :: Authorizer)++-- | The name of the authorizer.+authorizer_name :: Lens.Lens' Authorizer Prelude.Text+authorizer_name = Lens.lens (\Authorizer' {name} -> name) (\s@Authorizer' {} a -> s {name = a} :: Authorizer)++instance Data.FromJSON Authorizer where+  parseJSON =+    Data.withObject+      "Authorizer"+      ( \x ->+          Authorizer'+            Prelude.<$> (x Data..:? "authorizerCredentialsArn")+            Prelude.<*> (x Data..:? "authorizerId")+            Prelude.<*> (x Data..:? "authorizerPayloadFormatVersion")+            Prelude.<*> (x Data..:? "authorizerResultTtlInSeconds")+            Prelude.<*> (x Data..:? "authorizerType")+            Prelude.<*> (x Data..:? "authorizerUri")+            Prelude.<*> (x Data..:? "enableSimpleResponses")+            Prelude.<*> (x Data..:? "identitySource" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "identityValidationExpression")+            Prelude.<*> (x Data..:? "jwtConfiguration")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable Authorizer where+  hashWithSalt _salt Authorizer' {..} =+    _salt+      `Prelude.hashWithSalt` authorizerCredentialsArn+      `Prelude.hashWithSalt` authorizerId+      `Prelude.hashWithSalt` authorizerPayloadFormatVersion+      `Prelude.hashWithSalt` authorizerResultTtlInSeconds+      `Prelude.hashWithSalt` authorizerType+      `Prelude.hashWithSalt` authorizerUri+      `Prelude.hashWithSalt` enableSimpleResponses+      `Prelude.hashWithSalt` identitySource+      `Prelude.hashWithSalt` identityValidationExpression+      `Prelude.hashWithSalt` jwtConfiguration+      `Prelude.hashWithSalt` name++instance Prelude.NFData Authorizer where+  rnf Authorizer' {..} =+    Prelude.rnf authorizerCredentialsArn+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf authorizerPayloadFormatVersion+      `Prelude.seq` Prelude.rnf authorizerResultTtlInSeconds+      `Prelude.seq` Prelude.rnf authorizerType+      `Prelude.seq` Prelude.rnf authorizerUri+      `Prelude.seq` Prelude.rnf enableSimpleResponses+      `Prelude.seq` Prelude.rnf identitySource+      `Prelude.seq` Prelude.rnf identityValidationExpression+      `Prelude.seq` Prelude.rnf jwtConfiguration+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/ApiGatewayV2/Types/AuthorizerType.hs view
@@ -0,0 +1,74 @@+{-# 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.ApiGatewayV2.Types.AuthorizerType+-- 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.ApiGatewayV2.Types.AuthorizerType+  ( AuthorizerType+      ( ..,+        AuthorizerType_JWT,+        AuthorizerType_REQUEST+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+newtype AuthorizerType = AuthorizerType'+  { fromAuthorizerType ::+      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 AuthorizerType_JWT :: AuthorizerType+pattern AuthorizerType_JWT = AuthorizerType' "JWT"++pattern AuthorizerType_REQUEST :: AuthorizerType+pattern AuthorizerType_REQUEST = AuthorizerType' "REQUEST"++{-# COMPLETE+  AuthorizerType_JWT,+  AuthorizerType_REQUEST,+  AuthorizerType'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/ConnectionType.hs view
@@ -0,0 +1,72 @@+{-# 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.ApiGatewayV2.Types.ConnectionType+-- 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.ApiGatewayV2.Types.ConnectionType+  ( ConnectionType+      ( ..,+        ConnectionType_INTERNET,+        ConnectionType_VPC_LINK+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents a connection type.+newtype ConnectionType = ConnectionType'+  { fromConnectionType ::+      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 ConnectionType_INTERNET :: ConnectionType+pattern ConnectionType_INTERNET = ConnectionType' "INTERNET"++pattern ConnectionType_VPC_LINK :: ConnectionType+pattern ConnectionType_VPC_LINK = ConnectionType' "VPC_LINK"++{-# COMPLETE+  ConnectionType_INTERNET,+  ConnectionType_VPC_LINK,+  ConnectionType'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/ContentHandlingStrategy.hs view
@@ -0,0 +1,73 @@+{-# 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.ApiGatewayV2.Types.ContentHandlingStrategy+-- 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.ApiGatewayV2.Types.ContentHandlingStrategy+  ( ContentHandlingStrategy+      ( ..,+        ContentHandlingStrategy_CONVERT_TO_BINARY,+        ContentHandlingStrategy_CONVERT_TO_TEXT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies how to handle response payload content type conversions.+-- Supported only for WebSocket APIs.+newtype ContentHandlingStrategy = ContentHandlingStrategy'+  { fromContentHandlingStrategy ::+      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 ContentHandlingStrategy_CONVERT_TO_BINARY :: ContentHandlingStrategy+pattern ContentHandlingStrategy_CONVERT_TO_BINARY = ContentHandlingStrategy' "CONVERT_TO_BINARY"++pattern ContentHandlingStrategy_CONVERT_TO_TEXT :: ContentHandlingStrategy+pattern ContentHandlingStrategy_CONVERT_TO_TEXT = ContentHandlingStrategy' "CONVERT_TO_TEXT"++{-# COMPLETE+  ContentHandlingStrategy_CONVERT_TO_BINARY,+  ContentHandlingStrategy_CONVERT_TO_TEXT,+  ContentHandlingStrategy'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/Cors.hs view
@@ -0,0 +1,166 @@+{-# 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.ApiGatewayV2.Types.Cors+-- 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.ApiGatewayV2.Types.Cors 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++-- | Represents a CORS configuration. Supported only for HTTP APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html Configuring CORS>+-- for more information.+--+-- /See:/ 'newCors' smart constructor.+data Cors = Cors'+  { -- | Specifies whether credentials are included in the CORS request.+    -- Supported only for HTTP APIs.+    allowCredentials :: Prelude.Maybe Prelude.Bool,+    -- | Represents a collection of allowed headers. Supported only for HTTP+    -- APIs.+    allowHeaders :: Prelude.Maybe [Prelude.Text],+    -- | Represents a collection of allowed HTTP methods. Supported only for HTTP+    -- APIs.+    allowMethods :: Prelude.Maybe [Prelude.Text],+    -- | Represents a collection of allowed origins. Supported only for HTTP+    -- APIs.+    allowOrigins :: Prelude.Maybe [Prelude.Text],+    -- | Represents a collection of exposed headers. Supported only for HTTP+    -- APIs.+    exposeHeaders :: Prelude.Maybe [Prelude.Text],+    -- | The number of seconds that the browser should cache preflight request+    -- results. Supported only for HTTP APIs.+    maxAge :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Cors' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowCredentials', 'cors_allowCredentials' - Specifies whether credentials are included in the CORS request.+-- Supported only for HTTP APIs.+--+-- 'allowHeaders', 'cors_allowHeaders' - Represents a collection of allowed headers. Supported only for HTTP+-- APIs.+--+-- 'allowMethods', 'cors_allowMethods' - Represents a collection of allowed HTTP methods. Supported only for HTTP+-- APIs.+--+-- 'allowOrigins', 'cors_allowOrigins' - Represents a collection of allowed origins. Supported only for HTTP+-- APIs.+--+-- 'exposeHeaders', 'cors_exposeHeaders' - Represents a collection of exposed headers. Supported only for HTTP+-- APIs.+--+-- 'maxAge', 'cors_maxAge' - The number of seconds that the browser should cache preflight request+-- results. Supported only for HTTP APIs.+newCors ::+  Cors+newCors =+  Cors'+    { allowCredentials = Prelude.Nothing,+      allowHeaders = Prelude.Nothing,+      allowMethods = Prelude.Nothing,+      allowOrigins = Prelude.Nothing,+      exposeHeaders = Prelude.Nothing,+      maxAge = Prelude.Nothing+    }++-- | Specifies whether credentials are included in the CORS request.+-- Supported only for HTTP APIs.+cors_allowCredentials :: Lens.Lens' Cors (Prelude.Maybe Prelude.Bool)+cors_allowCredentials = Lens.lens (\Cors' {allowCredentials} -> allowCredentials) (\s@Cors' {} a -> s {allowCredentials = a} :: Cors)++-- | Represents a collection of allowed headers. Supported only for HTTP+-- APIs.+cors_allowHeaders :: Lens.Lens' Cors (Prelude.Maybe [Prelude.Text])+cors_allowHeaders = Lens.lens (\Cors' {allowHeaders} -> allowHeaders) (\s@Cors' {} a -> s {allowHeaders = a} :: Cors) Prelude.. Lens.mapping Lens.coerced++-- | Represents a collection of allowed HTTP methods. Supported only for HTTP+-- APIs.+cors_allowMethods :: Lens.Lens' Cors (Prelude.Maybe [Prelude.Text])+cors_allowMethods = Lens.lens (\Cors' {allowMethods} -> allowMethods) (\s@Cors' {} a -> s {allowMethods = a} :: Cors) Prelude.. Lens.mapping Lens.coerced++-- | Represents a collection of allowed origins. Supported only for HTTP+-- APIs.+cors_allowOrigins :: Lens.Lens' Cors (Prelude.Maybe [Prelude.Text])+cors_allowOrigins = Lens.lens (\Cors' {allowOrigins} -> allowOrigins) (\s@Cors' {} a -> s {allowOrigins = a} :: Cors) Prelude.. Lens.mapping Lens.coerced++-- | Represents a collection of exposed headers. Supported only for HTTP+-- APIs.+cors_exposeHeaders :: Lens.Lens' Cors (Prelude.Maybe [Prelude.Text])+cors_exposeHeaders = Lens.lens (\Cors' {exposeHeaders} -> exposeHeaders) (\s@Cors' {} a -> s {exposeHeaders = a} :: Cors) Prelude.. Lens.mapping Lens.coerced++-- | The number of seconds that the browser should cache preflight request+-- results. Supported only for HTTP APIs.+cors_maxAge :: Lens.Lens' Cors (Prelude.Maybe Prelude.Int)+cors_maxAge = Lens.lens (\Cors' {maxAge} -> maxAge) (\s@Cors' {} a -> s {maxAge = a} :: Cors)++instance Data.FromJSON Cors where+  parseJSON =+    Data.withObject+      "Cors"+      ( \x ->+          Cors'+            Prelude.<$> (x Data..:? "allowCredentials")+            Prelude.<*> (x Data..:? "allowHeaders" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "allowMethods" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "allowOrigins" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "exposeHeaders" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "maxAge")+      )++instance Prelude.Hashable Cors where+  hashWithSalt _salt Cors' {..} =+    _salt+      `Prelude.hashWithSalt` allowCredentials+      `Prelude.hashWithSalt` allowHeaders+      `Prelude.hashWithSalt` allowMethods+      `Prelude.hashWithSalt` allowOrigins+      `Prelude.hashWithSalt` exposeHeaders+      `Prelude.hashWithSalt` maxAge++instance Prelude.NFData Cors where+  rnf Cors' {..} =+    Prelude.rnf allowCredentials+      `Prelude.seq` Prelude.rnf allowHeaders+      `Prelude.seq` Prelude.rnf allowMethods+      `Prelude.seq` Prelude.rnf allowOrigins+      `Prelude.seq` Prelude.rnf exposeHeaders+      `Prelude.seq` Prelude.rnf maxAge++instance Data.ToJSON Cors where+  toJSON Cors' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowCredentials" Data..=)+              Prelude.<$> allowCredentials,+            ("allowHeaders" Data..=) Prelude.<$> allowHeaders,+            ("allowMethods" Data..=) Prelude.<$> allowMethods,+            ("allowOrigins" Data..=) Prelude.<$> allowOrigins,+            ("exposeHeaders" Data..=) Prelude.<$> exposeHeaders,+            ("maxAge" Data..=) Prelude.<$> maxAge+          ]+      )
+ gen/Amazonka/ApiGatewayV2/Types/Deployment.hs view
@@ -0,0 +1,135 @@+{-# 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.ApiGatewayV2.Types.Deployment+-- 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.ApiGatewayV2.Types.Deployment where++import Amazonka.ApiGatewayV2.Types.DeploymentStatus+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An immutable representation of an API that can be called by users. A+-- Deployment must be associated with a Stage for it to be callable over+-- the internet.+--+-- /See:/ 'newDeployment' smart constructor.+data Deployment = Deployment'+  { -- | Specifies whether a deployment was automatically released.+    autoDeployed :: Prelude.Maybe Prelude.Bool,+    -- | The date and time when the Deployment resource was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The identifier for the deployment.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The status of the deployment: PENDING, FAILED, or SUCCEEDED.+    deploymentStatus :: Prelude.Maybe DeploymentStatus,+    -- | May contain additional feedback on the status of an API deployment.+    deploymentStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The description for the deployment.+    description :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Deployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoDeployed', 'deployment_autoDeployed' - Specifies whether a deployment was automatically released.+--+-- 'createdDate', 'deployment_createdDate' - The date and time when the Deployment resource was created.+--+-- 'deploymentId', 'deployment_deploymentId' - The identifier for the deployment.+--+-- 'deploymentStatus', 'deployment_deploymentStatus' - The status of the deployment: PENDING, FAILED, or SUCCEEDED.+--+-- 'deploymentStatusMessage', 'deployment_deploymentStatusMessage' - May contain additional feedback on the status of an API deployment.+--+-- 'description', 'deployment_description' - The description for the deployment.+newDeployment ::+  Deployment+newDeployment =+  Deployment'+    { autoDeployed = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      deploymentStatus = Prelude.Nothing,+      deploymentStatusMessage = Prelude.Nothing,+      description = Prelude.Nothing+    }++-- | Specifies whether a deployment was automatically released.+deployment_autoDeployed :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Bool)+deployment_autoDeployed = Lens.lens (\Deployment' {autoDeployed} -> autoDeployed) (\s@Deployment' {} a -> s {autoDeployed = a} :: Deployment)++-- | The date and time when the Deployment resource was created.+deployment_createdDate :: Lens.Lens' Deployment (Prelude.Maybe Prelude.UTCTime)+deployment_createdDate = Lens.lens (\Deployment' {createdDate} -> createdDate) (\s@Deployment' {} a -> s {createdDate = a} :: Deployment) Prelude.. Lens.mapping Data._Time++-- | The identifier for the deployment.+deployment_deploymentId :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_deploymentId = Lens.lens (\Deployment' {deploymentId} -> deploymentId) (\s@Deployment' {} a -> s {deploymentId = a} :: Deployment)++-- | The status of the deployment: PENDING, FAILED, or SUCCEEDED.+deployment_deploymentStatus :: Lens.Lens' Deployment (Prelude.Maybe DeploymentStatus)+deployment_deploymentStatus = Lens.lens (\Deployment' {deploymentStatus} -> deploymentStatus) (\s@Deployment' {} a -> s {deploymentStatus = a} :: Deployment)++-- | May contain additional feedback on the status of an API deployment.+deployment_deploymentStatusMessage :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_deploymentStatusMessage = Lens.lens (\Deployment' {deploymentStatusMessage} -> deploymentStatusMessage) (\s@Deployment' {} a -> s {deploymentStatusMessage = a} :: Deployment)++-- | The description for the deployment.+deployment_description :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_description = Lens.lens (\Deployment' {description} -> description) (\s@Deployment' {} a -> s {description = a} :: Deployment)++instance Data.FromJSON Deployment where+  parseJSON =+    Data.withObject+      "Deployment"+      ( \x ->+          Deployment'+            Prelude.<$> (x Data..:? "autoDeployed")+            Prelude.<*> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "deploymentId")+            Prelude.<*> (x Data..:? "deploymentStatus")+            Prelude.<*> (x Data..:? "deploymentStatusMessage")+            Prelude.<*> (x Data..:? "description")+      )++instance Prelude.Hashable Deployment where+  hashWithSalt _salt Deployment' {..} =+    _salt+      `Prelude.hashWithSalt` autoDeployed+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` deploymentId+      `Prelude.hashWithSalt` deploymentStatus+      `Prelude.hashWithSalt` deploymentStatusMessage+      `Prelude.hashWithSalt` description++instance Prelude.NFData Deployment where+  rnf Deployment' {..} =+    Prelude.rnf autoDeployed+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf deploymentStatus+      `Prelude.seq` Prelude.rnf deploymentStatusMessage+      `Prelude.seq` Prelude.rnf description
+ gen/Amazonka/ApiGatewayV2/Types/DeploymentStatus.hs view
@@ -0,0 +1,77 @@+{-# 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.ApiGatewayV2.Types.DeploymentStatus+-- 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.ApiGatewayV2.Types.DeploymentStatus+  ( DeploymentStatus+      ( ..,+        DeploymentStatus_DEPLOYED,+        DeploymentStatus_FAILED,+        DeploymentStatus_PENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents a deployment status.+newtype DeploymentStatus = DeploymentStatus'+  { fromDeploymentStatus ::+      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 DeploymentStatus_DEPLOYED :: DeploymentStatus+pattern DeploymentStatus_DEPLOYED = DeploymentStatus' "DEPLOYED"++pattern DeploymentStatus_FAILED :: DeploymentStatus+pattern DeploymentStatus_FAILED = DeploymentStatus' "FAILED"++pattern DeploymentStatus_PENDING :: DeploymentStatus+pattern DeploymentStatus_PENDING = DeploymentStatus' "PENDING"++{-# COMPLETE+  DeploymentStatus_DEPLOYED,+  DeploymentStatus_FAILED,+  DeploymentStatus_PENDING,+  DeploymentStatus'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/DomainName.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.Types.DomainName+-- 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.ApiGatewayV2.Types.DomainName where++import Amazonka.ApiGatewayV2.Types.DomainNameConfiguration+import Amazonka.ApiGatewayV2.Types.MutualTlsAuthentication+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 domain name.+--+-- /See:/ 'newDomainName' smart constructor.+data DomainName = DomainName'+  { -- | The API mapping selection expression.+    apiMappingSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The domain name configurations.+    domainNameConfigurations :: Prelude.Maybe [DomainNameConfiguration],+    -- | The mutual TLS authentication configuration for a custom domain name.+    mutualTlsAuthentication :: Prelude.Maybe MutualTlsAuthentication,+    -- | The collection of tags associated with a domain name.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the DomainName resource.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainName' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingSelectionExpression', 'domainName_apiMappingSelectionExpression' - The API mapping selection expression.+--+-- 'domainNameConfigurations', 'domainName_domainNameConfigurations' - The domain name configurations.+--+-- 'mutualTlsAuthentication', 'domainName_mutualTlsAuthentication' - The mutual TLS authentication configuration for a custom domain name.+--+-- 'tags', 'domainName_tags' - The collection of tags associated with a domain name.+--+-- 'domainName', 'domainName_domainName' - The name of the DomainName resource.+newDomainName ::+  -- | 'domainName'+  Prelude.Text ->+  DomainName+newDomainName pDomainName_ =+  DomainName'+    { apiMappingSelectionExpression =+        Prelude.Nothing,+      domainNameConfigurations = Prelude.Nothing,+      mutualTlsAuthentication = Prelude.Nothing,+      tags = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | The API mapping selection expression.+domainName_apiMappingSelectionExpression :: Lens.Lens' DomainName (Prelude.Maybe Prelude.Text)+domainName_apiMappingSelectionExpression = Lens.lens (\DomainName' {apiMappingSelectionExpression} -> apiMappingSelectionExpression) (\s@DomainName' {} a -> s {apiMappingSelectionExpression = a} :: DomainName)++-- | The domain name configurations.+domainName_domainNameConfigurations :: Lens.Lens' DomainName (Prelude.Maybe [DomainNameConfiguration])+domainName_domainNameConfigurations = Lens.lens (\DomainName' {domainNameConfigurations} -> domainNameConfigurations) (\s@DomainName' {} a -> s {domainNameConfigurations = a} :: DomainName) Prelude.. Lens.mapping Lens.coerced++-- | The mutual TLS authentication configuration for a custom domain name.+domainName_mutualTlsAuthentication :: Lens.Lens' DomainName (Prelude.Maybe MutualTlsAuthentication)+domainName_mutualTlsAuthentication = Lens.lens (\DomainName' {mutualTlsAuthentication} -> mutualTlsAuthentication) (\s@DomainName' {} a -> s {mutualTlsAuthentication = a} :: DomainName)++-- | The collection of tags associated with a domain name.+domainName_tags :: Lens.Lens' DomainName (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+domainName_tags = Lens.lens (\DomainName' {tags} -> tags) (\s@DomainName' {} a -> s {tags = a} :: DomainName) Prelude.. Lens.mapping Lens.coerced++-- | The name of the DomainName resource.+domainName_domainName :: Lens.Lens' DomainName Prelude.Text+domainName_domainName = Lens.lens (\DomainName' {domainName} -> domainName) (\s@DomainName' {} a -> s {domainName = a} :: DomainName)++instance Data.FromJSON DomainName where+  parseJSON =+    Data.withObject+      "DomainName"+      ( \x ->+          DomainName'+            Prelude.<$> (x Data..:? "apiMappingSelectionExpression")+            Prelude.<*> ( x+                            Data..:? "domainNameConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "mutualTlsAuthentication")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "domainName")+      )++instance Prelude.Hashable DomainName where+  hashWithSalt _salt DomainName' {..} =+    _salt+      `Prelude.hashWithSalt` apiMappingSelectionExpression+      `Prelude.hashWithSalt` domainNameConfigurations+      `Prelude.hashWithSalt` mutualTlsAuthentication+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData DomainName where+  rnf DomainName' {..} =+    Prelude.rnf apiMappingSelectionExpression+      `Prelude.seq` Prelude.rnf domainNameConfigurations+      `Prelude.seq` Prelude.rnf mutualTlsAuthentication+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf domainName
+ gen/Amazonka/ApiGatewayV2/Types/DomainNameConfiguration.hs view
@@ -0,0 +1,249 @@+{-# 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.ApiGatewayV2.Types.DomainNameConfiguration+-- 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.ApiGatewayV2.Types.DomainNameConfiguration where++import Amazonka.ApiGatewayV2.Types.DomainNameStatus+import Amazonka.ApiGatewayV2.Types.EndpointType+import Amazonka.ApiGatewayV2.Types.SecurityPolicy+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The domain name configuration.+--+-- /See:/ 'newDomainNameConfiguration' smart constructor.+data DomainNameConfiguration = DomainNameConfiguration'+  { -- | A domain name for the API.+    apiGatewayDomainName :: Prelude.Maybe Prelude.Text,+    -- | An AWS-managed certificate that will be used by the edge-optimized+    -- endpoint for this domain name. AWS Certificate Manager is the only+    -- supported source.+    certificateArn :: Prelude.Maybe Prelude.Text,+    -- | The user-friendly name of the certificate that will be used by the+    -- edge-optimized endpoint for this domain name.+    certificateName :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the certificate that was used by edge-optimized+    -- endpoint for this domain name was uploaded.+    certificateUploadDate :: Prelude.Maybe Data.ISO8601,+    -- | The status of the domain name migration. The valid values are AVAILABLE,+    -- UPDATING, PENDING_CERTIFICATE_REIMPORT, and+    -- PENDING_OWNERSHIP_VERIFICATION. If the status is UPDATING, the domain+    -- cannot be modified further until the existing operation is complete. If+    -- it is AVAILABLE, the domain can be updated.+    domainNameStatus :: Prelude.Maybe DomainNameStatus,+    -- | An optional text message containing detailed information about status of+    -- the domain name migration.+    domainNameStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The endpoint type.+    endpointType :: Prelude.Maybe EndpointType,+    -- | The Amazon Route 53 Hosted Zone ID of the endpoint.+    hostedZoneId :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the public certificate issued by ACM to validate ownership of+    -- your custom domain. Only required when configuring mutual TLS and using+    -- an ACM imported or private CA certificate ARN as the+    -- regionalCertificateArn+    ownershipVerificationCertificateArn :: Prelude.Maybe Prelude.Text,+    -- | The Transport Layer Security (TLS) version of the security policy for+    -- this domain name. The valid values are TLS_1_0 and TLS_1_2.+    securityPolicy :: Prelude.Maybe SecurityPolicy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainNameConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayDomainName', 'domainNameConfiguration_apiGatewayDomainName' - A domain name for the API.+--+-- 'certificateArn', 'domainNameConfiguration_certificateArn' - An AWS-managed certificate that will be used by the edge-optimized+-- endpoint for this domain name. AWS Certificate Manager is the only+-- supported source.+--+-- 'certificateName', 'domainNameConfiguration_certificateName' - The user-friendly name of the certificate that will be used by the+-- edge-optimized endpoint for this domain name.+--+-- 'certificateUploadDate', 'domainNameConfiguration_certificateUploadDate' - The timestamp when the certificate that was used by edge-optimized+-- endpoint for this domain name was uploaded.+--+-- 'domainNameStatus', 'domainNameConfiguration_domainNameStatus' - The status of the domain name migration. The valid values are AVAILABLE,+-- UPDATING, PENDING_CERTIFICATE_REIMPORT, and+-- PENDING_OWNERSHIP_VERIFICATION. If the status is UPDATING, the domain+-- cannot be modified further until the existing operation is complete. If+-- it is AVAILABLE, the domain can be updated.+--+-- 'domainNameStatusMessage', 'domainNameConfiguration_domainNameStatusMessage' - An optional text message containing detailed information about status of+-- the domain name migration.+--+-- 'endpointType', 'domainNameConfiguration_endpointType' - The endpoint type.+--+-- 'hostedZoneId', 'domainNameConfiguration_hostedZoneId' - The Amazon Route 53 Hosted Zone ID of the endpoint.+--+-- 'ownershipVerificationCertificateArn', 'domainNameConfiguration_ownershipVerificationCertificateArn' - The ARN of the public certificate issued by ACM to validate ownership of+-- your custom domain. Only required when configuring mutual TLS and using+-- an ACM imported or private CA certificate ARN as the+-- regionalCertificateArn+--+-- 'securityPolicy', 'domainNameConfiguration_securityPolicy' - The Transport Layer Security (TLS) version of the security policy for+-- this domain name. The valid values are TLS_1_0 and TLS_1_2.+newDomainNameConfiguration ::+  DomainNameConfiguration+newDomainNameConfiguration =+  DomainNameConfiguration'+    { apiGatewayDomainName =+        Prelude.Nothing,+      certificateArn = Prelude.Nothing,+      certificateName = Prelude.Nothing,+      certificateUploadDate = Prelude.Nothing,+      domainNameStatus = Prelude.Nothing,+      domainNameStatusMessage = Prelude.Nothing,+      endpointType = Prelude.Nothing,+      hostedZoneId = Prelude.Nothing,+      ownershipVerificationCertificateArn =+        Prelude.Nothing,+      securityPolicy = Prelude.Nothing+    }++-- | A domain name for the API.+domainNameConfiguration_apiGatewayDomainName :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe Prelude.Text)+domainNameConfiguration_apiGatewayDomainName = Lens.lens (\DomainNameConfiguration' {apiGatewayDomainName} -> apiGatewayDomainName) (\s@DomainNameConfiguration' {} a -> s {apiGatewayDomainName = a} :: DomainNameConfiguration)++-- | An AWS-managed certificate that will be used by the edge-optimized+-- endpoint for this domain name. AWS Certificate Manager is the only+-- supported source.+domainNameConfiguration_certificateArn :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe Prelude.Text)+domainNameConfiguration_certificateArn = Lens.lens (\DomainNameConfiguration' {certificateArn} -> certificateArn) (\s@DomainNameConfiguration' {} a -> s {certificateArn = a} :: DomainNameConfiguration)++-- | The user-friendly name of the certificate that will be used by the+-- edge-optimized endpoint for this domain name.+domainNameConfiguration_certificateName :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe Prelude.Text)+domainNameConfiguration_certificateName = Lens.lens (\DomainNameConfiguration' {certificateName} -> certificateName) (\s@DomainNameConfiguration' {} a -> s {certificateName = a} :: DomainNameConfiguration)++-- | The timestamp when the certificate that was used by edge-optimized+-- endpoint for this domain name was uploaded.+domainNameConfiguration_certificateUploadDate :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe Prelude.UTCTime)+domainNameConfiguration_certificateUploadDate = Lens.lens (\DomainNameConfiguration' {certificateUploadDate} -> certificateUploadDate) (\s@DomainNameConfiguration' {} a -> s {certificateUploadDate = a} :: DomainNameConfiguration) Prelude.. Lens.mapping Data._Time++-- | The status of the domain name migration. The valid values are AVAILABLE,+-- UPDATING, PENDING_CERTIFICATE_REIMPORT, and+-- PENDING_OWNERSHIP_VERIFICATION. If the status is UPDATING, the domain+-- cannot be modified further until the existing operation is complete. If+-- it is AVAILABLE, the domain can be updated.+domainNameConfiguration_domainNameStatus :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe DomainNameStatus)+domainNameConfiguration_domainNameStatus = Lens.lens (\DomainNameConfiguration' {domainNameStatus} -> domainNameStatus) (\s@DomainNameConfiguration' {} a -> s {domainNameStatus = a} :: DomainNameConfiguration)++-- | An optional text message containing detailed information about status of+-- the domain name migration.+domainNameConfiguration_domainNameStatusMessage :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe Prelude.Text)+domainNameConfiguration_domainNameStatusMessage = Lens.lens (\DomainNameConfiguration' {domainNameStatusMessage} -> domainNameStatusMessage) (\s@DomainNameConfiguration' {} a -> s {domainNameStatusMessage = a} :: DomainNameConfiguration)++-- | The endpoint type.+domainNameConfiguration_endpointType :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe EndpointType)+domainNameConfiguration_endpointType = Lens.lens (\DomainNameConfiguration' {endpointType} -> endpointType) (\s@DomainNameConfiguration' {} a -> s {endpointType = a} :: DomainNameConfiguration)++-- | The Amazon Route 53 Hosted Zone ID of the endpoint.+domainNameConfiguration_hostedZoneId :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe Prelude.Text)+domainNameConfiguration_hostedZoneId = Lens.lens (\DomainNameConfiguration' {hostedZoneId} -> hostedZoneId) (\s@DomainNameConfiguration' {} a -> s {hostedZoneId = a} :: DomainNameConfiguration)++-- | The ARN of the public certificate issued by ACM to validate ownership of+-- your custom domain. Only required when configuring mutual TLS and using+-- an ACM imported or private CA certificate ARN as the+-- regionalCertificateArn+domainNameConfiguration_ownershipVerificationCertificateArn :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe Prelude.Text)+domainNameConfiguration_ownershipVerificationCertificateArn = Lens.lens (\DomainNameConfiguration' {ownershipVerificationCertificateArn} -> ownershipVerificationCertificateArn) (\s@DomainNameConfiguration' {} a -> s {ownershipVerificationCertificateArn = a} :: DomainNameConfiguration)++-- | The Transport Layer Security (TLS) version of the security policy for+-- this domain name. The valid values are TLS_1_0 and TLS_1_2.+domainNameConfiguration_securityPolicy :: Lens.Lens' DomainNameConfiguration (Prelude.Maybe SecurityPolicy)+domainNameConfiguration_securityPolicy = Lens.lens (\DomainNameConfiguration' {securityPolicy} -> securityPolicy) (\s@DomainNameConfiguration' {} a -> s {securityPolicy = a} :: DomainNameConfiguration)++instance Data.FromJSON DomainNameConfiguration where+  parseJSON =+    Data.withObject+      "DomainNameConfiguration"+      ( \x ->+          DomainNameConfiguration'+            Prelude.<$> (x Data..:? "apiGatewayDomainName")+            Prelude.<*> (x Data..:? "certificateArn")+            Prelude.<*> (x Data..:? "certificateName")+            Prelude.<*> (x Data..:? "certificateUploadDate")+            Prelude.<*> (x Data..:? "domainNameStatus")+            Prelude.<*> (x Data..:? "domainNameStatusMessage")+            Prelude.<*> (x Data..:? "endpointType")+            Prelude.<*> (x Data..:? "hostedZoneId")+            Prelude.<*> (x Data..:? "ownershipVerificationCertificateArn")+            Prelude.<*> (x Data..:? "securityPolicy")+      )++instance Prelude.Hashable DomainNameConfiguration where+  hashWithSalt _salt DomainNameConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` apiGatewayDomainName+      `Prelude.hashWithSalt` certificateArn+      `Prelude.hashWithSalt` certificateName+      `Prelude.hashWithSalt` certificateUploadDate+      `Prelude.hashWithSalt` domainNameStatus+      `Prelude.hashWithSalt` domainNameStatusMessage+      `Prelude.hashWithSalt` endpointType+      `Prelude.hashWithSalt` hostedZoneId+      `Prelude.hashWithSalt` ownershipVerificationCertificateArn+      `Prelude.hashWithSalt` securityPolicy++instance Prelude.NFData DomainNameConfiguration where+  rnf DomainNameConfiguration' {..} =+    Prelude.rnf apiGatewayDomainName+      `Prelude.seq` Prelude.rnf certificateArn+      `Prelude.seq` Prelude.rnf certificateName+      `Prelude.seq` Prelude.rnf certificateUploadDate+      `Prelude.seq` Prelude.rnf domainNameStatus+      `Prelude.seq` Prelude.rnf domainNameStatusMessage+      `Prelude.seq` Prelude.rnf endpointType+      `Prelude.seq` Prelude.rnf hostedZoneId+      `Prelude.seq` Prelude.rnf ownershipVerificationCertificateArn+      `Prelude.seq` Prelude.rnf securityPolicy++instance Data.ToJSON DomainNameConfiguration where+  toJSON DomainNameConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("apiGatewayDomainName" Data..=)+              Prelude.<$> apiGatewayDomainName,+            ("certificateArn" Data..=)+              Prelude.<$> certificateArn,+            ("certificateName" Data..=)+              Prelude.<$> certificateName,+            ("certificateUploadDate" Data..=)+              Prelude.<$> certificateUploadDate,+            ("domainNameStatus" Data..=)+              Prelude.<$> domainNameStatus,+            ("domainNameStatusMessage" Data..=)+              Prelude.<$> domainNameStatusMessage,+            ("endpointType" Data..=) Prelude.<$> endpointType,+            ("hostedZoneId" Data..=) Prelude.<$> hostedZoneId,+            ("ownershipVerificationCertificateArn" Data..=)+              Prelude.<$> ownershipVerificationCertificateArn,+            ("securityPolicy" Data..=)+              Prelude.<$> securityPolicy+          ]+      )
+ gen/Amazonka/ApiGatewayV2/Types/DomainNameStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.Types.DomainNameStatus+-- 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.ApiGatewayV2.Types.DomainNameStatus+  ( DomainNameStatus+      ( ..,+        DomainNameStatus_AVAILABLE,+        DomainNameStatus_PENDING_CERTIFICATE_REIMPORT,+        DomainNameStatus_PENDING_OWNERSHIP_VERIFICATION,+        DomainNameStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of the domain name migration. The valid values are AVAILABLE,+-- UPDATING, PENDING_CERTIFICATE_REIMPORT, and+-- PENDING_OWNERSHIP_VERIFICATION. If the status is UPDATING, the domain+-- cannot be modified further until the existing operation is complete. If+-- it is AVAILABLE, the domain can be updated.+newtype DomainNameStatus = DomainNameStatus'+  { fromDomainNameStatus ::+      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 DomainNameStatus_AVAILABLE :: DomainNameStatus+pattern DomainNameStatus_AVAILABLE = DomainNameStatus' "AVAILABLE"++pattern DomainNameStatus_PENDING_CERTIFICATE_REIMPORT :: DomainNameStatus+pattern DomainNameStatus_PENDING_CERTIFICATE_REIMPORT = DomainNameStatus' "PENDING_CERTIFICATE_REIMPORT"++pattern DomainNameStatus_PENDING_OWNERSHIP_VERIFICATION :: DomainNameStatus+pattern DomainNameStatus_PENDING_OWNERSHIP_VERIFICATION = DomainNameStatus' "PENDING_OWNERSHIP_VERIFICATION"++pattern DomainNameStatus_UPDATING :: DomainNameStatus+pattern DomainNameStatus_UPDATING = DomainNameStatus' "UPDATING"++{-# COMPLETE+  DomainNameStatus_AVAILABLE,+  DomainNameStatus_PENDING_CERTIFICATE_REIMPORT,+  DomainNameStatus_PENDING_OWNERSHIP_VERIFICATION,+  DomainNameStatus_UPDATING,+  DomainNameStatus'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/EndpointType.hs view
@@ -0,0 +1,72 @@+{-# 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.ApiGatewayV2.Types.EndpointType+-- 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.ApiGatewayV2.Types.EndpointType+  ( EndpointType+      ( ..,+        EndpointType_EDGE,+        EndpointType_REGIONAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents an endpoint type.+newtype EndpointType = EndpointType'+  { fromEndpointType ::+      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 EndpointType_EDGE :: EndpointType+pattern EndpointType_EDGE = EndpointType' "EDGE"++pattern EndpointType_REGIONAL :: EndpointType+pattern EndpointType_REGIONAL = EndpointType' "REGIONAL"++{-# COMPLETE+  EndpointType_EDGE,+  EndpointType_REGIONAL,+  EndpointType'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/Integration.hs view
@@ -0,0 +1,670 @@+{-# 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.ApiGatewayV2.Types.Integration+-- 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.ApiGatewayV2.Types.Integration where++import Amazonka.ApiGatewayV2.Types.ConnectionType+import Amazonka.ApiGatewayV2.Types.ContentHandlingStrategy+import Amazonka.ApiGatewayV2.Types.IntegrationType+import Amazonka.ApiGatewayV2.Types.PassthroughBehavior+import Amazonka.ApiGatewayV2.Types.TlsConfig+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 an integration.+--+-- /See:/ 'newIntegration' smart constructor.+data Integration = Integration'+  { -- | Specifies whether an integration is managed by API Gateway. If you+    -- created an API using using quick create, the resulting integration is+    -- managed by API Gateway. You can update a managed integration, but you+    -- can\'t delete it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the VPC link for a private integration. Supported only for+    -- HTTP APIs.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | The type of the network connection to the integration endpoint. Specify+    -- INTERNET for connections through the public routable internet or+    -- VPC_LINK for private connections between API Gateway and resources in a+    -- VPC. The default value is INTERNET.+    connectionType :: Prelude.Maybe ConnectionType,+    -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | Specifies the credentials required for the integration, if any. For AWS+    -- integrations, three options are available. To specify an IAM Role for+    -- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+    -- require that the caller\'s identity be passed through from the request,+    -- specify the string arn:aws:iam::*:user\/*. To use resource-based+    -- permissions on supported AWS services, specify null.+    credentialsArn :: Prelude.Maybe Prelude.Text,+    -- | Represents the description of an integration.+    description :: Prelude.Maybe Prelude.Text,+    -- | Represents the identifier of an integration.+    integrationId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the integration\'s HTTP method type.+    integrationMethod :: Prelude.Maybe Prelude.Text,+    -- | The integration response selection expression for the integration.+    -- Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+    integrationResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+    -- service action to invoke. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+    integrationSubtype :: Prelude.Maybe Prelude.Text,+    -- | The integration type of an integration. One of the following:+    --+    -- AWS: for integrating the route or method request with an AWS service+    -- action, including the Lambda function-invoking action. With the Lambda+    -- function-invoking action, this is referred to as the Lambda custom+    -- integration. With any other AWS service action, this is known as AWS+    -- integration. Supported only for WebSocket APIs.+    --+    -- AWS_PROXY: for integrating the route or method request with a Lambda+    -- function or other AWS service action. This integration is also referred+    -- to as a Lambda proxy integration.+    --+    -- HTTP: for integrating the route or method request with an HTTP endpoint.+    -- This integration is also referred to as the HTTP custom integration.+    -- Supported only for WebSocket APIs.+    --+    -- HTTP_PROXY: for integrating the route or method request with an HTTP+    -- endpoint, with the client request passed through as-is. This is also+    -- referred to as HTTP proxy integration.+    --+    -- MOCK: for integrating the route or method request with API Gateway as a+    -- \"loopback\" endpoint without invoking any backend. Supported only for+    -- WebSocket APIs.+    integrationType :: Prelude.Maybe IntegrationType,+    -- | For a Lambda integration, specify the URI of a Lambda function.+    --+    -- For an HTTP integration, specify a fully-qualified URL.+    --+    -- For an HTTP API private integration, specify the ARN of an Application+    -- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+    -- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+    -- uses DiscoverInstances to identify resources. You can use query+    -- parameters to target specific resources. To learn more, see+    -- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+    -- For private integrations, all resources must be owned by the same AWS+    -- account.+    integrationUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies the pass-through behavior for incoming requests based on the+    -- Content-Type header in the request, and the available mapping templates+    -- specified as the requestTemplates property on the Integration resource.+    -- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+    -- NEVER. Supported only for WebSocket APIs.+    --+    -- WHEN_NO_MATCH passes the request body for unmapped content types through+    -- to the integration backend without transformation.+    --+    -- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+    -- Type response.+    --+    -- WHEN_NO_TEMPLATES allows pass-through when the integration has no+    -- content types mapped to templates. However, if there is at least one+    -- content type defined, unmapped content types will be rejected with the+    -- same HTTP 415 Unsupported Media Type response.+    passthroughBehavior :: Prelude.Maybe PassthroughBehavior,+    -- | Specifies the format of the payload sent to an integration. Required for+    -- HTTP APIs.+    payloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | For WebSocket APIs, a key-value map specifying request parameters that+    -- are passed from the method request to the backend. The key is an+    -- integration request parameter name and the associated value is a method+    -- request parameter value or static value that must be enclosed within+    -- single quotes and pre-encoded as required by the backend. The method+    -- request parameter value must match the pattern of+    -- method.request.{location}.{name} , where {location} is querystring,+    -- path, or header; and {name} must be a valid and unique method request+    -- parameter name.+    --+    -- For HTTP API integrations with a specified integrationSubtype, request+    -- parameters are a key-value map specifying parameters that are passed to+    -- AWS_PROXY integrations. You can provide static values, or map request+    -- data, stage variables, or context variables that are evaluated at+    -- runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+    --+    -- For HTTP API itegrations, without a specified integrationSubtype request+    -- parameters are a key-value map specifying how to transform HTTP requests+    -- before sending them to backend integrations. The key should follow the+    -- pattern \<action>:\<header|querystring|path>.\<location>. The action can+    -- be append, overwrite or remove. For values, you can provide static+    -- values, or map request data, stage variables, or context variables that+    -- are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents a map of Velocity templates that are applied on the request+    -- payload based on the value of the Content-Type header sent by the+    -- client. The content type value is the key in this map, and the template+    -- (as a String) is the value. Supported only for WebSocket APIs.+    requestTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Supported only for HTTP APIs. You use response parameters to transform+    -- the HTTP response from a backend integration before returning the+    -- response to clients. Specify a key-value map from a selection key to+    -- response parameters. The selection key must be a valid HTTP status code+    -- within the range of 200-599. Response parameters are a key-value map.+    -- The key must match pattern \<action>:\<header>.\<location> or+    -- overwrite.statuscode. The action can be append, overwrite or remove. The+    -- value can be a static value, or map to response data, stage variables,+    -- or context variables that are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The template selection expression for the integration. Supported only+    -- for WebSocket APIs.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+    -- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+    -- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+    timeoutInMillis :: Prelude.Maybe Prelude.Natural,+    -- | The TLS configuration for a private integration. If you specify a TLS+    -- configuration, private integration traffic uses the HTTPS protocol.+    -- Supported only for HTTP APIs.+    tlsConfig :: Prelude.Maybe TlsConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Integration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayManaged', 'integration_apiGatewayManaged' - Specifies whether an integration is managed by API Gateway. If you+-- created an API using using quick create, the resulting integration is+-- managed by API Gateway. You can update a managed integration, but you+-- can\'t delete it.+--+-- 'connectionId', 'integration_connectionId' - The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+--+-- 'connectionType', 'integration_connectionType' - The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+--+-- 'contentHandlingStrategy', 'integration_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'credentialsArn', 'integration_credentialsArn' - Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+--+-- 'description', 'integration_description' - Represents the description of an integration.+--+-- 'integrationId', 'integration_integrationId' - Represents the identifier of an integration.+--+-- 'integrationMethod', 'integration_integrationMethod' - Specifies the integration\'s HTTP method type.+--+-- 'integrationResponseSelectionExpression', 'integration_integrationResponseSelectionExpression' - The integration response selection expression for the integration.+-- Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+--+-- 'integrationSubtype', 'integration_integrationSubtype' - Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+--+-- 'integrationType', 'integration_integrationType' - The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+--+-- 'integrationUri', 'integration_integrationUri' - For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+--+-- 'passthroughBehavior', 'integration_passthroughBehavior' - Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+--+-- 'payloadFormatVersion', 'integration_payloadFormatVersion' - Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+--+-- 'requestParameters', 'integration_requestParameters' - For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API itegrations, without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to backend integrations. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location>. The action can+-- be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'requestTemplates', 'integration_requestTemplates' - Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+--+-- 'responseParameters', 'integration_responseParameters' - Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'templateSelectionExpression', 'integration_templateSelectionExpression' - The template selection expression for the integration. Supported only+-- for WebSocket APIs.+--+-- 'timeoutInMillis', 'integration_timeoutInMillis' - Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+--+-- 'tlsConfig', 'integration_tlsConfig' - The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+newIntegration ::+  Integration+newIntegration =+  Integration'+    { apiGatewayManaged = Prelude.Nothing,+      connectionId = Prelude.Nothing,+      connectionType = Prelude.Nothing,+      contentHandlingStrategy = Prelude.Nothing,+      credentialsArn = Prelude.Nothing,+      description = Prelude.Nothing,+      integrationId = Prelude.Nothing,+      integrationMethod = Prelude.Nothing,+      integrationResponseSelectionExpression =+        Prelude.Nothing,+      integrationSubtype = Prelude.Nothing,+      integrationType = Prelude.Nothing,+      integrationUri = Prelude.Nothing,+      passthroughBehavior = Prelude.Nothing,+      payloadFormatVersion = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      requestTemplates = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      templateSelectionExpression = Prelude.Nothing,+      timeoutInMillis = Prelude.Nothing,+      tlsConfig = Prelude.Nothing+    }++-- | Specifies whether an integration is managed by API Gateway. If you+-- created an API using using quick create, the resulting integration is+-- managed by API Gateway. You can update a managed integration, but you+-- can\'t delete it.+integration_apiGatewayManaged :: Lens.Lens' Integration (Prelude.Maybe Prelude.Bool)+integration_apiGatewayManaged = Lens.lens (\Integration' {apiGatewayManaged} -> apiGatewayManaged) (\s@Integration' {} a -> s {apiGatewayManaged = a} :: Integration)++-- | The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+integration_connectionId :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_connectionId = Lens.lens (\Integration' {connectionId} -> connectionId) (\s@Integration' {} a -> s {connectionId = a} :: Integration)++-- | The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+integration_connectionType :: Lens.Lens' Integration (Prelude.Maybe ConnectionType)+integration_connectionType = Lens.lens (\Integration' {connectionType} -> connectionType) (\s@Integration' {} a -> s {connectionType = a} :: Integration)++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+integration_contentHandlingStrategy :: Lens.Lens' Integration (Prelude.Maybe ContentHandlingStrategy)+integration_contentHandlingStrategy = Lens.lens (\Integration' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@Integration' {} a -> s {contentHandlingStrategy = a} :: Integration)++-- | Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+integration_credentialsArn :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_credentialsArn = Lens.lens (\Integration' {credentialsArn} -> credentialsArn) (\s@Integration' {} a -> s {credentialsArn = a} :: Integration)++-- | Represents the description of an integration.+integration_description :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_description = Lens.lens (\Integration' {description} -> description) (\s@Integration' {} a -> s {description = a} :: Integration)++-- | Represents the identifier of an integration.+integration_integrationId :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_integrationId = Lens.lens (\Integration' {integrationId} -> integrationId) (\s@Integration' {} a -> s {integrationId = a} :: Integration)++-- | Specifies the integration\'s HTTP method type.+integration_integrationMethod :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_integrationMethod = Lens.lens (\Integration' {integrationMethod} -> integrationMethod) (\s@Integration' {} a -> s {integrationMethod = a} :: Integration)++-- | The integration response selection expression for the integration.+-- Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+integration_integrationResponseSelectionExpression :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_integrationResponseSelectionExpression = Lens.lens (\Integration' {integrationResponseSelectionExpression} -> integrationResponseSelectionExpression) (\s@Integration' {} a -> s {integrationResponseSelectionExpression = a} :: Integration)++-- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+integration_integrationSubtype :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_integrationSubtype = Lens.lens (\Integration' {integrationSubtype} -> integrationSubtype) (\s@Integration' {} a -> s {integrationSubtype = a} :: Integration)++-- | The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+integration_integrationType :: Lens.Lens' Integration (Prelude.Maybe IntegrationType)+integration_integrationType = Lens.lens (\Integration' {integrationType} -> integrationType) (\s@Integration' {} a -> s {integrationType = a} :: Integration)++-- | For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+integration_integrationUri :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_integrationUri = Lens.lens (\Integration' {integrationUri} -> integrationUri) (\s@Integration' {} a -> s {integrationUri = a} :: Integration)++-- | Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+integration_passthroughBehavior :: Lens.Lens' Integration (Prelude.Maybe PassthroughBehavior)+integration_passthroughBehavior = Lens.lens (\Integration' {passthroughBehavior} -> passthroughBehavior) (\s@Integration' {} a -> s {passthroughBehavior = a} :: Integration)++-- | Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+integration_payloadFormatVersion :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_payloadFormatVersion = Lens.lens (\Integration' {payloadFormatVersion} -> payloadFormatVersion) (\s@Integration' {} a -> s {payloadFormatVersion = a} :: Integration)++-- | For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API itegrations, without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to backend integrations. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location>. The action can+-- be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+integration_requestParameters :: Lens.Lens' Integration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+integration_requestParameters = Lens.lens (\Integration' {requestParameters} -> requestParameters) (\s@Integration' {} a -> s {requestParameters = a} :: Integration) Prelude.. Lens.mapping Lens.coerced++-- | Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+integration_requestTemplates :: Lens.Lens' Integration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+integration_requestTemplates = Lens.lens (\Integration' {requestTemplates} -> requestTemplates) (\s@Integration' {} a -> s {requestTemplates = a} :: Integration) Prelude.. Lens.mapping Lens.coerced++-- | Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+integration_responseParameters :: Lens.Lens' Integration (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+integration_responseParameters = Lens.lens (\Integration' {responseParameters} -> responseParameters) (\s@Integration' {} a -> s {responseParameters = a} :: Integration) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expression for the integration. Supported only+-- for WebSocket APIs.+integration_templateSelectionExpression :: Lens.Lens' Integration (Prelude.Maybe Prelude.Text)+integration_templateSelectionExpression = Lens.lens (\Integration' {templateSelectionExpression} -> templateSelectionExpression) (\s@Integration' {} a -> s {templateSelectionExpression = a} :: Integration)++-- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+integration_timeoutInMillis :: Lens.Lens' Integration (Prelude.Maybe Prelude.Natural)+integration_timeoutInMillis = Lens.lens (\Integration' {timeoutInMillis} -> timeoutInMillis) (\s@Integration' {} a -> s {timeoutInMillis = a} :: Integration)++-- | The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+integration_tlsConfig :: Lens.Lens' Integration (Prelude.Maybe TlsConfig)+integration_tlsConfig = Lens.lens (\Integration' {tlsConfig} -> tlsConfig) (\s@Integration' {} a -> s {tlsConfig = a} :: Integration)++instance Data.FromJSON Integration where+  parseJSON =+    Data.withObject+      "Integration"+      ( \x ->+          Integration'+            Prelude.<$> (x Data..:? "apiGatewayManaged")+            Prelude.<*> (x Data..:? "connectionId")+            Prelude.<*> (x Data..:? "connectionType")+            Prelude.<*> (x Data..:? "contentHandlingStrategy")+            Prelude.<*> (x Data..:? "credentialsArn")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "integrationId")+            Prelude.<*> (x Data..:? "integrationMethod")+            Prelude.<*> (x Data..:? "integrationResponseSelectionExpression")+            Prelude.<*> (x Data..:? "integrationSubtype")+            Prelude.<*> (x Data..:? "integrationType")+            Prelude.<*> (x Data..:? "integrationUri")+            Prelude.<*> (x Data..:? "passthroughBehavior")+            Prelude.<*> (x Data..:? "payloadFormatVersion")+            Prelude.<*> ( x+                            Data..:? "requestParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "requestTemplates"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "responseParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "templateSelectionExpression")+            Prelude.<*> (x Data..:? "timeoutInMillis")+            Prelude.<*> (x Data..:? "tlsConfig")+      )++instance Prelude.Hashable Integration where+  hashWithSalt _salt Integration' {..} =+    _salt+      `Prelude.hashWithSalt` apiGatewayManaged+      `Prelude.hashWithSalt` connectionId+      `Prelude.hashWithSalt` connectionType+      `Prelude.hashWithSalt` contentHandlingStrategy+      `Prelude.hashWithSalt` credentialsArn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` integrationId+      `Prelude.hashWithSalt` integrationMethod+      `Prelude.hashWithSalt` integrationResponseSelectionExpression+      `Prelude.hashWithSalt` integrationSubtype+      `Prelude.hashWithSalt` integrationType+      `Prelude.hashWithSalt` integrationUri+      `Prelude.hashWithSalt` passthroughBehavior+      `Prelude.hashWithSalt` payloadFormatVersion+      `Prelude.hashWithSalt` requestParameters+      `Prelude.hashWithSalt` requestTemplates+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` templateSelectionExpression+      `Prelude.hashWithSalt` timeoutInMillis+      `Prelude.hashWithSalt` tlsConfig++instance Prelude.NFData Integration where+  rnf Integration' {..} =+    Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionType+      `Prelude.seq` Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf credentialsArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf integrationId+      `Prelude.seq` Prelude.rnf integrationMethod+      `Prelude.seq` Prelude.rnf integrationResponseSelectionExpression+      `Prelude.seq` Prelude.rnf integrationSubtype+      `Prelude.seq` Prelude.rnf integrationType+      `Prelude.seq` Prelude.rnf integrationUri+      `Prelude.seq` Prelude.rnf passthroughBehavior+      `Prelude.seq` Prelude.rnf payloadFormatVersion+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf requestTemplates+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf+        templateSelectionExpression+      `Prelude.seq` Prelude.rnf timeoutInMillis+      `Prelude.seq` Prelude.rnf tlsConfig
+ gen/Amazonka/ApiGatewayV2/Types/IntegrationResponse.hs view
@@ -0,0 +1,217 @@+{-# 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.ApiGatewayV2.Types.IntegrationResponse+-- 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.ApiGatewayV2.Types.IntegrationResponse where++import Amazonka.ApiGatewayV2.Types.ContentHandlingStrategy+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 an integration response.+--+-- /See:/ 'newIntegrationResponse' smart constructor.+data IntegrationResponse = IntegrationResponse'+  { -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | The integration response ID.+    integrationResponseId :: Prelude.Maybe Prelude.Text,+    -- | A key-value map specifying response parameters that are passed to the+    -- method response from the backend. The key is a method response header+    -- parameter name and the mapped value is an integration response header+    -- value, a static value enclosed within a pair of single quotes, or a JSON+    -- expression from the integration response body. The mapping key must+    -- match the pattern of method.response.header.{name}, where name is a+    -- valid and unique header name. The mapped non-static value must match the+    -- pattern of integration.response.header.{name} or+    -- integration.response.body.{JSON-expression}, where name is a valid and+    -- unique response header name and JSON-expression is a valid JSON+    -- expression without the $ prefix.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of response templates for the integration response as a+    -- string-to-string map of key-value pairs. Response templates are+    -- represented as a key\/value map, with a content-type as the key and a+    -- template as the value.+    responseTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The template selection expressions for the integration response.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The integration response key.+    integrationResponseKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentHandlingStrategy', 'integrationResponse_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'integrationResponseId', 'integrationResponse_integrationResponseId' - The integration response ID.+--+-- 'responseParameters', 'integrationResponse_responseParameters' - A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where name is a valid and+-- unique response header name and JSON-expression is a valid JSON+-- expression without the $ prefix.+--+-- 'responseTemplates', 'integrationResponse_responseTemplates' - The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+--+-- 'templateSelectionExpression', 'integrationResponse_templateSelectionExpression' - The template selection expressions for the integration response.+--+-- 'integrationResponseKey', 'integrationResponse_integrationResponseKey' - The integration response key.+newIntegrationResponse ::+  -- | 'integrationResponseKey'+  Prelude.Text ->+  IntegrationResponse+newIntegrationResponse pIntegrationResponseKey_ =+  IntegrationResponse'+    { contentHandlingStrategy =+        Prelude.Nothing,+      integrationResponseId = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      responseTemplates = Prelude.Nothing,+      templateSelectionExpression = Prelude.Nothing,+      integrationResponseKey = pIntegrationResponseKey_+    }++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+integrationResponse_contentHandlingStrategy :: Lens.Lens' IntegrationResponse (Prelude.Maybe ContentHandlingStrategy)+integrationResponse_contentHandlingStrategy = Lens.lens (\IntegrationResponse' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@IntegrationResponse' {} a -> s {contentHandlingStrategy = a} :: IntegrationResponse)++-- | The integration response ID.+integrationResponse_integrationResponseId :: Lens.Lens' IntegrationResponse (Prelude.Maybe Prelude.Text)+integrationResponse_integrationResponseId = Lens.lens (\IntegrationResponse' {integrationResponseId} -> integrationResponseId) (\s@IntegrationResponse' {} a -> s {integrationResponseId = a} :: IntegrationResponse)++-- | A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where name is a valid and+-- unique response header name and JSON-expression is a valid JSON+-- expression without the $ prefix.+integrationResponse_responseParameters :: Lens.Lens' IntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+integrationResponse_responseParameters = Lens.lens (\IntegrationResponse' {responseParameters} -> responseParameters) (\s@IntegrationResponse' {} a -> s {responseParameters = a} :: IntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+integrationResponse_responseTemplates :: Lens.Lens' IntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+integrationResponse_responseTemplates = Lens.lens (\IntegrationResponse' {responseTemplates} -> responseTemplates) (\s@IntegrationResponse' {} a -> s {responseTemplates = a} :: IntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expressions for the integration response.+integrationResponse_templateSelectionExpression :: Lens.Lens' IntegrationResponse (Prelude.Maybe Prelude.Text)+integrationResponse_templateSelectionExpression = Lens.lens (\IntegrationResponse' {templateSelectionExpression} -> templateSelectionExpression) (\s@IntegrationResponse' {} a -> s {templateSelectionExpression = a} :: IntegrationResponse)++-- | The integration response key.+integrationResponse_integrationResponseKey :: Lens.Lens' IntegrationResponse Prelude.Text+integrationResponse_integrationResponseKey = Lens.lens (\IntegrationResponse' {integrationResponseKey} -> integrationResponseKey) (\s@IntegrationResponse' {} a -> s {integrationResponseKey = a} :: IntegrationResponse)++instance Data.FromJSON IntegrationResponse where+  parseJSON =+    Data.withObject+      "IntegrationResponse"+      ( \x ->+          IntegrationResponse'+            Prelude.<$> (x Data..:? "contentHandlingStrategy")+            Prelude.<*> (x Data..:? "integrationResponseId")+            Prelude.<*> ( x+                            Data..:? "responseParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "responseTemplates"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "templateSelectionExpression")+            Prelude.<*> (x Data..: "integrationResponseKey")+      )++instance Prelude.Hashable IntegrationResponse where+  hashWithSalt _salt IntegrationResponse' {..} =+    _salt+      `Prelude.hashWithSalt` contentHandlingStrategy+      `Prelude.hashWithSalt` integrationResponseId+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` responseTemplates+      `Prelude.hashWithSalt` templateSelectionExpression+      `Prelude.hashWithSalt` integrationResponseKey++instance Prelude.NFData IntegrationResponse where+  rnf IntegrationResponse' {..} =+    Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf integrationResponseId+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf responseTemplates+      `Prelude.seq` Prelude.rnf templateSelectionExpression+      `Prelude.seq` Prelude.rnf integrationResponseKey
+ gen/Amazonka/ApiGatewayV2/Types/IntegrationType.hs view
@@ -0,0 +1,87 @@+{-# 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.ApiGatewayV2.Types.IntegrationType+-- 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.ApiGatewayV2.Types.IntegrationType+  ( IntegrationType+      ( ..,+        IntegrationType_AWS,+        IntegrationType_AWS_PROXY,+        IntegrationType_HTTP,+        IntegrationType_HTTP_PROXY,+        IntegrationType_MOCK+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents an API method integration type.+newtype IntegrationType = IntegrationType'+  { fromIntegrationType ::+      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 IntegrationType_AWS :: IntegrationType+pattern IntegrationType_AWS = IntegrationType' "AWS"++pattern IntegrationType_AWS_PROXY :: IntegrationType+pattern IntegrationType_AWS_PROXY = IntegrationType' "AWS_PROXY"++pattern IntegrationType_HTTP :: IntegrationType+pattern IntegrationType_HTTP = IntegrationType' "HTTP"++pattern IntegrationType_HTTP_PROXY :: IntegrationType+pattern IntegrationType_HTTP_PROXY = IntegrationType' "HTTP_PROXY"++pattern IntegrationType_MOCK :: IntegrationType+pattern IntegrationType_MOCK = IntegrationType' "MOCK"++{-# COMPLETE+  IntegrationType_AWS,+  IntegrationType_AWS_PROXY,+  IntegrationType_HTTP,+  IntegrationType_HTTP_PROXY,+  IntegrationType_MOCK,+  IntegrationType'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/JWTConfiguration.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.ApiGatewayV2.Types.JWTConfiguration+-- 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.ApiGatewayV2.Types.JWTConfiguration 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++-- | Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+--+-- /See:/ 'newJWTConfiguration' smart constructor.+data JWTConfiguration = JWTConfiguration'+  { -- | A list of the intended recipients of the JWT. A valid JWT must provide+    -- an aud that matches at least one entry in this list. See+    -- <https://tools.ietf.org/html/rfc7519#section-4.1.3 RFC 7519>. Supported+    -- only for HTTP APIs.+    audience :: Prelude.Maybe [Prelude.Text],+    -- | The base domain of the identity provider that issues JSON Web Tokens.+    -- For example, an Amazon Cognito user pool has the following format:+    -- https:\/\/cognito-idp.{region}.amazonaws.com\/{userPoolId} . Required+    -- for the JWT authorizer type. Supported only for HTTP APIs.+    issuer :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JWTConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'audience', 'jWTConfiguration_audience' - A list of the intended recipients of the JWT. A valid JWT must provide+-- an aud that matches at least one entry in this list. See+-- <https://tools.ietf.org/html/rfc7519#section-4.1.3 RFC 7519>. Supported+-- only for HTTP APIs.+--+-- 'issuer', 'jWTConfiguration_issuer' - The base domain of the identity provider that issues JSON Web Tokens.+-- For example, an Amazon Cognito user pool has the following format:+-- https:\/\/cognito-idp.{region}.amazonaws.com\/{userPoolId} . Required+-- for the JWT authorizer type. Supported only for HTTP APIs.+newJWTConfiguration ::+  JWTConfiguration+newJWTConfiguration =+  JWTConfiguration'+    { audience = Prelude.Nothing,+      issuer = Prelude.Nothing+    }++-- | A list of the intended recipients of the JWT. A valid JWT must provide+-- an aud that matches at least one entry in this list. See+-- <https://tools.ietf.org/html/rfc7519#section-4.1.3 RFC 7519>. Supported+-- only for HTTP APIs.+jWTConfiguration_audience :: Lens.Lens' JWTConfiguration (Prelude.Maybe [Prelude.Text])+jWTConfiguration_audience = Lens.lens (\JWTConfiguration' {audience} -> audience) (\s@JWTConfiguration' {} a -> s {audience = a} :: JWTConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The base domain of the identity provider that issues JSON Web Tokens.+-- For example, an Amazon Cognito user pool has the following format:+-- https:\/\/cognito-idp.{region}.amazonaws.com\/{userPoolId} . Required+-- for the JWT authorizer type. Supported only for HTTP APIs.+jWTConfiguration_issuer :: Lens.Lens' JWTConfiguration (Prelude.Maybe Prelude.Text)+jWTConfiguration_issuer = Lens.lens (\JWTConfiguration' {issuer} -> issuer) (\s@JWTConfiguration' {} a -> s {issuer = a} :: JWTConfiguration)++instance Data.FromJSON JWTConfiguration where+  parseJSON =+    Data.withObject+      "JWTConfiguration"+      ( \x ->+          JWTConfiguration'+            Prelude.<$> (x Data..:? "audience" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "issuer")+      )++instance Prelude.Hashable JWTConfiguration where+  hashWithSalt _salt JWTConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` audience+      `Prelude.hashWithSalt` issuer++instance Prelude.NFData JWTConfiguration where+  rnf JWTConfiguration' {..} =+    Prelude.rnf audience+      `Prelude.seq` Prelude.rnf issuer++instance Data.ToJSON JWTConfiguration where+  toJSON JWTConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("audience" Data..=) Prelude.<$> audience,+            ("issuer" Data..=) Prelude.<$> issuer+          ]+      )
+ gen/Amazonka/ApiGatewayV2/Types/LoggingLevel.hs view
@@ -0,0 +1,77 @@+{-# 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.ApiGatewayV2.Types.LoggingLevel+-- 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.ApiGatewayV2.Types.LoggingLevel+  ( LoggingLevel+      ( ..,+        LoggingLevel_ERROR,+        LoggingLevel_INFO,+        LoggingLevel_OFF+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The logging level.+newtype LoggingLevel = LoggingLevel'+  { fromLoggingLevel ::+      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 LoggingLevel_ERROR :: LoggingLevel+pattern LoggingLevel_ERROR = LoggingLevel' "ERROR"++pattern LoggingLevel_INFO :: LoggingLevel+pattern LoggingLevel_INFO = LoggingLevel' "INFO"++pattern LoggingLevel_OFF :: LoggingLevel+pattern LoggingLevel_OFF = LoggingLevel' "OFF"++{-# COMPLETE+  LoggingLevel_ERROR,+  LoggingLevel_INFO,+  LoggingLevel_OFF,+  LoggingLevel'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/Model.hs view
@@ -0,0 +1,127 @@+{-# 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.ApiGatewayV2.Types.Model+-- 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.ApiGatewayV2.Types.Model 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++-- | Represents a data model for an API. Supported only for WebSocket APIs.+-- See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html Create Models and Mapping Templates for Request and Response Mappings>.+--+-- /See:/ 'newModel' smart constructor.+data Model = Model'+  { -- | The content-type for the model, for example, \"application\/json\".+    contentType :: Prelude.Maybe Prelude.Text,+    -- | The description of the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The model identifier.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The schema for the model. For application\/json models, this should be+    -- JSON schema draft 4 model.+    schema :: Prelude.Maybe Prelude.Text,+    -- | The name of the model. Must be alphanumeric.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Model' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentType', 'model_contentType' - The content-type for the model, for example, \"application\/json\".+--+-- 'description', 'model_description' - The description of the model.+--+-- 'modelId', 'model_modelId' - The model identifier.+--+-- 'schema', 'model_schema' - The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+--+-- 'name', 'model_name' - The name of the model. Must be alphanumeric.+newModel ::+  -- | 'name'+  Prelude.Text ->+  Model+newModel pName_ =+  Model'+    { contentType = Prelude.Nothing,+      description = Prelude.Nothing,+      modelId = Prelude.Nothing,+      schema = Prelude.Nothing,+      name = pName_+    }++-- | The content-type for the model, for example, \"application\/json\".+model_contentType :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_contentType = Lens.lens (\Model' {contentType} -> contentType) (\s@Model' {} a -> s {contentType = a} :: Model)++-- | The description of the model.+model_description :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_description = Lens.lens (\Model' {description} -> description) (\s@Model' {} a -> s {description = a} :: Model)++-- | The model identifier.+model_modelId :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_modelId = Lens.lens (\Model' {modelId} -> modelId) (\s@Model' {} a -> s {modelId = a} :: Model)++-- | The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+model_schema :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_schema = Lens.lens (\Model' {schema} -> schema) (\s@Model' {} a -> s {schema = a} :: Model)++-- | The name of the model. Must be alphanumeric.+model_name :: Lens.Lens' Model Prelude.Text+model_name = Lens.lens (\Model' {name} -> name) (\s@Model' {} a -> s {name = a} :: Model)++instance Data.FromJSON Model where+  parseJSON =+    Data.withObject+      "Model"+      ( \x ->+          Model'+            Prelude.<$> (x Data..:? "contentType")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "modelId")+            Prelude.<*> (x Data..:? "schema")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable Model where+  hashWithSalt _salt Model' {..} =+    _salt+      `Prelude.hashWithSalt` contentType+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` schema+      `Prelude.hashWithSalt` name++instance Prelude.NFData Model where+  rnf Model' {..} =+    Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf schema+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/ApiGatewayV2/Types/MutualTlsAuthentication.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.Types.MutualTlsAuthentication+-- 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.ApiGatewayV2.Types.MutualTlsAuthentication 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++-- | /See:/ 'newMutualTlsAuthentication' smart constructor.+data MutualTlsAuthentication = MutualTlsAuthentication'+  { -- | An Amazon S3 URL that specifies the truststore for mutual TLS+    -- authentication, for example, s3:\/\/bucket-name\/key-name. The+    -- truststore can contain certificates from public or private certificate+    -- authorities. To update the truststore, upload a new version to S3, and+    -- then update your custom domain name to use the new version. To update+    -- the truststore, you must have permissions to access the S3 object.+    truststoreUri :: Prelude.Maybe Prelude.Text,+    -- | The version of the S3 object that contains your truststore. To specify a+    -- version, you must have versioning enabled for the S3 bucket.+    truststoreVersion :: Prelude.Maybe Prelude.Text,+    -- | A list of warnings that API Gateway returns while processing your+    -- truststore. Invalid certificates produce warnings. Mutual TLS is still+    -- enabled, but some clients might not be able to access your API. To+    -- resolve warnings, upload a new truststore to S3, and then update you+    -- domain name to use the new version.+    truststoreWarnings :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MutualTlsAuthentication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'truststoreUri', 'mutualTlsAuthentication_truststoreUri' - An Amazon S3 URL that specifies the truststore for mutual TLS+-- authentication, for example, s3:\/\/bucket-name\/key-name. The+-- truststore can contain certificates from public or private certificate+-- authorities. To update the truststore, upload a new version to S3, and+-- then update your custom domain name to use the new version. To update+-- the truststore, you must have permissions to access the S3 object.+--+-- 'truststoreVersion', 'mutualTlsAuthentication_truststoreVersion' - The version of the S3 object that contains your truststore. To specify a+-- version, you must have versioning enabled for the S3 bucket.+--+-- 'truststoreWarnings', 'mutualTlsAuthentication_truststoreWarnings' - A list of warnings that API Gateway returns while processing your+-- truststore. Invalid certificates produce warnings. Mutual TLS is still+-- enabled, but some clients might not be able to access your API. To+-- resolve warnings, upload a new truststore to S3, and then update you+-- domain name to use the new version.+newMutualTlsAuthentication ::+  MutualTlsAuthentication+newMutualTlsAuthentication =+  MutualTlsAuthentication'+    { truststoreUri =+        Prelude.Nothing,+      truststoreVersion = Prelude.Nothing,+      truststoreWarnings = Prelude.Nothing+    }++-- | An Amazon S3 URL that specifies the truststore for mutual TLS+-- authentication, for example, s3:\/\/bucket-name\/key-name. The+-- truststore can contain certificates from public or private certificate+-- authorities. To update the truststore, upload a new version to S3, and+-- then update your custom domain name to use the new version. To update+-- the truststore, you must have permissions to access the S3 object.+mutualTlsAuthentication_truststoreUri :: Lens.Lens' MutualTlsAuthentication (Prelude.Maybe Prelude.Text)+mutualTlsAuthentication_truststoreUri = Lens.lens (\MutualTlsAuthentication' {truststoreUri} -> truststoreUri) (\s@MutualTlsAuthentication' {} a -> s {truststoreUri = a} :: MutualTlsAuthentication)++-- | The version of the S3 object that contains your truststore. To specify a+-- version, you must have versioning enabled for the S3 bucket.+mutualTlsAuthentication_truststoreVersion :: Lens.Lens' MutualTlsAuthentication (Prelude.Maybe Prelude.Text)+mutualTlsAuthentication_truststoreVersion = Lens.lens (\MutualTlsAuthentication' {truststoreVersion} -> truststoreVersion) (\s@MutualTlsAuthentication' {} a -> s {truststoreVersion = a} :: MutualTlsAuthentication)++-- | A list of warnings that API Gateway returns while processing your+-- truststore. Invalid certificates produce warnings. Mutual TLS is still+-- enabled, but some clients might not be able to access your API. To+-- resolve warnings, upload a new truststore to S3, and then update you+-- domain name to use the new version.+mutualTlsAuthentication_truststoreWarnings :: Lens.Lens' MutualTlsAuthentication (Prelude.Maybe [Prelude.Text])+mutualTlsAuthentication_truststoreWarnings = Lens.lens (\MutualTlsAuthentication' {truststoreWarnings} -> truststoreWarnings) (\s@MutualTlsAuthentication' {} a -> s {truststoreWarnings = a} :: MutualTlsAuthentication) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON MutualTlsAuthentication where+  parseJSON =+    Data.withObject+      "MutualTlsAuthentication"+      ( \x ->+          MutualTlsAuthentication'+            Prelude.<$> (x Data..:? "truststoreUri")+            Prelude.<*> (x Data..:? "truststoreVersion")+            Prelude.<*> ( x+                            Data..:? "truststoreWarnings"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable MutualTlsAuthentication where+  hashWithSalt _salt MutualTlsAuthentication' {..} =+    _salt+      `Prelude.hashWithSalt` truststoreUri+      `Prelude.hashWithSalt` truststoreVersion+      `Prelude.hashWithSalt` truststoreWarnings++instance Prelude.NFData MutualTlsAuthentication where+  rnf MutualTlsAuthentication' {..} =+    Prelude.rnf truststoreUri+      `Prelude.seq` Prelude.rnf truststoreVersion+      `Prelude.seq` Prelude.rnf truststoreWarnings
+ gen/Amazonka/ApiGatewayV2/Types/MutualTlsAuthenticationInput.hs view
@@ -0,0 +1,104 @@+{-# 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.ApiGatewayV2.Types.MutualTlsAuthenticationInput+-- 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.ApiGatewayV2.Types.MutualTlsAuthenticationInput 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++-- | /See:/ 'newMutualTlsAuthenticationInput' smart constructor.+data MutualTlsAuthenticationInput = MutualTlsAuthenticationInput'+  { -- | An Amazon S3 URL that specifies the truststore for mutual TLS+    -- authentication, for example, s3:\/\/bucket-name\/key-name. The+    -- truststore can contain certificates from public or private certificate+    -- authorities. To update the truststore, upload a new version to S3, and+    -- then update your custom domain name to use the new version. To update+    -- the truststore, you must have permissions to access the S3 object.+    truststoreUri :: Prelude.Maybe Prelude.Text,+    -- | The version of the S3 object that contains your truststore. To specify a+    -- version, you must have versioning enabled for the S3 bucket.+    truststoreVersion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MutualTlsAuthenticationInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'truststoreUri', 'mutualTlsAuthenticationInput_truststoreUri' - An Amazon S3 URL that specifies the truststore for mutual TLS+-- authentication, for example, s3:\/\/bucket-name\/key-name. The+-- truststore can contain certificates from public or private certificate+-- authorities. To update the truststore, upload a new version to S3, and+-- then update your custom domain name to use the new version. To update+-- the truststore, you must have permissions to access the S3 object.+--+-- 'truststoreVersion', 'mutualTlsAuthenticationInput_truststoreVersion' - The version of the S3 object that contains your truststore. To specify a+-- version, you must have versioning enabled for the S3 bucket.+newMutualTlsAuthenticationInput ::+  MutualTlsAuthenticationInput+newMutualTlsAuthenticationInput =+  MutualTlsAuthenticationInput'+    { truststoreUri =+        Prelude.Nothing,+      truststoreVersion = Prelude.Nothing+    }++-- | An Amazon S3 URL that specifies the truststore for mutual TLS+-- authentication, for example, s3:\/\/bucket-name\/key-name. The+-- truststore can contain certificates from public or private certificate+-- authorities. To update the truststore, upload a new version to S3, and+-- then update your custom domain name to use the new version. To update+-- the truststore, you must have permissions to access the S3 object.+mutualTlsAuthenticationInput_truststoreUri :: Lens.Lens' MutualTlsAuthenticationInput (Prelude.Maybe Prelude.Text)+mutualTlsAuthenticationInput_truststoreUri = Lens.lens (\MutualTlsAuthenticationInput' {truststoreUri} -> truststoreUri) (\s@MutualTlsAuthenticationInput' {} a -> s {truststoreUri = a} :: MutualTlsAuthenticationInput)++-- | The version of the S3 object that contains your truststore. To specify a+-- version, you must have versioning enabled for the S3 bucket.+mutualTlsAuthenticationInput_truststoreVersion :: Lens.Lens' MutualTlsAuthenticationInput (Prelude.Maybe Prelude.Text)+mutualTlsAuthenticationInput_truststoreVersion = Lens.lens (\MutualTlsAuthenticationInput' {truststoreVersion} -> truststoreVersion) (\s@MutualTlsAuthenticationInput' {} a -> s {truststoreVersion = a} :: MutualTlsAuthenticationInput)++instance+  Prelude.Hashable+    MutualTlsAuthenticationInput+  where+  hashWithSalt _salt MutualTlsAuthenticationInput' {..} =+    _salt+      `Prelude.hashWithSalt` truststoreUri+      `Prelude.hashWithSalt` truststoreVersion++instance Prelude.NFData MutualTlsAuthenticationInput where+  rnf MutualTlsAuthenticationInput' {..} =+    Prelude.rnf truststoreUri+      `Prelude.seq` Prelude.rnf truststoreVersion++instance Data.ToJSON MutualTlsAuthenticationInput where+  toJSON MutualTlsAuthenticationInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("truststoreUri" Data..=) Prelude.<$> truststoreUri,+            ("truststoreVersion" Data..=)+              Prelude.<$> truststoreVersion+          ]+      )
+ gen/Amazonka/ApiGatewayV2/Types/ParameterConstraints.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.ApiGatewayV2.Types.ParameterConstraints+-- 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.ApiGatewayV2.Types.ParameterConstraints 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++-- | Validation constraints imposed on parameters of a request (path, query+-- string, headers).+--+-- /See:/ 'newParameterConstraints' smart constructor.+data ParameterConstraints = ParameterConstraints'+  { -- | Whether or not the parameter is required.+    required :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParameterConstraints' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'required', 'parameterConstraints_required' - Whether or not the parameter is required.+newParameterConstraints ::+  ParameterConstraints+newParameterConstraints =+  ParameterConstraints' {required = Prelude.Nothing}++-- | Whether or not the parameter is required.+parameterConstraints_required :: Lens.Lens' ParameterConstraints (Prelude.Maybe Prelude.Bool)+parameterConstraints_required = Lens.lens (\ParameterConstraints' {required} -> required) (\s@ParameterConstraints' {} a -> s {required = a} :: ParameterConstraints)++instance Data.FromJSON ParameterConstraints where+  parseJSON =+    Data.withObject+      "ParameterConstraints"+      ( \x ->+          ParameterConstraints'+            Prelude.<$> (x Data..:? "required")+      )++instance Prelude.Hashable ParameterConstraints where+  hashWithSalt _salt ParameterConstraints' {..} =+    _salt `Prelude.hashWithSalt` required++instance Prelude.NFData ParameterConstraints where+  rnf ParameterConstraints' {..} = Prelude.rnf required++instance Data.ToJSON ParameterConstraints where+  toJSON ParameterConstraints' {..} =+    Data.object+      ( Prelude.catMaybes+          [("required" Data..=) Prelude.<$> required]+      )
+ gen/Amazonka/ApiGatewayV2/Types/PassthroughBehavior.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.Types.PassthroughBehavior+-- 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.ApiGatewayV2.Types.PassthroughBehavior+  ( PassthroughBehavior+      ( ..,+        PassthroughBehavior_NEVER,+        PassthroughBehavior_WHEN_NO_MATCH,+        PassthroughBehavior_WHEN_NO_TEMPLATES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents passthrough behavior for an integration response. Supported+-- only for WebSocket APIs.+newtype PassthroughBehavior = PassthroughBehavior'+  { fromPassthroughBehavior ::+      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 PassthroughBehavior_NEVER :: PassthroughBehavior+pattern PassthroughBehavior_NEVER = PassthroughBehavior' "NEVER"++pattern PassthroughBehavior_WHEN_NO_MATCH :: PassthroughBehavior+pattern PassthroughBehavior_WHEN_NO_MATCH = PassthroughBehavior' "WHEN_NO_MATCH"++pattern PassthroughBehavior_WHEN_NO_TEMPLATES :: PassthroughBehavior+pattern PassthroughBehavior_WHEN_NO_TEMPLATES = PassthroughBehavior' "WHEN_NO_TEMPLATES"++{-# COMPLETE+  PassthroughBehavior_NEVER,+  PassthroughBehavior_WHEN_NO_MATCH,+  PassthroughBehavior_WHEN_NO_TEMPLATES,+  PassthroughBehavior'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/ProtocolType.hs view
@@ -0,0 +1,72 @@+{-# 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.ApiGatewayV2.Types.ProtocolType+-- 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.ApiGatewayV2.Types.ProtocolType+  ( ProtocolType+      ( ..,+        ProtocolType_HTTP,+        ProtocolType_WEBSOCKET+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents a protocol type.+newtype ProtocolType = ProtocolType'+  { fromProtocolType ::+      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 ProtocolType_HTTP :: ProtocolType+pattern ProtocolType_HTTP = ProtocolType' "HTTP"++pattern ProtocolType_WEBSOCKET :: ProtocolType+pattern ProtocolType_WEBSOCKET = ProtocolType' "WEBSOCKET"++{-# COMPLETE+  ProtocolType_HTTP,+  ProtocolType_WEBSOCKET,+  ProtocolType'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/Route.hs view
@@ -0,0 +1,280 @@+{-# 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.ApiGatewayV2.Types.Route+-- 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.ApiGatewayV2.Types.Route where++import Amazonka.ApiGatewayV2.Types.AuthorizationType+import Amazonka.ApiGatewayV2.Types.ParameterConstraints+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 route.+--+-- /See:/ 'newRoute' smart constructor.+data Route = Route'+  { -- | Specifies whether a route is managed by API Gateway. If you created an+    -- API using quick create, the $default route is managed by API Gateway.+    -- You can\'t modify the $default route key.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether an API key is required for this route. Supported only+    -- for WebSocket APIs.+    apiKeyRequired :: Prelude.Maybe Prelude.Bool,+    -- | A list of authorization scopes configured on a route. The scopes are+    -- used with a JWT authorizer to authorize the method invocation. The+    -- authorization works by matching the route scopes against the scopes+    -- parsed from the access token in the incoming request. The method+    -- invocation is authorized if any route scope matches a claimed scope in+    -- the access token. Otherwise, the invocation is not authorized. When the+    -- route scope is configured, the client must provide an access token+    -- instead of an identity token for authorization purposes.+    authorizationScopes :: Prelude.Maybe [Prelude.Text],+    -- | The authorization type for the route. For WebSocket APIs, valid values+    -- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+    -- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+    -- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+    -- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+    authorizationType :: Prelude.Maybe AuthorizationType,+    -- | The identifier of the Authorizer resource to be associated with this+    -- route. The authorizer identifier is generated by API Gateway when you+    -- created the authorizer.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | The model selection expression for the route. Supported only for+    -- WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The operation name for the route.+    operationName :: Prelude.Maybe Prelude.Text,+    -- | The request models for the route. Supported only for WebSocket APIs.+    requestModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The request parameters for the route. Supported only for WebSocket APIs.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | The route ID.+    routeId :: Prelude.Maybe Prelude.Text,+    -- | The route response selection expression for the route. Supported only+    -- for WebSocket APIs.+    routeResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The target for the route.+    target :: Prelude.Maybe Prelude.Text,+    -- | The route key for the route.+    routeKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Route' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayManaged', 'route_apiGatewayManaged' - Specifies whether a route is managed by API Gateway. If you created an+-- API using quick create, the $default route is managed by API Gateway.+-- You can\'t modify the $default route key.+--+-- 'apiKeyRequired', 'route_apiKeyRequired' - Specifies whether an API key is required for this route. Supported only+-- for WebSocket APIs.+--+-- 'authorizationScopes', 'route_authorizationScopes' - A list of authorization scopes configured on a route. The scopes are+-- used with a JWT authorizer to authorize the method invocation. The+-- authorization works by matching the route scopes against the scopes+-- parsed from the access token in the incoming request. The method+-- invocation is authorized if any route scope matches a claimed scope in+-- the access token. Otherwise, the invocation is not authorized. When the+-- route scope is configured, the client must provide an access token+-- instead of an identity token for authorization purposes.+--+-- 'authorizationType', 'route_authorizationType' - The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+--+-- 'authorizerId', 'route_authorizerId' - The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+--+-- 'modelSelectionExpression', 'route_modelSelectionExpression' - The model selection expression for the route. Supported only for+-- WebSocket APIs.+--+-- 'operationName', 'route_operationName' - The operation name for the route.+--+-- 'requestModels', 'route_requestModels' - The request models for the route. Supported only for WebSocket APIs.+--+-- 'requestParameters', 'route_requestParameters' - The request parameters for the route. Supported only for WebSocket APIs.+--+-- 'routeId', 'route_routeId' - The route ID.+--+-- 'routeResponseSelectionExpression', 'route_routeResponseSelectionExpression' - The route response selection expression for the route. Supported only+-- for WebSocket APIs.+--+-- 'target', 'route_target' - The target for the route.+--+-- 'routeKey', 'route_routeKey' - The route key for the route.+newRoute ::+  -- | 'routeKey'+  Prelude.Text ->+  Route+newRoute pRouteKey_ =+  Route'+    { apiGatewayManaged = Prelude.Nothing,+      apiKeyRequired = Prelude.Nothing,+      authorizationScopes = Prelude.Nothing,+      authorizationType = Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      modelSelectionExpression = Prelude.Nothing,+      operationName = Prelude.Nothing,+      requestModels = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      routeId = Prelude.Nothing,+      routeResponseSelectionExpression = Prelude.Nothing,+      target = Prelude.Nothing,+      routeKey = pRouteKey_+    }++-- | Specifies whether a route is managed by API Gateway. If you created an+-- API using quick create, the $default route is managed by API Gateway.+-- You can\'t modify the $default route key.+route_apiGatewayManaged :: Lens.Lens' Route (Prelude.Maybe Prelude.Bool)+route_apiGatewayManaged = Lens.lens (\Route' {apiGatewayManaged} -> apiGatewayManaged) (\s@Route' {} a -> s {apiGatewayManaged = a} :: Route)++-- | Specifies whether an API key is required for this route. Supported only+-- for WebSocket APIs.+route_apiKeyRequired :: Lens.Lens' Route (Prelude.Maybe Prelude.Bool)+route_apiKeyRequired = Lens.lens (\Route' {apiKeyRequired} -> apiKeyRequired) (\s@Route' {} a -> s {apiKeyRequired = a} :: Route)++-- | A list of authorization scopes configured on a route. The scopes are+-- used with a JWT authorizer to authorize the method invocation. The+-- authorization works by matching the route scopes against the scopes+-- parsed from the access token in the incoming request. The method+-- invocation is authorized if any route scope matches a claimed scope in+-- the access token. Otherwise, the invocation is not authorized. When the+-- route scope is configured, the client must provide an access token+-- instead of an identity token for authorization purposes.+route_authorizationScopes :: Lens.Lens' Route (Prelude.Maybe [Prelude.Text])+route_authorizationScopes = Lens.lens (\Route' {authorizationScopes} -> authorizationScopes) (\s@Route' {} a -> s {authorizationScopes = a} :: Route) Prelude.. Lens.mapping Lens.coerced++-- | The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+route_authorizationType :: Lens.Lens' Route (Prelude.Maybe AuthorizationType)+route_authorizationType = Lens.lens (\Route' {authorizationType} -> authorizationType) (\s@Route' {} a -> s {authorizationType = a} :: Route)++-- | The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+route_authorizerId :: Lens.Lens' Route (Prelude.Maybe Prelude.Text)+route_authorizerId = Lens.lens (\Route' {authorizerId} -> authorizerId) (\s@Route' {} a -> s {authorizerId = a} :: Route)++-- | The model selection expression for the route. Supported only for+-- WebSocket APIs.+route_modelSelectionExpression :: Lens.Lens' Route (Prelude.Maybe Prelude.Text)+route_modelSelectionExpression = Lens.lens (\Route' {modelSelectionExpression} -> modelSelectionExpression) (\s@Route' {} a -> s {modelSelectionExpression = a} :: Route)++-- | The operation name for the route.+route_operationName :: Lens.Lens' Route (Prelude.Maybe Prelude.Text)+route_operationName = Lens.lens (\Route' {operationName} -> operationName) (\s@Route' {} a -> s {operationName = a} :: Route)++-- | The request models for the route. Supported only for WebSocket APIs.+route_requestModels :: Lens.Lens' Route (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+route_requestModels = Lens.lens (\Route' {requestModels} -> requestModels) (\s@Route' {} a -> s {requestModels = a} :: Route) Prelude.. Lens.mapping Lens.coerced++-- | The request parameters for the route. Supported only for WebSocket APIs.+route_requestParameters :: Lens.Lens' Route (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+route_requestParameters = Lens.lens (\Route' {requestParameters} -> requestParameters) (\s@Route' {} a -> s {requestParameters = a} :: Route) Prelude.. Lens.mapping Lens.coerced++-- | The route ID.+route_routeId :: Lens.Lens' Route (Prelude.Maybe Prelude.Text)+route_routeId = Lens.lens (\Route' {routeId} -> routeId) (\s@Route' {} a -> s {routeId = a} :: Route)++-- | The route response selection expression for the route. Supported only+-- for WebSocket APIs.+route_routeResponseSelectionExpression :: Lens.Lens' Route (Prelude.Maybe Prelude.Text)+route_routeResponseSelectionExpression = Lens.lens (\Route' {routeResponseSelectionExpression} -> routeResponseSelectionExpression) (\s@Route' {} a -> s {routeResponseSelectionExpression = a} :: Route)++-- | The target for the route.+route_target :: Lens.Lens' Route (Prelude.Maybe Prelude.Text)+route_target = Lens.lens (\Route' {target} -> target) (\s@Route' {} a -> s {target = a} :: Route)++-- | The route key for the route.+route_routeKey :: Lens.Lens' Route Prelude.Text+route_routeKey = Lens.lens (\Route' {routeKey} -> routeKey) (\s@Route' {} a -> s {routeKey = a} :: Route)++instance Data.FromJSON Route where+  parseJSON =+    Data.withObject+      "Route"+      ( \x ->+          Route'+            Prelude.<$> (x Data..:? "apiGatewayManaged")+            Prelude.<*> (x Data..:? "apiKeyRequired")+            Prelude.<*> ( x+                            Data..:? "authorizationScopes"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "authorizationType")+            Prelude.<*> (x Data..:? "authorizerId")+            Prelude.<*> (x Data..:? "modelSelectionExpression")+            Prelude.<*> (x Data..:? "operationName")+            Prelude.<*> (x Data..:? "requestModels" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "requestParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "routeId")+            Prelude.<*> (x Data..:? "routeResponseSelectionExpression")+            Prelude.<*> (x Data..:? "target")+            Prelude.<*> (x Data..: "routeKey")+      )++instance Prelude.Hashable Route where+  hashWithSalt _salt Route' {..} =+    _salt+      `Prelude.hashWithSalt` apiGatewayManaged+      `Prelude.hashWithSalt` apiKeyRequired+      `Prelude.hashWithSalt` authorizationScopes+      `Prelude.hashWithSalt` authorizationType+      `Prelude.hashWithSalt` authorizerId+      `Prelude.hashWithSalt` modelSelectionExpression+      `Prelude.hashWithSalt` operationName+      `Prelude.hashWithSalt` requestModels+      `Prelude.hashWithSalt` requestParameters+      `Prelude.hashWithSalt` routeId+      `Prelude.hashWithSalt` routeResponseSelectionExpression+      `Prelude.hashWithSalt` target+      `Prelude.hashWithSalt` routeKey++instance Prelude.NFData Route where+  rnf Route' {..} =+    Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiKeyRequired+      `Prelude.seq` Prelude.rnf authorizationScopes+      `Prelude.seq` Prelude.rnf authorizationType+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf operationName+      `Prelude.seq` Prelude.rnf requestModels+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf routeId+      `Prelude.seq` Prelude.rnf routeResponseSelectionExpression+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf routeKey
+ gen/Amazonka/ApiGatewayV2/Types/RouteResponse.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.ApiGatewayV2.Types.RouteResponse+-- 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.ApiGatewayV2.Types.RouteResponse where++import Amazonka.ApiGatewayV2.Types.ParameterConstraints+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 route response.+--+-- /See:/ 'newRouteResponse' smart constructor.+data RouteResponse = RouteResponse'+  { -- | Represents the model selection expression of a route response. Supported+    -- only for WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the response models of a route response.+    responseModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents the response parameters of a route response.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | Represents the identifier of a route response.+    routeResponseId :: Prelude.Maybe Prelude.Text,+    -- | Represents the route response key of a route response.+    routeResponseKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelSelectionExpression', 'routeResponse_modelSelectionExpression' - Represents the model selection expression of a route response. Supported+-- only for WebSocket APIs.+--+-- 'responseModels', 'routeResponse_responseModels' - Represents the response models of a route response.+--+-- 'responseParameters', 'routeResponse_responseParameters' - Represents the response parameters of a route response.+--+-- 'routeResponseId', 'routeResponse_routeResponseId' - Represents the identifier of a route response.+--+-- 'routeResponseKey', 'routeResponse_routeResponseKey' - Represents the route response key of a route response.+newRouteResponse ::+  -- | 'routeResponseKey'+  Prelude.Text ->+  RouteResponse+newRouteResponse pRouteResponseKey_ =+  RouteResponse'+    { modelSelectionExpression =+        Prelude.Nothing,+      responseModels = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      routeResponseId = Prelude.Nothing,+      routeResponseKey = pRouteResponseKey_+    }++-- | Represents the model selection expression of a route response. Supported+-- only for WebSocket APIs.+routeResponse_modelSelectionExpression :: Lens.Lens' RouteResponse (Prelude.Maybe Prelude.Text)+routeResponse_modelSelectionExpression = Lens.lens (\RouteResponse' {modelSelectionExpression} -> modelSelectionExpression) (\s@RouteResponse' {} a -> s {modelSelectionExpression = a} :: RouteResponse)++-- | Represents the response models of a route response.+routeResponse_responseModels :: Lens.Lens' RouteResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+routeResponse_responseModels = Lens.lens (\RouteResponse' {responseModels} -> responseModels) (\s@RouteResponse' {} a -> s {responseModels = a} :: RouteResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents the response parameters of a route response.+routeResponse_responseParameters :: Lens.Lens' RouteResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+routeResponse_responseParameters = Lens.lens (\RouteResponse' {responseParameters} -> responseParameters) (\s@RouteResponse' {} a -> s {responseParameters = a} :: RouteResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents the identifier of a route response.+routeResponse_routeResponseId :: Lens.Lens' RouteResponse (Prelude.Maybe Prelude.Text)+routeResponse_routeResponseId = Lens.lens (\RouteResponse' {routeResponseId} -> routeResponseId) (\s@RouteResponse' {} a -> s {routeResponseId = a} :: RouteResponse)++-- | Represents the route response key of a route response.+routeResponse_routeResponseKey :: Lens.Lens' RouteResponse Prelude.Text+routeResponse_routeResponseKey = Lens.lens (\RouteResponse' {routeResponseKey} -> routeResponseKey) (\s@RouteResponse' {} a -> s {routeResponseKey = a} :: RouteResponse)++instance Data.FromJSON RouteResponse where+  parseJSON =+    Data.withObject+      "RouteResponse"+      ( \x ->+          RouteResponse'+            Prelude.<$> (x Data..:? "modelSelectionExpression")+            Prelude.<*> (x Data..:? "responseModels" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "responseParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "routeResponseId")+            Prelude.<*> (x Data..: "routeResponseKey")+      )++instance Prelude.Hashable RouteResponse where+  hashWithSalt _salt RouteResponse' {..} =+    _salt+      `Prelude.hashWithSalt` modelSelectionExpression+      `Prelude.hashWithSalt` responseModels+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` routeResponseId+      `Prelude.hashWithSalt` routeResponseKey++instance Prelude.NFData RouteResponse where+  rnf RouteResponse' {..} =+    Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf responseModels+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf routeResponseId+      `Prelude.seq` Prelude.rnf routeResponseKey
+ gen/Amazonka/ApiGatewayV2/Types/RouteSettings.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.ApiGatewayV2.Types.RouteSettings+-- 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.ApiGatewayV2.Types.RouteSettings where++import Amazonka.ApiGatewayV2.Types.LoggingLevel+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 collection of route settings.+--+-- /See:/ 'newRouteSettings' smart constructor.+data RouteSettings = RouteSettings'+  { -- | Specifies whether (true) or not (false) data trace logging is enabled+    -- for this route. This property affects the log entries pushed to Amazon+    -- CloudWatch Logs. Supported only for WebSocket APIs.+    dataTraceEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether detailed metrics are enabled.+    detailedMetricsEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the logging level for this route: INFO, ERROR, or OFF. This+    -- property affects the log entries pushed to Amazon CloudWatch Logs.+    -- Supported only for WebSocket APIs.+    loggingLevel :: Prelude.Maybe LoggingLevel,+    -- | Specifies the throttling burst limit.+    throttlingBurstLimit :: Prelude.Maybe Prelude.Int,+    -- | Specifies the throttling rate limit.+    throttlingRateLimit :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RouteSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataTraceEnabled', 'routeSettings_dataTraceEnabled' - Specifies whether (true) or not (false) data trace logging is enabled+-- for this route. This property affects the log entries pushed to Amazon+-- CloudWatch Logs. Supported only for WebSocket APIs.+--+-- 'detailedMetricsEnabled', 'routeSettings_detailedMetricsEnabled' - Specifies whether detailed metrics are enabled.+--+-- 'loggingLevel', 'routeSettings_loggingLevel' - Specifies the logging level for this route: INFO, ERROR, or OFF. This+-- property affects the log entries pushed to Amazon CloudWatch Logs.+-- Supported only for WebSocket APIs.+--+-- 'throttlingBurstLimit', 'routeSettings_throttlingBurstLimit' - Specifies the throttling burst limit.+--+-- 'throttlingRateLimit', 'routeSettings_throttlingRateLimit' - Specifies the throttling rate limit.+newRouteSettings ::+  RouteSettings+newRouteSettings =+  RouteSettings'+    { dataTraceEnabled = Prelude.Nothing,+      detailedMetricsEnabled = Prelude.Nothing,+      loggingLevel = Prelude.Nothing,+      throttlingBurstLimit = Prelude.Nothing,+      throttlingRateLimit = Prelude.Nothing+    }++-- | Specifies whether (true) or not (false) data trace logging is enabled+-- for this route. This property affects the log entries pushed to Amazon+-- CloudWatch Logs. Supported only for WebSocket APIs.+routeSettings_dataTraceEnabled :: Lens.Lens' RouteSettings (Prelude.Maybe Prelude.Bool)+routeSettings_dataTraceEnabled = Lens.lens (\RouteSettings' {dataTraceEnabled} -> dataTraceEnabled) (\s@RouteSettings' {} a -> s {dataTraceEnabled = a} :: RouteSettings)++-- | Specifies whether detailed metrics are enabled.+routeSettings_detailedMetricsEnabled :: Lens.Lens' RouteSettings (Prelude.Maybe Prelude.Bool)+routeSettings_detailedMetricsEnabled = Lens.lens (\RouteSettings' {detailedMetricsEnabled} -> detailedMetricsEnabled) (\s@RouteSettings' {} a -> s {detailedMetricsEnabled = a} :: RouteSettings)++-- | Specifies the logging level for this route: INFO, ERROR, or OFF. This+-- property affects the log entries pushed to Amazon CloudWatch Logs.+-- Supported only for WebSocket APIs.+routeSettings_loggingLevel :: Lens.Lens' RouteSettings (Prelude.Maybe LoggingLevel)+routeSettings_loggingLevel = Lens.lens (\RouteSettings' {loggingLevel} -> loggingLevel) (\s@RouteSettings' {} a -> s {loggingLevel = a} :: RouteSettings)++-- | Specifies the throttling burst limit.+routeSettings_throttlingBurstLimit :: Lens.Lens' RouteSettings (Prelude.Maybe Prelude.Int)+routeSettings_throttlingBurstLimit = Lens.lens (\RouteSettings' {throttlingBurstLimit} -> throttlingBurstLimit) (\s@RouteSettings' {} a -> s {throttlingBurstLimit = a} :: RouteSettings)++-- | Specifies the throttling rate limit.+routeSettings_throttlingRateLimit :: Lens.Lens' RouteSettings (Prelude.Maybe Prelude.Double)+routeSettings_throttlingRateLimit = Lens.lens (\RouteSettings' {throttlingRateLimit} -> throttlingRateLimit) (\s@RouteSettings' {} a -> s {throttlingRateLimit = a} :: RouteSettings)++instance Data.FromJSON RouteSettings where+  parseJSON =+    Data.withObject+      "RouteSettings"+      ( \x ->+          RouteSettings'+            Prelude.<$> (x Data..:? "dataTraceEnabled")+            Prelude.<*> (x Data..:? "detailedMetricsEnabled")+            Prelude.<*> (x Data..:? "loggingLevel")+            Prelude.<*> (x Data..:? "throttlingBurstLimit")+            Prelude.<*> (x Data..:? "throttlingRateLimit")+      )++instance Prelude.Hashable RouteSettings where+  hashWithSalt _salt RouteSettings' {..} =+    _salt+      `Prelude.hashWithSalt` dataTraceEnabled+      `Prelude.hashWithSalt` detailedMetricsEnabled+      `Prelude.hashWithSalt` loggingLevel+      `Prelude.hashWithSalt` throttlingBurstLimit+      `Prelude.hashWithSalt` throttlingRateLimit++instance Prelude.NFData RouteSettings where+  rnf RouteSettings' {..} =+    Prelude.rnf dataTraceEnabled+      `Prelude.seq` Prelude.rnf detailedMetricsEnabled+      `Prelude.seq` Prelude.rnf loggingLevel+      `Prelude.seq` Prelude.rnf throttlingBurstLimit+      `Prelude.seq` Prelude.rnf throttlingRateLimit++instance Data.ToJSON RouteSettings where+  toJSON RouteSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dataTraceEnabled" Data..=)+              Prelude.<$> dataTraceEnabled,+            ("detailedMetricsEnabled" Data..=)+              Prelude.<$> detailedMetricsEnabled,+            ("loggingLevel" Data..=) Prelude.<$> loggingLevel,+            ("throttlingBurstLimit" Data..=)+              Prelude.<$> throttlingBurstLimit,+            ("throttlingRateLimit" Data..=)+              Prelude.<$> throttlingRateLimit+          ]+      )
+ gen/Amazonka/ApiGatewayV2/Types/SecurityPolicy.hs view
@@ -0,0 +1,73 @@+{-# 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.ApiGatewayV2.Types.SecurityPolicy+-- 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.ApiGatewayV2.Types.SecurityPolicy+  ( SecurityPolicy+      ( ..,+        SecurityPolicy_TLS_1_0,+        SecurityPolicy_TLS_1_2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Transport Layer Security (TLS) version of the security policy for+-- this domain name. The valid values are TLS_1_0 and TLS_1_2.+newtype SecurityPolicy = SecurityPolicy'+  { fromSecurityPolicy ::+      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 SecurityPolicy_TLS_1_0 :: SecurityPolicy+pattern SecurityPolicy_TLS_1_0 = SecurityPolicy' "TLS_1_0"++pattern SecurityPolicy_TLS_1_2 :: SecurityPolicy+pattern SecurityPolicy_TLS_1_2 = SecurityPolicy' "TLS_1_2"++{-# COMPLETE+  SecurityPolicy_TLS_1_0,+  SecurityPolicy_TLS_1_2,+  SecurityPolicy'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/Stage.hs view
@@ -0,0 +1,259 @@+{-# 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.ApiGatewayV2.Types.Stage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ApiGatewayV2.Types.Stage where++import Amazonka.ApiGatewayV2.Types.AccessLogSettings+import Amazonka.ApiGatewayV2.Types.RouteSettings+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 an API stage.+--+-- /See:/ 'newStage' smart constructor.+data Stage = Stage'+  { -- | Settings for logging access in this stage.+    accessLogSettings :: Prelude.Maybe AccessLogSettings,+    -- | Specifies whether a stage is managed by API Gateway. If you created an+    -- API using quick create, the $default stage is managed by API Gateway.+    -- You can\'t modify the $default stage.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether updates to an API automatically trigger a new+    -- deployment. The default value is false.+    autoDeploy :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of a client certificate for a Stage. Supported only for+    -- WebSocket APIs.+    clientCertificateId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the stage was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | Default route settings for the stage.+    defaultRouteSettings :: Prelude.Maybe RouteSettings,+    -- | The identifier of the Deployment that the Stage is associated with.+    -- Can\'t be updated if autoDeploy is enabled.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The description of the stage.+    description :: Prelude.Maybe Prelude.Text,+    -- | Describes the status of the last deployment of a stage. Supported only+    -- for stages with autoDeploy enabled.+    lastDeploymentStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the stage was last updated.+    lastUpdatedDate :: Prelude.Maybe Data.ISO8601,+    -- | Route settings for the stage, by routeKey.+    routeSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings),+    -- | A map that defines the stage variables for a stage resource. Variable+    -- names can have alphanumeric and underscore characters, and the values+    -- must match [A-Za-z0-9-._~:\/?#&=,]+.+    stageVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of tags. Each tag element is associated with a given+    -- resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the stage.+    stageName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Stage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessLogSettings', 'stage_accessLogSettings' - Settings for logging access in this stage.+--+-- 'apiGatewayManaged', 'stage_apiGatewayManaged' - Specifies whether a stage is managed by API Gateway. If you created an+-- API using quick create, the $default stage is managed by API Gateway.+-- You can\'t modify the $default stage.+--+-- 'autoDeploy', 'stage_autoDeploy' - Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+--+-- 'clientCertificateId', 'stage_clientCertificateId' - The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+--+-- 'createdDate', 'stage_createdDate' - The timestamp when the stage was created.+--+-- 'defaultRouteSettings', 'stage_defaultRouteSettings' - Default route settings for the stage.+--+-- 'deploymentId', 'stage_deploymentId' - The identifier of the Deployment that the Stage is associated with.+-- Can\'t be updated if autoDeploy is enabled.+--+-- 'description', 'stage_description' - The description of the stage.+--+-- 'lastDeploymentStatusMessage', 'stage_lastDeploymentStatusMessage' - Describes the status of the last deployment of a stage. Supported only+-- for stages with autoDeploy enabled.+--+-- 'lastUpdatedDate', 'stage_lastUpdatedDate' - The timestamp when the stage was last updated.+--+-- 'routeSettings', 'stage_routeSettings' - Route settings for the stage, by routeKey.+--+-- 'stageVariables', 'stage_stageVariables' - A map that defines the stage variables for a stage resource. Variable+-- names can have alphanumeric and underscore characters, and the values+-- must match [A-Za-z0-9-._~:\/?#&=,]+.+--+-- 'tags', 'stage_tags' - The collection of tags. Each tag element is associated with a given+-- resource.+--+-- 'stageName', 'stage_stageName' - The name of the stage.+newStage ::+  -- | 'stageName'+  Prelude.Text ->+  Stage+newStage pStageName_ =+  Stage'+    { accessLogSettings = Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      autoDeploy = Prelude.Nothing,+      clientCertificateId = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      defaultRouteSettings = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      description = Prelude.Nothing,+      lastDeploymentStatusMessage = Prelude.Nothing,+      lastUpdatedDate = Prelude.Nothing,+      routeSettings = Prelude.Nothing,+      stageVariables = Prelude.Nothing,+      tags = Prelude.Nothing,+      stageName = pStageName_+    }++-- | Settings for logging access in this stage.+stage_accessLogSettings :: Lens.Lens' Stage (Prelude.Maybe AccessLogSettings)+stage_accessLogSettings = Lens.lens (\Stage' {accessLogSettings} -> accessLogSettings) (\s@Stage' {} a -> s {accessLogSettings = a} :: Stage)++-- | Specifies whether a stage is managed by API Gateway. If you created an+-- API using quick create, the $default stage is managed by API Gateway.+-- You can\'t modify the $default stage.+stage_apiGatewayManaged :: Lens.Lens' Stage (Prelude.Maybe Prelude.Bool)+stage_apiGatewayManaged = Lens.lens (\Stage' {apiGatewayManaged} -> apiGatewayManaged) (\s@Stage' {} a -> s {apiGatewayManaged = a} :: Stage)++-- | Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+stage_autoDeploy :: Lens.Lens' Stage (Prelude.Maybe Prelude.Bool)+stage_autoDeploy = Lens.lens (\Stage' {autoDeploy} -> autoDeploy) (\s@Stage' {} a -> s {autoDeploy = a} :: Stage)++-- | The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+stage_clientCertificateId :: Lens.Lens' Stage (Prelude.Maybe Prelude.Text)+stage_clientCertificateId = Lens.lens (\Stage' {clientCertificateId} -> clientCertificateId) (\s@Stage' {} a -> s {clientCertificateId = a} :: Stage)++-- | The timestamp when the stage was created.+stage_createdDate :: Lens.Lens' Stage (Prelude.Maybe Prelude.UTCTime)+stage_createdDate = Lens.lens (\Stage' {createdDate} -> createdDate) (\s@Stage' {} a -> s {createdDate = a} :: Stage) Prelude.. Lens.mapping Data._Time++-- | Default route settings for the stage.+stage_defaultRouteSettings :: Lens.Lens' Stage (Prelude.Maybe RouteSettings)+stage_defaultRouteSettings = Lens.lens (\Stage' {defaultRouteSettings} -> defaultRouteSettings) (\s@Stage' {} a -> s {defaultRouteSettings = a} :: Stage)++-- | The identifier of the Deployment that the Stage is associated with.+-- Can\'t be updated if autoDeploy is enabled.+stage_deploymentId :: Lens.Lens' Stage (Prelude.Maybe Prelude.Text)+stage_deploymentId = Lens.lens (\Stage' {deploymentId} -> deploymentId) (\s@Stage' {} a -> s {deploymentId = a} :: Stage)++-- | The description of the stage.+stage_description :: Lens.Lens' Stage (Prelude.Maybe Prelude.Text)+stage_description = Lens.lens (\Stage' {description} -> description) (\s@Stage' {} a -> s {description = a} :: Stage)++-- | Describes the status of the last deployment of a stage. Supported only+-- for stages with autoDeploy enabled.+stage_lastDeploymentStatusMessage :: Lens.Lens' Stage (Prelude.Maybe Prelude.Text)+stage_lastDeploymentStatusMessage = Lens.lens (\Stage' {lastDeploymentStatusMessage} -> lastDeploymentStatusMessage) (\s@Stage' {} a -> s {lastDeploymentStatusMessage = a} :: Stage)++-- | The timestamp when the stage was last updated.+stage_lastUpdatedDate :: Lens.Lens' Stage (Prelude.Maybe Prelude.UTCTime)+stage_lastUpdatedDate = Lens.lens (\Stage' {lastUpdatedDate} -> lastUpdatedDate) (\s@Stage' {} a -> s {lastUpdatedDate = a} :: Stage) Prelude.. Lens.mapping Data._Time++-- | Route settings for the stage, by routeKey.+stage_routeSettings :: Lens.Lens' Stage (Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings))+stage_routeSettings = Lens.lens (\Stage' {routeSettings} -> routeSettings) (\s@Stage' {} a -> s {routeSettings = a} :: Stage) Prelude.. Lens.mapping Lens.coerced++-- | A map that defines the stage variables for a stage resource. Variable+-- names can have alphanumeric and underscore characters, and the values+-- must match [A-Za-z0-9-._~:\/?#&=,]+.+stage_stageVariables :: Lens.Lens' Stage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+stage_stageVariables = Lens.lens (\Stage' {stageVariables} -> stageVariables) (\s@Stage' {} a -> s {stageVariables = a} :: Stage) Prelude.. Lens.mapping Lens.coerced++-- | The collection of tags. Each tag element is associated with a given+-- resource.+stage_tags :: Lens.Lens' Stage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+stage_tags = Lens.lens (\Stage' {tags} -> tags) (\s@Stage' {} a -> s {tags = a} :: Stage) Prelude.. Lens.mapping Lens.coerced++-- | The name of the stage.+stage_stageName :: Lens.Lens' Stage Prelude.Text+stage_stageName = Lens.lens (\Stage' {stageName} -> stageName) (\s@Stage' {} a -> s {stageName = a} :: Stage)++instance Data.FromJSON Stage where+  parseJSON =+    Data.withObject+      "Stage"+      ( \x ->+          Stage'+            Prelude.<$> (x Data..:? "accessLogSettings")+            Prelude.<*> (x Data..:? "apiGatewayManaged")+            Prelude.<*> (x Data..:? "autoDeploy")+            Prelude.<*> (x Data..:? "clientCertificateId")+            Prelude.<*> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "defaultRouteSettings")+            Prelude.<*> (x Data..:? "deploymentId")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastDeploymentStatusMessage")+            Prelude.<*> (x Data..:? "lastUpdatedDate")+            Prelude.<*> (x Data..:? "routeSettings" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "stageVariables" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "stageName")+      )++instance Prelude.Hashable Stage where+  hashWithSalt _salt Stage' {..} =+    _salt+      `Prelude.hashWithSalt` accessLogSettings+      `Prelude.hashWithSalt` apiGatewayManaged+      `Prelude.hashWithSalt` autoDeploy+      `Prelude.hashWithSalt` clientCertificateId+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` defaultRouteSettings+      `Prelude.hashWithSalt` deploymentId+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastDeploymentStatusMessage+      `Prelude.hashWithSalt` lastUpdatedDate+      `Prelude.hashWithSalt` routeSettings+      `Prelude.hashWithSalt` stageVariables+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` stageName++instance Prelude.NFData Stage where+  rnf Stage' {..} =+    Prelude.rnf accessLogSettings+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf autoDeploy+      `Prelude.seq` Prelude.rnf clientCertificateId+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf defaultRouteSettings+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastDeploymentStatusMessage+      `Prelude.seq` Prelude.rnf lastUpdatedDate+      `Prelude.seq` Prelude.rnf routeSettings+      `Prelude.seq` Prelude.rnf stageVariables+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf stageName
+ gen/Amazonka/ApiGatewayV2/Types/TlsConfig.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.Types.TlsConfig+-- 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.ApiGatewayV2.Types.TlsConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+--+-- /See:/ 'newTlsConfig' smart constructor.+data TlsConfig = TlsConfig'+  { -- | If you specify a server name, API Gateway uses it to verify the hostname+    -- on the integration\'s certificate. The server name is also included in+    -- the TLS handshake to support Server Name Indication (SNI) or virtual+    -- hosting.+    serverNameToVerify :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TlsConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'serverNameToVerify', 'tlsConfig_serverNameToVerify' - If you specify a server name, API Gateway uses it to verify the hostname+-- on the integration\'s certificate. The server name is also included in+-- the TLS handshake to support Server Name Indication (SNI) or virtual+-- hosting.+newTlsConfig ::+  TlsConfig+newTlsConfig =+  TlsConfig' {serverNameToVerify = Prelude.Nothing}++-- | If you specify a server name, API Gateway uses it to verify the hostname+-- on the integration\'s certificate. The server name is also included in+-- the TLS handshake to support Server Name Indication (SNI) or virtual+-- hosting.+tlsConfig_serverNameToVerify :: Lens.Lens' TlsConfig (Prelude.Maybe Prelude.Text)+tlsConfig_serverNameToVerify = Lens.lens (\TlsConfig' {serverNameToVerify} -> serverNameToVerify) (\s@TlsConfig' {} a -> s {serverNameToVerify = a} :: TlsConfig)++instance Data.FromJSON TlsConfig where+  parseJSON =+    Data.withObject+      "TlsConfig"+      ( \x ->+          TlsConfig'+            Prelude.<$> (x Data..:? "serverNameToVerify")+      )++instance Prelude.Hashable TlsConfig where+  hashWithSalt _salt TlsConfig' {..} =+    _salt `Prelude.hashWithSalt` serverNameToVerify++instance Prelude.NFData TlsConfig where+  rnf TlsConfig' {..} = Prelude.rnf serverNameToVerify
+ gen/Amazonka/ApiGatewayV2/Types/TlsConfigInput.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.Types.TlsConfigInput+-- 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.ApiGatewayV2.Types.TlsConfigInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+--+-- /See:/ 'newTlsConfigInput' smart constructor.+data TlsConfigInput = TlsConfigInput'+  { -- | If you specify a server name, API Gateway uses it to verify the hostname+    -- on the integration\'s certificate. The server name is also included in+    -- the TLS handshake to support Server Name Indication (SNI) or virtual+    -- hosting.+    serverNameToVerify :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TlsConfigInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'serverNameToVerify', 'tlsConfigInput_serverNameToVerify' - If you specify a server name, API Gateway uses it to verify the hostname+-- on the integration\'s certificate. The server name is also included in+-- the TLS handshake to support Server Name Indication (SNI) or virtual+-- hosting.+newTlsConfigInput ::+  TlsConfigInput+newTlsConfigInput =+  TlsConfigInput'+    { serverNameToVerify =+        Prelude.Nothing+    }++-- | If you specify a server name, API Gateway uses it to verify the hostname+-- on the integration\'s certificate. The server name is also included in+-- the TLS handshake to support Server Name Indication (SNI) or virtual+-- hosting.+tlsConfigInput_serverNameToVerify :: Lens.Lens' TlsConfigInput (Prelude.Maybe Prelude.Text)+tlsConfigInput_serverNameToVerify = Lens.lens (\TlsConfigInput' {serverNameToVerify} -> serverNameToVerify) (\s@TlsConfigInput' {} a -> s {serverNameToVerify = a} :: TlsConfigInput)++instance Prelude.Hashable TlsConfigInput where+  hashWithSalt _salt TlsConfigInput' {..} =+    _salt `Prelude.hashWithSalt` serverNameToVerify++instance Prelude.NFData TlsConfigInput where+  rnf TlsConfigInput' {..} =+    Prelude.rnf serverNameToVerify++instance Data.ToJSON TlsConfigInput where+  toJSON TlsConfigInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("serverNameToVerify" Data..=)+              Prelude.<$> serverNameToVerify+          ]+      )
+ gen/Amazonka/ApiGatewayV2/Types/VpcLink.hs view
@@ -0,0 +1,177 @@+{-# 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.ApiGatewayV2.Types.VpcLink+-- 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.ApiGatewayV2.Types.VpcLink where++import Amazonka.ApiGatewayV2.Types.VpcLinkStatus+import Amazonka.ApiGatewayV2.Types.VpcLinkVersion+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 VPC link.+--+-- /See:/ 'newVpcLink' smart constructor.+data VpcLink = VpcLink'+  { -- | The timestamp when the VPC link was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | Tags for the VPC link.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The status of the VPC link.+    vpcLinkStatus :: Prelude.Maybe VpcLinkStatus,+    -- | A message summarizing the cause of the status of the VPC link.+    vpcLinkStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The version of the VPC link.+    vpcLinkVersion :: Prelude.Maybe VpcLinkVersion,+    -- | The ID of the VPC link.+    vpcLinkId :: Prelude.Text,+    -- | A list of security group IDs for the VPC link.+    securityGroupIds :: [Prelude.Text],+    -- | A list of subnet IDs to include in the VPC link.+    subnetIds :: [Prelude.Text],+    -- | The name of the VPC link.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcLink' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdDate', 'vpcLink_createdDate' - The timestamp when the VPC link was created.+--+-- 'tags', 'vpcLink_tags' - Tags for the VPC link.+--+-- 'vpcLinkStatus', 'vpcLink_vpcLinkStatus' - The status of the VPC link.+--+-- 'vpcLinkStatusMessage', 'vpcLink_vpcLinkStatusMessage' - A message summarizing the cause of the status of the VPC link.+--+-- 'vpcLinkVersion', 'vpcLink_vpcLinkVersion' - The version of the VPC link.+--+-- 'vpcLinkId', 'vpcLink_vpcLinkId' - The ID of the VPC link.+--+-- 'securityGroupIds', 'vpcLink_securityGroupIds' - A list of security group IDs for the VPC link.+--+-- 'subnetIds', 'vpcLink_subnetIds' - A list of subnet IDs to include in the VPC link.+--+-- 'name', 'vpcLink_name' - The name of the VPC link.+newVpcLink ::+  -- | 'vpcLinkId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  VpcLink+newVpcLink pVpcLinkId_ pName_ =+  VpcLink'+    { createdDate = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcLinkStatus = Prelude.Nothing,+      vpcLinkStatusMessage = Prelude.Nothing,+      vpcLinkVersion = Prelude.Nothing,+      vpcLinkId = pVpcLinkId_,+      securityGroupIds = Prelude.mempty,+      subnetIds = Prelude.mempty,+      name = pName_+    }++-- | The timestamp when the VPC link was created.+vpcLink_createdDate :: Lens.Lens' VpcLink (Prelude.Maybe Prelude.UTCTime)+vpcLink_createdDate = Lens.lens (\VpcLink' {createdDate} -> createdDate) (\s@VpcLink' {} a -> s {createdDate = a} :: VpcLink) Prelude.. Lens.mapping Data._Time++-- | Tags for the VPC link.+vpcLink_tags :: Lens.Lens' VpcLink (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+vpcLink_tags = Lens.lens (\VpcLink' {tags} -> tags) (\s@VpcLink' {} a -> s {tags = a} :: VpcLink) Prelude.. Lens.mapping Lens.coerced++-- | The status of the VPC link.+vpcLink_vpcLinkStatus :: Lens.Lens' VpcLink (Prelude.Maybe VpcLinkStatus)+vpcLink_vpcLinkStatus = Lens.lens (\VpcLink' {vpcLinkStatus} -> vpcLinkStatus) (\s@VpcLink' {} a -> s {vpcLinkStatus = a} :: VpcLink)++-- | A message summarizing the cause of the status of the VPC link.+vpcLink_vpcLinkStatusMessage :: Lens.Lens' VpcLink (Prelude.Maybe Prelude.Text)+vpcLink_vpcLinkStatusMessage = Lens.lens (\VpcLink' {vpcLinkStatusMessage} -> vpcLinkStatusMessage) (\s@VpcLink' {} a -> s {vpcLinkStatusMessage = a} :: VpcLink)++-- | The version of the VPC link.+vpcLink_vpcLinkVersion :: Lens.Lens' VpcLink (Prelude.Maybe VpcLinkVersion)+vpcLink_vpcLinkVersion = Lens.lens (\VpcLink' {vpcLinkVersion} -> vpcLinkVersion) (\s@VpcLink' {} a -> s {vpcLinkVersion = a} :: VpcLink)++-- | The ID of the VPC link.+vpcLink_vpcLinkId :: Lens.Lens' VpcLink Prelude.Text+vpcLink_vpcLinkId = Lens.lens (\VpcLink' {vpcLinkId} -> vpcLinkId) (\s@VpcLink' {} a -> s {vpcLinkId = a} :: VpcLink)++-- | A list of security group IDs for the VPC link.+vpcLink_securityGroupIds :: Lens.Lens' VpcLink [Prelude.Text]+vpcLink_securityGroupIds = Lens.lens (\VpcLink' {securityGroupIds} -> securityGroupIds) (\s@VpcLink' {} a -> s {securityGroupIds = a} :: VpcLink) Prelude.. Lens.coerced++-- | A list of subnet IDs to include in the VPC link.+vpcLink_subnetIds :: Lens.Lens' VpcLink [Prelude.Text]+vpcLink_subnetIds = Lens.lens (\VpcLink' {subnetIds} -> subnetIds) (\s@VpcLink' {} a -> s {subnetIds = a} :: VpcLink) Prelude.. Lens.coerced++-- | The name of the VPC link.+vpcLink_name :: Lens.Lens' VpcLink Prelude.Text+vpcLink_name = Lens.lens (\VpcLink' {name} -> name) (\s@VpcLink' {} a -> s {name = a} :: VpcLink)++instance Data.FromJSON VpcLink where+  parseJSON =+    Data.withObject+      "VpcLink"+      ( \x ->+          VpcLink'+            Prelude.<$> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "vpcLinkStatus")+            Prelude.<*> (x Data..:? "vpcLinkStatusMessage")+            Prelude.<*> (x Data..:? "vpcLinkVersion")+            Prelude.<*> (x Data..: "vpcLinkId")+            Prelude.<*> ( x+                            Data..:? "securityGroupIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "subnetIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable VpcLink where+  hashWithSalt _salt VpcLink' {..} =+    _salt+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vpcLinkStatus+      `Prelude.hashWithSalt` vpcLinkStatusMessage+      `Prelude.hashWithSalt` vpcLinkVersion+      `Prelude.hashWithSalt` vpcLinkId+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` name++instance Prelude.NFData VpcLink where+  rnf VpcLink' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcLinkStatus+      `Prelude.seq` Prelude.rnf vpcLinkStatusMessage+      `Prelude.seq` Prelude.rnf vpcLinkVersion+      `Prelude.seq` Prelude.rnf vpcLinkId+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/ApiGatewayV2/Types/VpcLinkStatus.hs view
@@ -0,0 +1,87 @@+{-# 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.ApiGatewayV2.Types.VpcLinkStatus+-- 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.ApiGatewayV2.Types.VpcLinkStatus+  ( VpcLinkStatus+      ( ..,+        VpcLinkStatus_AVAILABLE,+        VpcLinkStatus_DELETING,+        VpcLinkStatus_FAILED,+        VpcLinkStatus_INACTIVE,+        VpcLinkStatus_PENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of the VPC link.+newtype VpcLinkStatus = VpcLinkStatus'+  { fromVpcLinkStatus ::+      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 VpcLinkStatus_AVAILABLE :: VpcLinkStatus+pattern VpcLinkStatus_AVAILABLE = VpcLinkStatus' "AVAILABLE"++pattern VpcLinkStatus_DELETING :: VpcLinkStatus+pattern VpcLinkStatus_DELETING = VpcLinkStatus' "DELETING"++pattern VpcLinkStatus_FAILED :: VpcLinkStatus+pattern VpcLinkStatus_FAILED = VpcLinkStatus' "FAILED"++pattern VpcLinkStatus_INACTIVE :: VpcLinkStatus+pattern VpcLinkStatus_INACTIVE = VpcLinkStatus' "INACTIVE"++pattern VpcLinkStatus_PENDING :: VpcLinkStatus+pattern VpcLinkStatus_PENDING = VpcLinkStatus' "PENDING"++{-# COMPLETE+  VpcLinkStatus_AVAILABLE,+  VpcLinkStatus_DELETING,+  VpcLinkStatus_FAILED,+  VpcLinkStatus_INACTIVE,+  VpcLinkStatus_PENDING,+  VpcLinkStatus'+  #-}
+ gen/Amazonka/ApiGatewayV2/Types/VpcLinkVersion.hs view
@@ -0,0 +1,67 @@+{-# 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.ApiGatewayV2.Types.VpcLinkVersion+-- 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.ApiGatewayV2.Types.VpcLinkVersion+  ( VpcLinkVersion+      ( ..,+        VpcLinkVersion_V2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The version of the VPC link.+newtype VpcLinkVersion = VpcLinkVersion'+  { fromVpcLinkVersion ::+      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 VpcLinkVersion_V2 :: VpcLinkVersion+pattern VpcLinkVersion_V2 = VpcLinkVersion' "V2"++{-# COMPLETE+  VpcLinkVersion_V2,+  VpcLinkVersion'+  #-}
+ gen/Amazonka/ApiGatewayV2/UntagResource.hs view
@@ -0,0 +1,141 @@+{-# 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.ApiGatewayV2.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a Tag.+module Amazonka.ApiGatewayV2.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,+  )+where++import Amazonka.ApiGatewayV2.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:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The resource ARN for the tag.+    resourceArn :: Prelude.Text,+    -- | The Tag keys to delete+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The resource ARN for the tag.+--+-- 'tagKeys', 'untagResource_tagKeys' - The Tag keys to delete+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The resource ARN for the tag.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The Tag keys to delete+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull UntagResourceResponse'++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat+      ["/v2/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUntagResourceResponse ::+  UntagResourceResponse+newUntagResourceResponse = UntagResourceResponse'++instance Prelude.NFData UntagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/ApiGatewayV2/UpdateApi.hs view
@@ -0,0 +1,624 @@+{-# 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.ApiGatewayV2.UpdateApi+-- 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 Api resource.+module Amazonka.ApiGatewayV2.UpdateApi+  ( -- * Creating a Request+    UpdateApi (..),+    newUpdateApi,++    -- * Request Lenses+    updateApi_apiKeySelectionExpression,+    updateApi_corsConfiguration,+    updateApi_credentialsArn,+    updateApi_description,+    updateApi_disableExecuteApiEndpoint,+    updateApi_disableSchemaValidation,+    updateApi_name,+    updateApi_routeKey,+    updateApi_routeSelectionExpression,+    updateApi_target,+    updateApi_version,+    updateApi_apiId,++    -- * Destructuring the Response+    UpdateApiResponse (..),+    newUpdateApiResponse,++    -- * Response Lenses+    updateApiResponse_apiEndpoint,+    updateApiResponse_apiGatewayManaged,+    updateApiResponse_apiId,+    updateApiResponse_apiKeySelectionExpression,+    updateApiResponse_corsConfiguration,+    updateApiResponse_createdDate,+    updateApiResponse_description,+    updateApiResponse_disableExecuteApiEndpoint,+    updateApiResponse_disableSchemaValidation,+    updateApiResponse_importInfo,+    updateApiResponse_name,+    updateApiResponse_protocolType,+    updateApiResponse_routeSelectionExpression,+    updateApiResponse_tags,+    updateApiResponse_version,+    updateApiResponse_warnings,+    updateApiResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates an Api.+--+-- /See:/ 'newUpdateApi' smart constructor.+data UpdateApi = UpdateApi'+  { -- | An API key selection expression. Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+    apiKeySelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A CORS configuration. Supported only for HTTP APIs.+    corsConfiguration :: Prelude.Maybe Cors,+    -- | This property is part of quick create. It specifies the credentials+    -- required for the integration, if any. For a Lambda integration, three+    -- options are available. To specify an IAM Role for API Gateway to assume,+    -- use the role\'s Amazon Resource Name (ARN). To require that the+    -- caller\'s identity be passed through from the request, specify+    -- arn:aws:iam::*:user\/*. To use resource-based permissions on supported+    -- AWS services, don\'t specify this parameter. Currently, this property is+    -- not used for HTTP integrations. If provided, this value replaces the+    -- credentials associated with the quick create integration. Supported only+    -- for HTTP APIs.+    credentialsArn :: Prelude.Maybe Prelude.Text,+    -- | The description of the API.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether clients can invoke your API by using the default+    -- execute-api endpoint. By default, clients can invoke your API with the+    -- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+    -- To require that clients use a custom domain name to invoke your API,+    -- disable the default endpoint.+    disableExecuteApiEndpoint :: Prelude.Maybe Prelude.Bool,+    -- | Avoid validating models when creating a deployment. Supported only for+    -- WebSocket APIs.+    disableSchemaValidation :: Prelude.Maybe Prelude.Bool,+    -- | The name of the API.+    name :: Prelude.Maybe Prelude.Text,+    -- | This property is part of quick create. If not specified, the route+    -- created using quick create is kept. Otherwise, this value replaces the+    -- route key of the quick create route. Additional routes may still be+    -- added after the API is updated. Supported only for HTTP APIs.+    routeKey :: Prelude.Maybe Prelude.Text,+    -- | The route selection expression for the API. For HTTP APIs, the+    -- routeSelectionExpression must be ${request.method} ${request.path}. If+    -- not provided, this will be the default for HTTP APIs. This property is+    -- required for WebSocket APIs.+    routeSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | This property is part of quick create. For HTTP integrations, specify a+    -- fully qualified URL. For Lambda integrations, specify a function ARN.+    -- The type of the integration will be HTTP_PROXY or AWS_PROXY,+    -- respectively. The value provided updates the integration URI and+    -- integration type. You can update a quick-created target, but you can\'t+    -- remove it from an API. Supported only for HTTP APIs.+    target :: Prelude.Maybe Prelude.Text,+    -- | A version identifier for the API.+    version :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApi' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiKeySelectionExpression', 'updateApi_apiKeySelectionExpression' - An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+--+-- 'corsConfiguration', 'updateApi_corsConfiguration' - A CORS configuration. Supported only for HTTP APIs.+--+-- 'credentialsArn', 'updateApi_credentialsArn' - This property is part of quick create. It specifies the credentials+-- required for the integration, if any. For a Lambda integration, three+-- options are available. To specify an IAM Role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To require that the+-- caller\'s identity be passed through from the request, specify+-- arn:aws:iam::*:user\/*. To use resource-based permissions on supported+-- AWS services, don\'t specify this parameter. Currently, this property is+-- not used for HTTP integrations. If provided, this value replaces the+-- credentials associated with the quick create integration. Supported only+-- for HTTP APIs.+--+-- 'description', 'updateApi_description' - The description of the API.+--+-- 'disableExecuteApiEndpoint', 'updateApi_disableExecuteApiEndpoint' - Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+--+-- 'disableSchemaValidation', 'updateApi_disableSchemaValidation' - Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+--+-- 'name', 'updateApi_name' - The name of the API.+--+-- 'routeKey', 'updateApi_routeKey' - This property is part of quick create. If not specified, the route+-- created using quick create is kept. Otherwise, this value replaces the+-- route key of the quick create route. Additional routes may still be+-- added after the API is updated. Supported only for HTTP APIs.+--+-- 'routeSelectionExpression', 'updateApi_routeSelectionExpression' - The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+--+-- 'target', 'updateApi_target' - This property is part of quick create. For HTTP integrations, specify a+-- fully qualified URL. For Lambda integrations, specify a function ARN.+-- The type of the integration will be HTTP_PROXY or AWS_PROXY,+-- respectively. The value provided updates the integration URI and+-- integration type. You can update a quick-created target, but you can\'t+-- remove it from an API. Supported only for HTTP APIs.+--+-- 'version', 'updateApi_version' - A version identifier for the API.+--+-- 'apiId', 'updateApi_apiId' - The API identifier.+newUpdateApi ::+  -- | 'apiId'+  Prelude.Text ->+  UpdateApi+newUpdateApi pApiId_ =+  UpdateApi'+    { apiKeySelectionExpression =+        Prelude.Nothing,+      corsConfiguration = Prelude.Nothing,+      credentialsArn = Prelude.Nothing,+      description = Prelude.Nothing,+      disableExecuteApiEndpoint = Prelude.Nothing,+      disableSchemaValidation = Prelude.Nothing,+      name = Prelude.Nothing,+      routeKey = Prelude.Nothing,+      routeSelectionExpression = Prelude.Nothing,+      target = Prelude.Nothing,+      version = Prelude.Nothing,+      apiId = pApiId_+    }++-- | An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+updateApi_apiKeySelectionExpression :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Text)+updateApi_apiKeySelectionExpression = Lens.lens (\UpdateApi' {apiKeySelectionExpression} -> apiKeySelectionExpression) (\s@UpdateApi' {} a -> s {apiKeySelectionExpression = a} :: UpdateApi)++-- | A CORS configuration. Supported only for HTTP APIs.+updateApi_corsConfiguration :: Lens.Lens' UpdateApi (Prelude.Maybe Cors)+updateApi_corsConfiguration = Lens.lens (\UpdateApi' {corsConfiguration} -> corsConfiguration) (\s@UpdateApi' {} a -> s {corsConfiguration = a} :: UpdateApi)++-- | This property is part of quick create. It specifies the credentials+-- required for the integration, if any. For a Lambda integration, three+-- options are available. To specify an IAM Role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To require that the+-- caller\'s identity be passed through from the request, specify+-- arn:aws:iam::*:user\/*. To use resource-based permissions on supported+-- AWS services, don\'t specify this parameter. Currently, this property is+-- not used for HTTP integrations. If provided, this value replaces the+-- credentials associated with the quick create integration. Supported only+-- for HTTP APIs.+updateApi_credentialsArn :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Text)+updateApi_credentialsArn = Lens.lens (\UpdateApi' {credentialsArn} -> credentialsArn) (\s@UpdateApi' {} a -> s {credentialsArn = a} :: UpdateApi)++-- | The description of the API.+updateApi_description :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Text)+updateApi_description = Lens.lens (\UpdateApi' {description} -> description) (\s@UpdateApi' {} a -> s {description = a} :: UpdateApi)++-- | Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+updateApi_disableExecuteApiEndpoint :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Bool)+updateApi_disableExecuteApiEndpoint = Lens.lens (\UpdateApi' {disableExecuteApiEndpoint} -> disableExecuteApiEndpoint) (\s@UpdateApi' {} a -> s {disableExecuteApiEndpoint = a} :: UpdateApi)++-- | Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+updateApi_disableSchemaValidation :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Bool)+updateApi_disableSchemaValidation = Lens.lens (\UpdateApi' {disableSchemaValidation} -> disableSchemaValidation) (\s@UpdateApi' {} a -> s {disableSchemaValidation = a} :: UpdateApi)++-- | The name of the API.+updateApi_name :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Text)+updateApi_name = Lens.lens (\UpdateApi' {name} -> name) (\s@UpdateApi' {} a -> s {name = a} :: UpdateApi)++-- | This property is part of quick create. If not specified, the route+-- created using quick create is kept. Otherwise, this value replaces the+-- route key of the quick create route. Additional routes may still be+-- added after the API is updated. Supported only for HTTP APIs.+updateApi_routeKey :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Text)+updateApi_routeKey = Lens.lens (\UpdateApi' {routeKey} -> routeKey) (\s@UpdateApi' {} a -> s {routeKey = a} :: UpdateApi)++-- | The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+updateApi_routeSelectionExpression :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Text)+updateApi_routeSelectionExpression = Lens.lens (\UpdateApi' {routeSelectionExpression} -> routeSelectionExpression) (\s@UpdateApi' {} a -> s {routeSelectionExpression = a} :: UpdateApi)++-- | This property is part of quick create. For HTTP integrations, specify a+-- fully qualified URL. For Lambda integrations, specify a function ARN.+-- The type of the integration will be HTTP_PROXY or AWS_PROXY,+-- respectively. The value provided updates the integration URI and+-- integration type. You can update a quick-created target, but you can\'t+-- remove it from an API. Supported only for HTTP APIs.+updateApi_target :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Text)+updateApi_target = Lens.lens (\UpdateApi' {target} -> target) (\s@UpdateApi' {} a -> s {target = a} :: UpdateApi)++-- | A version identifier for the API.+updateApi_version :: Lens.Lens' UpdateApi (Prelude.Maybe Prelude.Text)+updateApi_version = Lens.lens (\UpdateApi' {version} -> version) (\s@UpdateApi' {} a -> s {version = a} :: UpdateApi)++-- | The API identifier.+updateApi_apiId :: Lens.Lens' UpdateApi Prelude.Text+updateApi_apiId = Lens.lens (\UpdateApi' {apiId} -> apiId) (\s@UpdateApi' {} a -> s {apiId = a} :: UpdateApi)++instance Core.AWSRequest UpdateApi where+  type AWSResponse UpdateApi = UpdateApiResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateApiResponse'+            Prelude.<$> (x Data..?> "apiEndpoint")+            Prelude.<*> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "apiId")+            Prelude.<*> (x Data..?> "apiKeySelectionExpression")+            Prelude.<*> (x Data..?> "corsConfiguration")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "disableExecuteApiEndpoint")+            Prelude.<*> (x Data..?> "disableSchemaValidation")+            Prelude.<*> (x Data..?> "importInfo" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "protocolType")+            Prelude.<*> (x Data..?> "routeSelectionExpression")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (x Data..?> "warnings" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateApi where+  hashWithSalt _salt UpdateApi' {..} =+    _salt+      `Prelude.hashWithSalt` apiKeySelectionExpression+      `Prelude.hashWithSalt` corsConfiguration+      `Prelude.hashWithSalt` credentialsArn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` disableExecuteApiEndpoint+      `Prelude.hashWithSalt` disableSchemaValidation+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` routeKey+      `Prelude.hashWithSalt` routeSelectionExpression+      `Prelude.hashWithSalt` target+      `Prelude.hashWithSalt` version+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData UpdateApi where+  rnf UpdateApi' {..} =+    Prelude.rnf apiKeySelectionExpression+      `Prelude.seq` Prelude.rnf corsConfiguration+      `Prelude.seq` Prelude.rnf credentialsArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf disableExecuteApiEndpoint+      `Prelude.seq` Prelude.rnf disableSchemaValidation+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf routeKey+      `Prelude.seq` Prelude.rnf routeSelectionExpression+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders UpdateApi where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateApi where+  toJSON UpdateApi' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("apiKeySelectionExpression" Data..=)+              Prelude.<$> apiKeySelectionExpression,+            ("corsConfiguration" Data..=)+              Prelude.<$> corsConfiguration,+            ("credentialsArn" Data..=)+              Prelude.<$> credentialsArn,+            ("description" Data..=) Prelude.<$> description,+            ("disableExecuteApiEndpoint" Data..=)+              Prelude.<$> disableExecuteApiEndpoint,+            ("disableSchemaValidation" Data..=)+              Prelude.<$> disableSchemaValidation,+            ("name" Data..=) Prelude.<$> name,+            ("routeKey" Data..=) Prelude.<$> routeKey,+            ("routeSelectionExpression" Data..=)+              Prelude.<$> routeSelectionExpression,+            ("target" Data..=) Prelude.<$> target,+            ("version" Data..=) Prelude.<$> version+          ]+      )++instance Data.ToPath UpdateApi where+  toPath UpdateApi' {..} =+    Prelude.mconcat ["/v2/apis/", Data.toBS apiId]++instance Data.ToQuery UpdateApi where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateApiResponse' smart constructor.+data UpdateApiResponse = UpdateApiResponse'+  { -- | The URI of the API, of the form+    -- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+    -- appended to this URI to form a complete path to a deployed API stage.+    apiEndpoint :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether an API is managed by API Gateway. You can\'t update or+    -- delete a managed API by using API Gateway. A managed API can be deleted+    -- only through the tooling or service that created it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The API ID.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | An API key selection expression. Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+    apiKeySelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A CORS configuration. Supported only for HTTP APIs.+    corsConfiguration :: Prelude.Maybe Cors,+    -- | The timestamp when the API was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The description of the API.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether clients can invoke your API by using the default+    -- execute-api endpoint. By default, clients can invoke your API with the+    -- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+    -- To require that clients use a custom domain name to invoke your API,+    -- disable the default endpoint.+    disableExecuteApiEndpoint :: Prelude.Maybe Prelude.Bool,+    -- | Avoid validating models when creating a deployment. Supported only for+    -- WebSocket APIs.+    disableSchemaValidation :: Prelude.Maybe Prelude.Bool,+    -- | The validation information during API import. This may include+    -- particular properties of your OpenAPI definition which are ignored+    -- during import. Supported only for HTTP APIs.+    importInfo :: Prelude.Maybe [Prelude.Text],+    -- | The name of the API.+    name :: Prelude.Maybe Prelude.Text,+    -- | The API protocol.+    protocolType :: Prelude.Maybe ProtocolType,+    -- | The route selection expression for the API. For HTTP APIs, the+    -- routeSelectionExpression must be ${request.method} ${request.path}. If+    -- not provided, this will be the default for HTTP APIs. This property is+    -- required for WebSocket APIs.+    routeSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | A collection of tags associated with the API.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A version identifier for the API.+    version :: Prelude.Maybe Prelude.Text,+    -- | The warning messages reported when failonwarnings is turned on during+    -- API import.+    warnings :: Prelude.Maybe [Prelude.Text],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApiResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiEndpoint', 'updateApiResponse_apiEndpoint' - The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+--+-- 'apiGatewayManaged', 'updateApiResponse_apiGatewayManaged' - Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+--+-- 'apiId', 'updateApiResponse_apiId' - The API ID.+--+-- 'apiKeySelectionExpression', 'updateApiResponse_apiKeySelectionExpression' - An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+--+-- 'corsConfiguration', 'updateApiResponse_corsConfiguration' - A CORS configuration. Supported only for HTTP APIs.+--+-- 'createdDate', 'updateApiResponse_createdDate' - The timestamp when the API was created.+--+-- 'description', 'updateApiResponse_description' - The description of the API.+--+-- 'disableExecuteApiEndpoint', 'updateApiResponse_disableExecuteApiEndpoint' - Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+--+-- 'disableSchemaValidation', 'updateApiResponse_disableSchemaValidation' - Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+--+-- 'importInfo', 'updateApiResponse_importInfo' - The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+--+-- 'name', 'updateApiResponse_name' - The name of the API.+--+-- 'protocolType', 'updateApiResponse_protocolType' - The API protocol.+--+-- 'routeSelectionExpression', 'updateApiResponse_routeSelectionExpression' - The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+--+-- 'tags', 'updateApiResponse_tags' - A collection of tags associated with the API.+--+-- 'version', 'updateApiResponse_version' - A version identifier for the API.+--+-- 'warnings', 'updateApiResponse_warnings' - The warning messages reported when failonwarnings is turned on during+-- API import.+--+-- 'httpStatus', 'updateApiResponse_httpStatus' - The response's http status code.+newUpdateApiResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateApiResponse+newUpdateApiResponse pHttpStatus_ =+  UpdateApiResponse'+    { apiEndpoint = Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      apiId = Prelude.Nothing,+      apiKeySelectionExpression = Prelude.Nothing,+      corsConfiguration = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      disableExecuteApiEndpoint = Prelude.Nothing,+      disableSchemaValidation = Prelude.Nothing,+      importInfo = Prelude.Nothing,+      name = Prelude.Nothing,+      protocolType = Prelude.Nothing,+      routeSelectionExpression = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      warnings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The URI of the API, of the form+-- {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically+-- appended to this URI to form a complete path to a deployed API stage.+updateApiResponse_apiEndpoint :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Text)+updateApiResponse_apiEndpoint = Lens.lens (\UpdateApiResponse' {apiEndpoint} -> apiEndpoint) (\s@UpdateApiResponse' {} a -> s {apiEndpoint = a} :: UpdateApiResponse)++-- | Specifies whether an API is managed by API Gateway. You can\'t update or+-- delete a managed API by using API Gateway. A managed API can be deleted+-- only through the tooling or service that created it.+updateApiResponse_apiGatewayManaged :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Bool)+updateApiResponse_apiGatewayManaged = Lens.lens (\UpdateApiResponse' {apiGatewayManaged} -> apiGatewayManaged) (\s@UpdateApiResponse' {} a -> s {apiGatewayManaged = a} :: UpdateApiResponse)++-- | The API ID.+updateApiResponse_apiId :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Text)+updateApiResponse_apiId = Lens.lens (\UpdateApiResponse' {apiId} -> apiId) (\s@UpdateApiResponse' {} a -> s {apiId = a} :: UpdateApiResponse)++-- | An API key selection expression. Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions API Key Selection Expressions>.+updateApiResponse_apiKeySelectionExpression :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Text)+updateApiResponse_apiKeySelectionExpression = Lens.lens (\UpdateApiResponse' {apiKeySelectionExpression} -> apiKeySelectionExpression) (\s@UpdateApiResponse' {} a -> s {apiKeySelectionExpression = a} :: UpdateApiResponse)++-- | A CORS configuration. Supported only for HTTP APIs.+updateApiResponse_corsConfiguration :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Cors)+updateApiResponse_corsConfiguration = Lens.lens (\UpdateApiResponse' {corsConfiguration} -> corsConfiguration) (\s@UpdateApiResponse' {} a -> s {corsConfiguration = a} :: UpdateApiResponse)++-- | The timestamp when the API was created.+updateApiResponse_createdDate :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.UTCTime)+updateApiResponse_createdDate = Lens.lens (\UpdateApiResponse' {createdDate} -> createdDate) (\s@UpdateApiResponse' {} a -> s {createdDate = a} :: UpdateApiResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the API.+updateApiResponse_description :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Text)+updateApiResponse_description = Lens.lens (\UpdateApiResponse' {description} -> description) (\s@UpdateApiResponse' {} a -> s {description = a} :: UpdateApiResponse)++-- | Specifies whether clients can invoke your API by using the default+-- execute-api endpoint. By default, clients can invoke your API with the+-- default https:\/\/{api_id}.execute-api.{region}.amazonaws.com endpoint.+-- To require that clients use a custom domain name to invoke your API,+-- disable the default endpoint.+updateApiResponse_disableExecuteApiEndpoint :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Bool)+updateApiResponse_disableExecuteApiEndpoint = Lens.lens (\UpdateApiResponse' {disableExecuteApiEndpoint} -> disableExecuteApiEndpoint) (\s@UpdateApiResponse' {} a -> s {disableExecuteApiEndpoint = a} :: UpdateApiResponse)++-- | Avoid validating models when creating a deployment. Supported only for+-- WebSocket APIs.+updateApiResponse_disableSchemaValidation :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Bool)+updateApiResponse_disableSchemaValidation = Lens.lens (\UpdateApiResponse' {disableSchemaValidation} -> disableSchemaValidation) (\s@UpdateApiResponse' {} a -> s {disableSchemaValidation = a} :: UpdateApiResponse)++-- | The validation information during API import. This may include+-- particular properties of your OpenAPI definition which are ignored+-- during import. Supported only for HTTP APIs.+updateApiResponse_importInfo :: Lens.Lens' UpdateApiResponse (Prelude.Maybe [Prelude.Text])+updateApiResponse_importInfo = Lens.lens (\UpdateApiResponse' {importInfo} -> importInfo) (\s@UpdateApiResponse' {} a -> s {importInfo = a} :: UpdateApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the API.+updateApiResponse_name :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Text)+updateApiResponse_name = Lens.lens (\UpdateApiResponse' {name} -> name) (\s@UpdateApiResponse' {} a -> s {name = a} :: UpdateApiResponse)++-- | The API protocol.+updateApiResponse_protocolType :: Lens.Lens' UpdateApiResponse (Prelude.Maybe ProtocolType)+updateApiResponse_protocolType = Lens.lens (\UpdateApiResponse' {protocolType} -> protocolType) (\s@UpdateApiResponse' {} a -> s {protocolType = a} :: UpdateApiResponse)++-- | The route selection expression for the API. For HTTP APIs, the+-- routeSelectionExpression must be ${request.method} ${request.path}. If+-- not provided, this will be the default for HTTP APIs. This property is+-- required for WebSocket APIs.+updateApiResponse_routeSelectionExpression :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Text)+updateApiResponse_routeSelectionExpression = Lens.lens (\UpdateApiResponse' {routeSelectionExpression} -> routeSelectionExpression) (\s@UpdateApiResponse' {} a -> s {routeSelectionExpression = a} :: UpdateApiResponse)++-- | A collection of tags associated with the API.+updateApiResponse_tags :: Lens.Lens' UpdateApiResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateApiResponse_tags = Lens.lens (\UpdateApiResponse' {tags} -> tags) (\s@UpdateApiResponse' {} a -> s {tags = a} :: UpdateApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | A version identifier for the API.+updateApiResponse_version :: Lens.Lens' UpdateApiResponse (Prelude.Maybe Prelude.Text)+updateApiResponse_version = Lens.lens (\UpdateApiResponse' {version} -> version) (\s@UpdateApiResponse' {} a -> s {version = a} :: UpdateApiResponse)++-- | The warning messages reported when failonwarnings is turned on during+-- API import.+updateApiResponse_warnings :: Lens.Lens' UpdateApiResponse (Prelude.Maybe [Prelude.Text])+updateApiResponse_warnings = Lens.lens (\UpdateApiResponse' {warnings} -> warnings) (\s@UpdateApiResponse' {} a -> s {warnings = a} :: UpdateApiResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateApiResponse_httpStatus :: Lens.Lens' UpdateApiResponse Prelude.Int+updateApiResponse_httpStatus = Lens.lens (\UpdateApiResponse' {httpStatus} -> httpStatus) (\s@UpdateApiResponse' {} a -> s {httpStatus = a} :: UpdateApiResponse)++instance Prelude.NFData UpdateApiResponse where+  rnf UpdateApiResponse' {..} =+    Prelude.rnf apiEndpoint+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiKeySelectionExpression+      `Prelude.seq` Prelude.rnf corsConfiguration+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf disableExecuteApiEndpoint+      `Prelude.seq` Prelude.rnf disableSchemaValidation+      `Prelude.seq` Prelude.rnf importInfo+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf protocolType+      `Prelude.seq` Prelude.rnf routeSelectionExpression+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf warnings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateApiMapping.hs view
@@ -0,0 +1,269 @@+{-# 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.ApiGatewayV2.UpdateApiMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The API mapping.+module Amazonka.ApiGatewayV2.UpdateApiMapping+  ( -- * Creating a Request+    UpdateApiMapping (..),+    newUpdateApiMapping,++    -- * Request Lenses+    updateApiMapping_apiMappingKey,+    updateApiMapping_stage,+    updateApiMapping_apiMappingId,+    updateApiMapping_apiId,+    updateApiMapping_domainName,++    -- * Destructuring the Response+    UpdateApiMappingResponse (..),+    newUpdateApiMappingResponse,++    -- * Response Lenses+    updateApiMappingResponse_apiId,+    updateApiMappingResponse_apiMappingId,+    updateApiMappingResponse_apiMappingKey,+    updateApiMappingResponse_stage,+    updateApiMappingResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates an ApiMapping.+--+-- /See:/ 'newUpdateApiMapping' smart constructor.+data UpdateApiMapping = UpdateApiMapping'+  { -- | The API mapping key.+    apiMappingKey :: Prelude.Maybe Prelude.Text,+    -- | The API stage.+    stage :: Prelude.Maybe Prelude.Text,+    -- | The API mapping identifier.+    apiMappingId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The domain name.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApiMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingKey', 'updateApiMapping_apiMappingKey' - The API mapping key.+--+-- 'stage', 'updateApiMapping_stage' - The API stage.+--+-- 'apiMappingId', 'updateApiMapping_apiMappingId' - The API mapping identifier.+--+-- 'apiId', 'updateApiMapping_apiId' - The API identifier.+--+-- 'domainName', 'updateApiMapping_domainName' - The domain name.+newUpdateApiMapping ::+  -- | 'apiMappingId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  UpdateApiMapping+newUpdateApiMapping+  pApiMappingId_+  pApiId_+  pDomainName_ =+    UpdateApiMapping'+      { apiMappingKey = Prelude.Nothing,+        stage = Prelude.Nothing,+        apiMappingId = pApiMappingId_,+        apiId = pApiId_,+        domainName = pDomainName_+      }++-- | The API mapping key.+updateApiMapping_apiMappingKey :: Lens.Lens' UpdateApiMapping (Prelude.Maybe Prelude.Text)+updateApiMapping_apiMappingKey = Lens.lens (\UpdateApiMapping' {apiMappingKey} -> apiMappingKey) (\s@UpdateApiMapping' {} a -> s {apiMappingKey = a} :: UpdateApiMapping)++-- | The API stage.+updateApiMapping_stage :: Lens.Lens' UpdateApiMapping (Prelude.Maybe Prelude.Text)+updateApiMapping_stage = Lens.lens (\UpdateApiMapping' {stage} -> stage) (\s@UpdateApiMapping' {} a -> s {stage = a} :: UpdateApiMapping)++-- | The API mapping identifier.+updateApiMapping_apiMappingId :: Lens.Lens' UpdateApiMapping Prelude.Text+updateApiMapping_apiMappingId = Lens.lens (\UpdateApiMapping' {apiMappingId} -> apiMappingId) (\s@UpdateApiMapping' {} a -> s {apiMappingId = a} :: UpdateApiMapping)++-- | The API identifier.+updateApiMapping_apiId :: Lens.Lens' UpdateApiMapping Prelude.Text+updateApiMapping_apiId = Lens.lens (\UpdateApiMapping' {apiId} -> apiId) (\s@UpdateApiMapping' {} a -> s {apiId = a} :: UpdateApiMapping)++-- | The domain name.+updateApiMapping_domainName :: Lens.Lens' UpdateApiMapping Prelude.Text+updateApiMapping_domainName = Lens.lens (\UpdateApiMapping' {domainName} -> domainName) (\s@UpdateApiMapping' {} a -> s {domainName = a} :: UpdateApiMapping)++instance Core.AWSRequest UpdateApiMapping where+  type+    AWSResponse UpdateApiMapping =+      UpdateApiMappingResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateApiMappingResponse'+            Prelude.<$> (x Data..?> "apiId")+            Prelude.<*> (x Data..?> "apiMappingId")+            Prelude.<*> (x Data..?> "apiMappingKey")+            Prelude.<*> (x Data..?> "stage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateApiMapping where+  hashWithSalt _salt UpdateApiMapping' {..} =+    _salt+      `Prelude.hashWithSalt` apiMappingKey+      `Prelude.hashWithSalt` stage+      `Prelude.hashWithSalt` apiMappingId+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData UpdateApiMapping where+  rnf UpdateApiMapping' {..} =+    Prelude.rnf apiMappingKey+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf apiMappingId+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders UpdateApiMapping where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateApiMapping where+  toJSON UpdateApiMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("apiMappingKey" Data..=) Prelude.<$> apiMappingKey,+            ("stage" Data..=) Prelude.<$> stage,+            Prelude.Just ("apiId" Data..= apiId)+          ]+      )++instance Data.ToPath UpdateApiMapping where+  toPath UpdateApiMapping' {..} =+    Prelude.mconcat+      [ "/v2/domainnames/",+        Data.toBS domainName,+        "/apimappings/",+        Data.toBS apiMappingId+      ]++instance Data.ToQuery UpdateApiMapping where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateApiMappingResponse' smart constructor.+data UpdateApiMappingResponse = UpdateApiMappingResponse'+  { -- | The API identifier.+    apiId :: Prelude.Maybe Prelude.Text,+    -- | The API mapping identifier.+    apiMappingId :: Prelude.Maybe Prelude.Text,+    -- | The API mapping key.+    apiMappingKey :: Prelude.Maybe Prelude.Text,+    -- | The API stage.+    stage :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApiMappingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiId', 'updateApiMappingResponse_apiId' - The API identifier.+--+-- 'apiMappingId', 'updateApiMappingResponse_apiMappingId' - The API mapping identifier.+--+-- 'apiMappingKey', 'updateApiMappingResponse_apiMappingKey' - The API mapping key.+--+-- 'stage', 'updateApiMappingResponse_stage' - The API stage.+--+-- 'httpStatus', 'updateApiMappingResponse_httpStatus' - The response's http status code.+newUpdateApiMappingResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateApiMappingResponse+newUpdateApiMappingResponse pHttpStatus_ =+  UpdateApiMappingResponse'+    { apiId = Prelude.Nothing,+      apiMappingId = Prelude.Nothing,+      apiMappingKey = Prelude.Nothing,+      stage = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The API identifier.+updateApiMappingResponse_apiId :: Lens.Lens' UpdateApiMappingResponse (Prelude.Maybe Prelude.Text)+updateApiMappingResponse_apiId = Lens.lens (\UpdateApiMappingResponse' {apiId} -> apiId) (\s@UpdateApiMappingResponse' {} a -> s {apiId = a} :: UpdateApiMappingResponse)++-- | The API mapping identifier.+updateApiMappingResponse_apiMappingId :: Lens.Lens' UpdateApiMappingResponse (Prelude.Maybe Prelude.Text)+updateApiMappingResponse_apiMappingId = Lens.lens (\UpdateApiMappingResponse' {apiMappingId} -> apiMappingId) (\s@UpdateApiMappingResponse' {} a -> s {apiMappingId = a} :: UpdateApiMappingResponse)++-- | The API mapping key.+updateApiMappingResponse_apiMappingKey :: Lens.Lens' UpdateApiMappingResponse (Prelude.Maybe Prelude.Text)+updateApiMappingResponse_apiMappingKey = Lens.lens (\UpdateApiMappingResponse' {apiMappingKey} -> apiMappingKey) (\s@UpdateApiMappingResponse' {} a -> s {apiMappingKey = a} :: UpdateApiMappingResponse)++-- | The API stage.+updateApiMappingResponse_stage :: Lens.Lens' UpdateApiMappingResponse (Prelude.Maybe Prelude.Text)+updateApiMappingResponse_stage = Lens.lens (\UpdateApiMappingResponse' {stage} -> stage) (\s@UpdateApiMappingResponse' {} a -> s {stage = a} :: UpdateApiMappingResponse)++-- | The response's http status code.+updateApiMappingResponse_httpStatus :: Lens.Lens' UpdateApiMappingResponse Prelude.Int+updateApiMappingResponse_httpStatus = Lens.lens (\UpdateApiMappingResponse' {httpStatus} -> httpStatus) (\s@UpdateApiMappingResponse' {} a -> s {httpStatus = a} :: UpdateApiMappingResponse)++instance Prelude.NFData UpdateApiMappingResponse where+  rnf UpdateApiMappingResponse' {..} =+    Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf apiMappingId+      `Prelude.seq` Prelude.rnf apiMappingKey+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateAuthorizer.hs view
@@ -0,0 +1,740 @@+{-# 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.ApiGatewayV2.UpdateAuthorizer+-- 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 Authorizer.+module Amazonka.ApiGatewayV2.UpdateAuthorizer+  ( -- * Creating a Request+    UpdateAuthorizer (..),+    newUpdateAuthorizer,++    -- * Request Lenses+    updateAuthorizer_authorizerCredentialsArn,+    updateAuthorizer_authorizerPayloadFormatVersion,+    updateAuthorizer_authorizerResultTtlInSeconds,+    updateAuthorizer_authorizerType,+    updateAuthorizer_authorizerUri,+    updateAuthorizer_enableSimpleResponses,+    updateAuthorizer_identitySource,+    updateAuthorizer_identityValidationExpression,+    updateAuthorizer_jwtConfiguration,+    updateAuthorizer_name,+    updateAuthorizer_authorizerId,+    updateAuthorizer_apiId,++    -- * Destructuring the Response+    UpdateAuthorizerResponse (..),+    newUpdateAuthorizerResponse,++    -- * Response Lenses+    updateAuthorizerResponse_authorizerCredentialsArn,+    updateAuthorizerResponse_authorizerId,+    updateAuthorizerResponse_authorizerPayloadFormatVersion,+    updateAuthorizerResponse_authorizerResultTtlInSeconds,+    updateAuthorizerResponse_authorizerType,+    updateAuthorizerResponse_authorizerUri,+    updateAuthorizerResponse_enableSimpleResponses,+    updateAuthorizerResponse_identitySource,+    updateAuthorizerResponse_identityValidationExpression,+    updateAuthorizerResponse_jwtConfiguration,+    updateAuthorizerResponse_name,+    updateAuthorizerResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates an Authorizer.+--+-- /See:/ 'newUpdateAuthorizer' smart constructor.+data UpdateAuthorizer = UpdateAuthorizer'+  { -- | Specifies the required credentials as an IAM role for API Gateway to+    -- invoke the authorizer. To specify an IAM role for API Gateway to assume,+    -- use the role\'s Amazon Resource Name (ARN). To use resource-based+    -- permissions on the Lambda function, don\'t specify this parameter.+    authorizerCredentialsArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies the format of the payload sent to an HTTP API Lambda+    -- authorizer. Required for HTTP API Lambda authorizers. Supported values+    -- are 1.0 and 2.0. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    authorizerPayloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | The time to live (TTL) for cached authorizer results, in seconds. If it+    -- equals 0, authorization caching is disabled. If it is greater than 0,+    -- API Gateway caches authorizer responses. The maximum value is 3600, or 1+    -- hour. Supported only for HTTP API Lambda authorizers.+    authorizerResultTtlInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The authorizer type. Specify REQUEST for a Lambda function using+    -- incoming request parameters. Specify JWT to use JSON Web Tokens+    -- (supported only for HTTP APIs).+    authorizerType :: Prelude.Maybe AuthorizerType,+    -- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+    -- authorizers, this must be a well-formed Lambda function URI, for+    -- example,+    -- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+    -- In general, the URI has this form:+    -- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+    -- is the same as the region hosting the Lambda function, path indicates+    -- that the remaining substring in the URI should be treated as the path to+    -- the resource, including the initial \/. For Lambda functions, this is+    -- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+    -- Supported only for REQUEST authorizers.+    authorizerUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether a Lambda authorizer returns a response in a simple+    -- format. By default, a Lambda authorizer must return an IAM policy. If+    -- enabled, the Lambda authorizer can return a boolean value instead of an+    -- IAM policy. Supported only for HTTP APIs. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+    enableSimpleResponses :: Prelude.Maybe Prelude.Bool,+    -- | The identity source for which authorization is requested.+    --+    -- For a REQUEST authorizer, this is optional. The value is a set of one or+    -- more mapping expressions of the specified request parameters. The+    -- identity source can be headers, query string parameters, stage+    -- variables, and context parameters. For example, if an Auth header and a+    -- Name query string parameter are defined as identity sources, this value+    -- is route.request.header.Auth, route.request.querystring.Name for+    -- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+    -- \$, for example, $request.header.Auth, $request.querystring.Name. These+    -- parameters are used to perform runtime validation for Lambda-based+    -- authorizers by verifying all of the identity-related request parameters+    -- are present in the request, not null, and non-empty. Only when this is+    -- true does the authorizer invoke the authorizer Lambda function.+    -- Otherwise, it returns a 401 Unauthorized response without calling the+    -- Lambda function. For HTTP APIs, identity sources are also used as the+    -- cache key when caching is enabled. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    --+    -- For JWT, a single entry that specifies where to extract the JSON Web+    -- Token (JWT) from inbound requests. Currently only header-based and query+    -- parameter-based selections are supported, for example+    -- \$request.header.Authorization.+    identitySource :: Prelude.Maybe [Prelude.Text],+    -- | This parameter is not used.+    identityValidationExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the configuration of a JWT authorizer. Required for the JWT+    -- authorizer type. Supported only for HTTP APIs.+    jwtConfiguration :: Prelude.Maybe JWTConfiguration,+    -- | The name of the authorizer.+    name :: Prelude.Maybe Prelude.Text,+    -- | The authorizer identifier.+    authorizerId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAuthorizer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorizerCredentialsArn', 'updateAuthorizer_authorizerCredentialsArn' - Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+--+-- 'authorizerPayloadFormatVersion', 'updateAuthorizer_authorizerPayloadFormatVersion' - Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- 'authorizerResultTtlInSeconds', 'updateAuthorizer_authorizerResultTtlInSeconds' - The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+--+-- 'authorizerType', 'updateAuthorizer_authorizerType' - The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+--+-- 'authorizerUri', 'updateAuthorizer_authorizerUri' - The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+--+-- 'enableSimpleResponses', 'updateAuthorizer_enableSimpleResponses' - Specifies whether a Lambda authorizer returns a response in a simple+-- format. By default, a Lambda authorizer must return an IAM policy. If+-- enabled, the Lambda authorizer can return a boolean value instead of an+-- IAM policy. Supported only for HTTP APIs. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+--+-- 'identitySource', 'updateAuthorizer_identitySource' - The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+--+-- 'identityValidationExpression', 'updateAuthorizer_identityValidationExpression' - This parameter is not used.+--+-- 'jwtConfiguration', 'updateAuthorizer_jwtConfiguration' - Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+--+-- 'name', 'updateAuthorizer_name' - The name of the authorizer.+--+-- 'authorizerId', 'updateAuthorizer_authorizerId' - The authorizer identifier.+--+-- 'apiId', 'updateAuthorizer_apiId' - The API identifier.+newUpdateAuthorizer ::+  -- | 'authorizerId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  UpdateAuthorizer+newUpdateAuthorizer pAuthorizerId_ pApiId_ =+  UpdateAuthorizer'+    { authorizerCredentialsArn =+        Prelude.Nothing,+      authorizerPayloadFormatVersion = Prelude.Nothing,+      authorizerResultTtlInSeconds = Prelude.Nothing,+      authorizerType = Prelude.Nothing,+      authorizerUri = Prelude.Nothing,+      enableSimpleResponses = Prelude.Nothing,+      identitySource = Prelude.Nothing,+      identityValidationExpression = Prelude.Nothing,+      jwtConfiguration = Prelude.Nothing,+      name = Prelude.Nothing,+      authorizerId = pAuthorizerId_,+      apiId = pApiId_+    }++-- | Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+updateAuthorizer_authorizerCredentialsArn :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe Prelude.Text)+updateAuthorizer_authorizerCredentialsArn = Lens.lens (\UpdateAuthorizer' {authorizerCredentialsArn} -> authorizerCredentialsArn) (\s@UpdateAuthorizer' {} a -> s {authorizerCredentialsArn = a} :: UpdateAuthorizer)++-- | Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+updateAuthorizer_authorizerPayloadFormatVersion :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe Prelude.Text)+updateAuthorizer_authorizerPayloadFormatVersion = Lens.lens (\UpdateAuthorizer' {authorizerPayloadFormatVersion} -> authorizerPayloadFormatVersion) (\s@UpdateAuthorizer' {} a -> s {authorizerPayloadFormatVersion = a} :: UpdateAuthorizer)++-- | The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+updateAuthorizer_authorizerResultTtlInSeconds :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe Prelude.Natural)+updateAuthorizer_authorizerResultTtlInSeconds = Lens.lens (\UpdateAuthorizer' {authorizerResultTtlInSeconds} -> authorizerResultTtlInSeconds) (\s@UpdateAuthorizer' {} a -> s {authorizerResultTtlInSeconds = a} :: UpdateAuthorizer)++-- | The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+updateAuthorizer_authorizerType :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe AuthorizerType)+updateAuthorizer_authorizerType = Lens.lens (\UpdateAuthorizer' {authorizerType} -> authorizerType) (\s@UpdateAuthorizer' {} a -> s {authorizerType = a} :: UpdateAuthorizer)++-- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+updateAuthorizer_authorizerUri :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe Prelude.Text)+updateAuthorizer_authorizerUri = Lens.lens (\UpdateAuthorizer' {authorizerUri} -> authorizerUri) (\s@UpdateAuthorizer' {} a -> s {authorizerUri = a} :: UpdateAuthorizer)++-- | Specifies whether a Lambda authorizer returns a response in a simple+-- format. By default, a Lambda authorizer must return an IAM policy. If+-- enabled, the Lambda authorizer can return a boolean value instead of an+-- IAM policy. Supported only for HTTP APIs. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+updateAuthorizer_enableSimpleResponses :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe Prelude.Bool)+updateAuthorizer_enableSimpleResponses = Lens.lens (\UpdateAuthorizer' {enableSimpleResponses} -> enableSimpleResponses) (\s@UpdateAuthorizer' {} a -> s {enableSimpleResponses = a} :: UpdateAuthorizer)++-- | The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+updateAuthorizer_identitySource :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe [Prelude.Text])+updateAuthorizer_identitySource = Lens.lens (\UpdateAuthorizer' {identitySource} -> identitySource) (\s@UpdateAuthorizer' {} a -> s {identitySource = a} :: UpdateAuthorizer) Prelude.. Lens.mapping Lens.coerced++-- | This parameter is not used.+updateAuthorizer_identityValidationExpression :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe Prelude.Text)+updateAuthorizer_identityValidationExpression = Lens.lens (\UpdateAuthorizer' {identityValidationExpression} -> identityValidationExpression) (\s@UpdateAuthorizer' {} a -> s {identityValidationExpression = a} :: UpdateAuthorizer)++-- | Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+updateAuthorizer_jwtConfiguration :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe JWTConfiguration)+updateAuthorizer_jwtConfiguration = Lens.lens (\UpdateAuthorizer' {jwtConfiguration} -> jwtConfiguration) (\s@UpdateAuthorizer' {} a -> s {jwtConfiguration = a} :: UpdateAuthorizer)++-- | The name of the authorizer.+updateAuthorizer_name :: Lens.Lens' UpdateAuthorizer (Prelude.Maybe Prelude.Text)+updateAuthorizer_name = Lens.lens (\UpdateAuthorizer' {name} -> name) (\s@UpdateAuthorizer' {} a -> s {name = a} :: UpdateAuthorizer)++-- | The authorizer identifier.+updateAuthorizer_authorizerId :: Lens.Lens' UpdateAuthorizer Prelude.Text+updateAuthorizer_authorizerId = Lens.lens (\UpdateAuthorizer' {authorizerId} -> authorizerId) (\s@UpdateAuthorizer' {} a -> s {authorizerId = a} :: UpdateAuthorizer)++-- | The API identifier.+updateAuthorizer_apiId :: Lens.Lens' UpdateAuthorizer Prelude.Text+updateAuthorizer_apiId = Lens.lens (\UpdateAuthorizer' {apiId} -> apiId) (\s@UpdateAuthorizer' {} a -> s {apiId = a} :: UpdateAuthorizer)++instance Core.AWSRequest UpdateAuthorizer where+  type+    AWSResponse UpdateAuthorizer =+      UpdateAuthorizerResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAuthorizerResponse'+            Prelude.<$> (x Data..?> "authorizerCredentialsArn")+            Prelude.<*> (x Data..?> "authorizerId")+            Prelude.<*> (x Data..?> "authorizerPayloadFormatVersion")+            Prelude.<*> (x Data..?> "authorizerResultTtlInSeconds")+            Prelude.<*> (x Data..?> "authorizerType")+            Prelude.<*> (x Data..?> "authorizerUri")+            Prelude.<*> (x Data..?> "enableSimpleResponses")+            Prelude.<*> (x Data..?> "identitySource" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "identityValidationExpression")+            Prelude.<*> (x Data..?> "jwtConfiguration")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAuthorizer where+  hashWithSalt _salt UpdateAuthorizer' {..} =+    _salt+      `Prelude.hashWithSalt` authorizerCredentialsArn+      `Prelude.hashWithSalt` authorizerPayloadFormatVersion+      `Prelude.hashWithSalt` authorizerResultTtlInSeconds+      `Prelude.hashWithSalt` authorizerType+      `Prelude.hashWithSalt` authorizerUri+      `Prelude.hashWithSalt` enableSimpleResponses+      `Prelude.hashWithSalt` identitySource+      `Prelude.hashWithSalt` identityValidationExpression+      `Prelude.hashWithSalt` jwtConfiguration+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` authorizerId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData UpdateAuthorizer where+  rnf UpdateAuthorizer' {..} =+    Prelude.rnf authorizerCredentialsArn+      `Prelude.seq` Prelude.rnf authorizerPayloadFormatVersion+      `Prelude.seq` Prelude.rnf authorizerResultTtlInSeconds+      `Prelude.seq` Prelude.rnf authorizerType+      `Prelude.seq` Prelude.rnf authorizerUri+      `Prelude.seq` Prelude.rnf enableSimpleResponses+      `Prelude.seq` Prelude.rnf identitySource+      `Prelude.seq` Prelude.rnf identityValidationExpression+      `Prelude.seq` Prelude.rnf jwtConfiguration+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders UpdateAuthorizer where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAuthorizer where+  toJSON UpdateAuthorizer' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("authorizerCredentialsArn" Data..=)+              Prelude.<$> authorizerCredentialsArn,+            ("authorizerPayloadFormatVersion" Data..=)+              Prelude.<$> authorizerPayloadFormatVersion,+            ("authorizerResultTtlInSeconds" Data..=)+              Prelude.<$> authorizerResultTtlInSeconds,+            ("authorizerType" Data..=)+              Prelude.<$> authorizerType,+            ("authorizerUri" Data..=) Prelude.<$> authorizerUri,+            ("enableSimpleResponses" Data..=)+              Prelude.<$> enableSimpleResponses,+            ("identitySource" Data..=)+              Prelude.<$> identitySource,+            ("identityValidationExpression" Data..=)+              Prelude.<$> identityValidationExpression,+            ("jwtConfiguration" Data..=)+              Prelude.<$> jwtConfiguration,+            ("name" Data..=) Prelude.<$> name+          ]+      )++instance Data.ToPath UpdateAuthorizer where+  toPath UpdateAuthorizer' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/authorizers/",+        Data.toBS authorizerId+      ]++instance Data.ToQuery UpdateAuthorizer where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAuthorizerResponse' smart constructor.+data UpdateAuthorizerResponse = UpdateAuthorizerResponse'+  { -- | Specifies the required credentials as an IAM role for API Gateway to+    -- invoke the authorizer. To specify an IAM role for API Gateway to assume,+    -- use the role\'s Amazon Resource Name (ARN). To use resource-based+    -- permissions on the Lambda function, don\'t specify this parameter.+    -- Supported only for REQUEST authorizers.+    authorizerCredentialsArn :: Prelude.Maybe Prelude.Text,+    -- | The authorizer identifier.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the format of the payload sent to an HTTP API Lambda+    -- authorizer. Required for HTTP API Lambda authorizers. Supported values+    -- are 1.0 and 2.0. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    authorizerPayloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | The time to live (TTL) for cached authorizer results, in seconds. If it+    -- equals 0, authorization caching is disabled. If it is greater than 0,+    -- API Gateway caches authorizer responses. The maximum value is 3600, or 1+    -- hour. Supported only for HTTP API Lambda authorizers.+    authorizerResultTtlInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The authorizer type. Specify REQUEST for a Lambda function using+    -- incoming request parameters. Specify JWT to use JSON Web Tokens+    -- (supported only for HTTP APIs).+    authorizerType :: Prelude.Maybe AuthorizerType,+    -- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+    -- authorizers, this must be a well-formed Lambda function URI, for+    -- example,+    -- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+    -- In general, the URI has this form:+    -- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+    -- is the same as the region hosting the Lambda function, path indicates+    -- that the remaining substring in the URI should be treated as the path to+    -- the resource, including the initial \/. For Lambda functions, this is+    -- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+    -- Supported only for REQUEST authorizers.+    authorizerUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether a Lambda authorizer returns a response in a simple+    -- format. If enabled, the Lambda authorizer can return a boolean value+    -- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+    -- see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+    enableSimpleResponses :: Prelude.Maybe Prelude.Bool,+    -- | The identity source for which authorization is requested.+    --+    -- For a REQUEST authorizer, this is optional. The value is a set of one or+    -- more mapping expressions of the specified request parameters. The+    -- identity source can be headers, query string parameters, stage+    -- variables, and context parameters. For example, if an Auth header and a+    -- Name query string parameter are defined as identity sources, this value+    -- is route.request.header.Auth, route.request.querystring.Name for+    -- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+    -- \$, for example, $request.header.Auth, $request.querystring.Name. These+    -- parameters are used to perform runtime validation for Lambda-based+    -- authorizers by verifying all of the identity-related request parameters+    -- are present in the request, not null, and non-empty. Only when this is+    -- true does the authorizer invoke the authorizer Lambda function.+    -- Otherwise, it returns a 401 Unauthorized response without calling the+    -- Lambda function. For HTTP APIs, identity sources are also used as the+    -- cache key when caching is enabled. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+    --+    -- For JWT, a single entry that specifies where to extract the JSON Web+    -- Token (JWT) from inbound requests. Currently only header-based and query+    -- parameter-based selections are supported, for example+    -- \$request.header.Authorization.+    identitySource :: Prelude.Maybe [Prelude.Text],+    -- | The validation expression does not apply to the REQUEST authorizer.+    identityValidationExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the configuration of a JWT authorizer. Required for the JWT+    -- authorizer type. Supported only for HTTP APIs.+    jwtConfiguration :: Prelude.Maybe JWTConfiguration,+    -- | The name of the authorizer.+    name :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAuthorizerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorizerCredentialsArn', 'updateAuthorizerResponse_authorizerCredentialsArn' - Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+--+-- 'authorizerId', 'updateAuthorizerResponse_authorizerId' - The authorizer identifier.+--+-- 'authorizerPayloadFormatVersion', 'updateAuthorizerResponse_authorizerPayloadFormatVersion' - Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- 'authorizerResultTtlInSeconds', 'updateAuthorizerResponse_authorizerResultTtlInSeconds' - The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+--+-- 'authorizerType', 'updateAuthorizerResponse_authorizerType' - The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+--+-- 'authorizerUri', 'updateAuthorizerResponse_authorizerUri' - The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+--+-- 'enableSimpleResponses', 'updateAuthorizerResponse_enableSimpleResponses' - Specifies whether a Lambda authorizer returns a response in a simple+-- format. If enabled, the Lambda authorizer can return a boolean value+-- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+-- see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+--+-- 'identitySource', 'updateAuthorizerResponse_identitySource' - The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+--+-- 'identityValidationExpression', 'updateAuthorizerResponse_identityValidationExpression' - The validation expression does not apply to the REQUEST authorizer.+--+-- 'jwtConfiguration', 'updateAuthorizerResponse_jwtConfiguration' - Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+--+-- 'name', 'updateAuthorizerResponse_name' - The name of the authorizer.+--+-- 'httpStatus', 'updateAuthorizerResponse_httpStatus' - The response's http status code.+newUpdateAuthorizerResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAuthorizerResponse+newUpdateAuthorizerResponse pHttpStatus_ =+  UpdateAuthorizerResponse'+    { authorizerCredentialsArn =+        Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      authorizerPayloadFormatVersion = Prelude.Nothing,+      authorizerResultTtlInSeconds = Prelude.Nothing,+      authorizerType = Prelude.Nothing,+      authorizerUri = Prelude.Nothing,+      enableSimpleResponses = Prelude.Nothing,+      identitySource = Prelude.Nothing,+      identityValidationExpression = Prelude.Nothing,+      jwtConfiguration = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies the required credentials as an IAM role for API Gateway to+-- invoke the authorizer. To specify an IAM role for API Gateway to assume,+-- use the role\'s Amazon Resource Name (ARN). To use resource-based+-- permissions on the Lambda function, don\'t specify this parameter.+-- Supported only for REQUEST authorizers.+updateAuthorizerResponse_authorizerCredentialsArn :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe Prelude.Text)+updateAuthorizerResponse_authorizerCredentialsArn = Lens.lens (\UpdateAuthorizerResponse' {authorizerCredentialsArn} -> authorizerCredentialsArn) (\s@UpdateAuthorizerResponse' {} a -> s {authorizerCredentialsArn = a} :: UpdateAuthorizerResponse)++-- | The authorizer identifier.+updateAuthorizerResponse_authorizerId :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe Prelude.Text)+updateAuthorizerResponse_authorizerId = Lens.lens (\UpdateAuthorizerResponse' {authorizerId} -> authorizerId) (\s@UpdateAuthorizerResponse' {} a -> s {authorizerId = a} :: UpdateAuthorizerResponse)++-- | Specifies the format of the payload sent to an HTTP API Lambda+-- authorizer. Required for HTTP API Lambda authorizers. Supported values+-- are 1.0 and 2.0. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+updateAuthorizerResponse_authorizerPayloadFormatVersion :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe Prelude.Text)+updateAuthorizerResponse_authorizerPayloadFormatVersion = Lens.lens (\UpdateAuthorizerResponse' {authorizerPayloadFormatVersion} -> authorizerPayloadFormatVersion) (\s@UpdateAuthorizerResponse' {} a -> s {authorizerPayloadFormatVersion = a} :: UpdateAuthorizerResponse)++-- | The time to live (TTL) for cached authorizer results, in seconds. If it+-- equals 0, authorization caching is disabled. If it is greater than 0,+-- API Gateway caches authorizer responses. The maximum value is 3600, or 1+-- hour. Supported only for HTTP API Lambda authorizers.+updateAuthorizerResponse_authorizerResultTtlInSeconds :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe Prelude.Natural)+updateAuthorizerResponse_authorizerResultTtlInSeconds = Lens.lens (\UpdateAuthorizerResponse' {authorizerResultTtlInSeconds} -> authorizerResultTtlInSeconds) (\s@UpdateAuthorizerResponse' {} a -> s {authorizerResultTtlInSeconds = a} :: UpdateAuthorizerResponse)++-- | The authorizer type. Specify REQUEST for a Lambda function using+-- incoming request parameters. Specify JWT to use JSON Web Tokens+-- (supported only for HTTP APIs).+updateAuthorizerResponse_authorizerType :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe AuthorizerType)+updateAuthorizerResponse_authorizerType = Lens.lens (\UpdateAuthorizerResponse' {authorizerType} -> authorizerType) (\s@UpdateAuthorizerResponse' {} a -> s {authorizerType = a} :: UpdateAuthorizerResponse)++-- | The authorizer\'s Uniform Resource Identifier (URI). For REQUEST+-- authorizers, this must be a well-formed Lambda function URI, for+-- example,+-- arn:aws:apigateway:us-west-2:lambda:path\/2015-03-31\/functions\/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}\/invocations.+-- In general, the URI has this form:+-- arn:aws:apigateway:{region}:lambda:path\/{service_api} , where {region}+-- is the same as the region hosting the Lambda function, path indicates+-- that the remaining substring in the URI should be treated as the path to+-- the resource, including the initial \/. For Lambda functions, this is+-- usually of the form \/2015-03-31\/functions\/[FunctionARN]\/invocations.+-- Supported only for REQUEST authorizers.+updateAuthorizerResponse_authorizerUri :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe Prelude.Text)+updateAuthorizerResponse_authorizerUri = Lens.lens (\UpdateAuthorizerResponse' {authorizerUri} -> authorizerUri) (\s@UpdateAuthorizerResponse' {} a -> s {authorizerUri = a} :: UpdateAuthorizerResponse)++-- | Specifies whether a Lambda authorizer returns a response in a simple+-- format. If enabled, the Lambda authorizer can return a boolean value+-- instead of an IAM policy. Supported only for HTTP APIs. To learn more,+-- see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>+updateAuthorizerResponse_enableSimpleResponses :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe Prelude.Bool)+updateAuthorizerResponse_enableSimpleResponses = Lens.lens (\UpdateAuthorizerResponse' {enableSimpleResponses} -> enableSimpleResponses) (\s@UpdateAuthorizerResponse' {} a -> s {enableSimpleResponses = a} :: UpdateAuthorizerResponse)++-- | The identity source for which authorization is requested.+--+-- For a REQUEST authorizer, this is optional. The value is a set of one or+-- more mapping expressions of the specified request parameters. The+-- identity source can be headers, query string parameters, stage+-- variables, and context parameters. For example, if an Auth header and a+-- Name query string parameter are defined as identity sources, this value+-- is route.request.header.Auth, route.request.querystring.Name for+-- WebSocket APIs. For HTTP APIs, use selection expressions prefixed with+-- \$, for example, $request.header.Auth, $request.querystring.Name. These+-- parameters are used to perform runtime validation for Lambda-based+-- authorizers by verifying all of the identity-related request parameters+-- are present in the request, not null, and non-empty. Only when this is+-- true does the authorizer invoke the authorizer Lambda function.+-- Otherwise, it returns a 401 Unauthorized response without calling the+-- Lambda function. For HTTP APIs, identity sources are also used as the+-- cache key when caching is enabled. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html Working with AWS Lambda authorizers for HTTP APIs>.+--+-- For JWT, a single entry that specifies where to extract the JSON Web+-- Token (JWT) from inbound requests. Currently only header-based and query+-- parameter-based selections are supported, for example+-- \$request.header.Authorization.+updateAuthorizerResponse_identitySource :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe [Prelude.Text])+updateAuthorizerResponse_identitySource = Lens.lens (\UpdateAuthorizerResponse' {identitySource} -> identitySource) (\s@UpdateAuthorizerResponse' {} a -> s {identitySource = a} :: UpdateAuthorizerResponse) Prelude.. Lens.mapping Lens.coerced++-- | The validation expression does not apply to the REQUEST authorizer.+updateAuthorizerResponse_identityValidationExpression :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe Prelude.Text)+updateAuthorizerResponse_identityValidationExpression = Lens.lens (\UpdateAuthorizerResponse' {identityValidationExpression} -> identityValidationExpression) (\s@UpdateAuthorizerResponse' {} a -> s {identityValidationExpression = a} :: UpdateAuthorizerResponse)++-- | Represents the configuration of a JWT authorizer. Required for the JWT+-- authorizer type. Supported only for HTTP APIs.+updateAuthorizerResponse_jwtConfiguration :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe JWTConfiguration)+updateAuthorizerResponse_jwtConfiguration = Lens.lens (\UpdateAuthorizerResponse' {jwtConfiguration} -> jwtConfiguration) (\s@UpdateAuthorizerResponse' {} a -> s {jwtConfiguration = a} :: UpdateAuthorizerResponse)++-- | The name of the authorizer.+updateAuthorizerResponse_name :: Lens.Lens' UpdateAuthorizerResponse (Prelude.Maybe Prelude.Text)+updateAuthorizerResponse_name = Lens.lens (\UpdateAuthorizerResponse' {name} -> name) (\s@UpdateAuthorizerResponse' {} a -> s {name = a} :: UpdateAuthorizerResponse)++-- | The response's http status code.+updateAuthorizerResponse_httpStatus :: Lens.Lens' UpdateAuthorizerResponse Prelude.Int+updateAuthorizerResponse_httpStatus = Lens.lens (\UpdateAuthorizerResponse' {httpStatus} -> httpStatus) (\s@UpdateAuthorizerResponse' {} a -> s {httpStatus = a} :: UpdateAuthorizerResponse)++instance Prelude.NFData UpdateAuthorizerResponse where+  rnf UpdateAuthorizerResponse' {..} =+    Prelude.rnf authorizerCredentialsArn+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf authorizerPayloadFormatVersion+      `Prelude.seq` Prelude.rnf authorizerResultTtlInSeconds+      `Prelude.seq` Prelude.rnf authorizerType+      `Prelude.seq` Prelude.rnf authorizerUri+      `Prelude.seq` Prelude.rnf enableSimpleResponses+      `Prelude.seq` Prelude.rnf identitySource+      `Prelude.seq` Prelude.rnf identityValidationExpression+      `Prelude.seq` Prelude.rnf jwtConfiguration+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateDeployment.hs view
@@ -0,0 +1,262 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.UpdateDeployment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a Deployment.+module Amazonka.ApiGatewayV2.UpdateDeployment+  ( -- * Creating a Request+    UpdateDeployment (..),+    newUpdateDeployment,++    -- * Request Lenses+    updateDeployment_description,+    updateDeployment_apiId,+    updateDeployment_deploymentId,++    -- * Destructuring the Response+    UpdateDeploymentResponse (..),+    newUpdateDeploymentResponse,++    -- * Response Lenses+    updateDeploymentResponse_autoDeployed,+    updateDeploymentResponse_createdDate,+    updateDeploymentResponse_deploymentId,+    updateDeploymentResponse_deploymentStatus,+    updateDeploymentResponse_deploymentStatusMessage,+    updateDeploymentResponse_description,+    updateDeploymentResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates a Deployment.+--+-- /See:/ 'newUpdateDeployment' smart constructor.+data UpdateDeployment = UpdateDeployment'+  { -- | The description for the deployment resource.+    description :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The deployment ID.+    deploymentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateDeployment_description' - The description for the deployment resource.+--+-- 'apiId', 'updateDeployment_apiId' - The API identifier.+--+-- 'deploymentId', 'updateDeployment_deploymentId' - The deployment ID.+newUpdateDeployment ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'deploymentId'+  Prelude.Text ->+  UpdateDeployment+newUpdateDeployment pApiId_ pDeploymentId_ =+  UpdateDeployment'+    { description = Prelude.Nothing,+      apiId = pApiId_,+      deploymentId = pDeploymentId_+    }++-- | The description for the deployment resource.+updateDeployment_description :: Lens.Lens' UpdateDeployment (Prelude.Maybe Prelude.Text)+updateDeployment_description = Lens.lens (\UpdateDeployment' {description} -> description) (\s@UpdateDeployment' {} a -> s {description = a} :: UpdateDeployment)++-- | The API identifier.+updateDeployment_apiId :: Lens.Lens' UpdateDeployment Prelude.Text+updateDeployment_apiId = Lens.lens (\UpdateDeployment' {apiId} -> apiId) (\s@UpdateDeployment' {} a -> s {apiId = a} :: UpdateDeployment)++-- | The deployment ID.+updateDeployment_deploymentId :: Lens.Lens' UpdateDeployment Prelude.Text+updateDeployment_deploymentId = Lens.lens (\UpdateDeployment' {deploymentId} -> deploymentId) (\s@UpdateDeployment' {} a -> s {deploymentId = a} :: UpdateDeployment)++instance Core.AWSRequest UpdateDeployment where+  type+    AWSResponse UpdateDeployment =+      UpdateDeploymentResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDeploymentResponse'+            Prelude.<$> (x Data..?> "autoDeployed")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "deploymentId")+            Prelude.<*> (x Data..?> "deploymentStatus")+            Prelude.<*> (x Data..?> "deploymentStatusMessage")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDeployment where+  hashWithSalt _salt UpdateDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` deploymentId++instance Prelude.NFData UpdateDeployment where+  rnf UpdateDeployment' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf deploymentId++instance Data.ToHeaders UpdateDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDeployment where+  toJSON UpdateDeployment' {..} =+    Data.object+      ( Prelude.catMaybes+          [("description" Data..=) Prelude.<$> description]+      )++instance Data.ToPath UpdateDeployment where+  toPath UpdateDeployment' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/deployments/",+        Data.toBS deploymentId+      ]++instance Data.ToQuery UpdateDeployment where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDeploymentResponse' smart constructor.+data UpdateDeploymentResponse = UpdateDeploymentResponse'+  { -- | Specifies whether a deployment was automatically released.+    autoDeployed :: Prelude.Maybe Prelude.Bool,+    -- | The date and time when the Deployment resource was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The identifier for the deployment.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The status of the deployment: PENDING, FAILED, or SUCCEEDED.+    deploymentStatus :: Prelude.Maybe DeploymentStatus,+    -- | May contain additional feedback on the status of an API deployment.+    deploymentStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The description for the deployment.+    description :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoDeployed', 'updateDeploymentResponse_autoDeployed' - Specifies whether a deployment was automatically released.+--+-- 'createdDate', 'updateDeploymentResponse_createdDate' - The date and time when the Deployment resource was created.+--+-- 'deploymentId', 'updateDeploymentResponse_deploymentId' - The identifier for the deployment.+--+-- 'deploymentStatus', 'updateDeploymentResponse_deploymentStatus' - The status of the deployment: PENDING, FAILED, or SUCCEEDED.+--+-- 'deploymentStatusMessage', 'updateDeploymentResponse_deploymentStatusMessage' - May contain additional feedback on the status of an API deployment.+--+-- 'description', 'updateDeploymentResponse_description' - The description for the deployment.+--+-- 'httpStatus', 'updateDeploymentResponse_httpStatus' - The response's http status code.+newUpdateDeploymentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDeploymentResponse+newUpdateDeploymentResponse pHttpStatus_ =+  UpdateDeploymentResponse'+    { autoDeployed =+        Prelude.Nothing,+      createdDate = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      deploymentStatus = Prelude.Nothing,+      deploymentStatusMessage = Prelude.Nothing,+      description = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether a deployment was automatically released.+updateDeploymentResponse_autoDeployed :: Lens.Lens' UpdateDeploymentResponse (Prelude.Maybe Prelude.Bool)+updateDeploymentResponse_autoDeployed = Lens.lens (\UpdateDeploymentResponse' {autoDeployed} -> autoDeployed) (\s@UpdateDeploymentResponse' {} a -> s {autoDeployed = a} :: UpdateDeploymentResponse)++-- | The date and time when the Deployment resource was created.+updateDeploymentResponse_createdDate :: Lens.Lens' UpdateDeploymentResponse (Prelude.Maybe Prelude.UTCTime)+updateDeploymentResponse_createdDate = Lens.lens (\UpdateDeploymentResponse' {createdDate} -> createdDate) (\s@UpdateDeploymentResponse' {} a -> s {createdDate = a} :: UpdateDeploymentResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier for the deployment.+updateDeploymentResponse_deploymentId :: Lens.Lens' UpdateDeploymentResponse (Prelude.Maybe Prelude.Text)+updateDeploymentResponse_deploymentId = Lens.lens (\UpdateDeploymentResponse' {deploymentId} -> deploymentId) (\s@UpdateDeploymentResponse' {} a -> s {deploymentId = a} :: UpdateDeploymentResponse)++-- | The status of the deployment: PENDING, FAILED, or SUCCEEDED.+updateDeploymentResponse_deploymentStatus :: Lens.Lens' UpdateDeploymentResponse (Prelude.Maybe DeploymentStatus)+updateDeploymentResponse_deploymentStatus = Lens.lens (\UpdateDeploymentResponse' {deploymentStatus} -> deploymentStatus) (\s@UpdateDeploymentResponse' {} a -> s {deploymentStatus = a} :: UpdateDeploymentResponse)++-- | May contain additional feedback on the status of an API deployment.+updateDeploymentResponse_deploymentStatusMessage :: Lens.Lens' UpdateDeploymentResponse (Prelude.Maybe Prelude.Text)+updateDeploymentResponse_deploymentStatusMessage = Lens.lens (\UpdateDeploymentResponse' {deploymentStatusMessage} -> deploymentStatusMessage) (\s@UpdateDeploymentResponse' {} a -> s {deploymentStatusMessage = a} :: UpdateDeploymentResponse)++-- | The description for the deployment.+updateDeploymentResponse_description :: Lens.Lens' UpdateDeploymentResponse (Prelude.Maybe Prelude.Text)+updateDeploymentResponse_description = Lens.lens (\UpdateDeploymentResponse' {description} -> description) (\s@UpdateDeploymentResponse' {} a -> s {description = a} :: UpdateDeploymentResponse)++-- | The response's http status code.+updateDeploymentResponse_httpStatus :: Lens.Lens' UpdateDeploymentResponse Prelude.Int+updateDeploymentResponse_httpStatus = Lens.lens (\UpdateDeploymentResponse' {httpStatus} -> httpStatus) (\s@UpdateDeploymentResponse' {} a -> s {httpStatus = a} :: UpdateDeploymentResponse)++instance Prelude.NFData UpdateDeploymentResponse where+  rnf UpdateDeploymentResponse' {..} =+    Prelude.rnf autoDeployed+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf deploymentStatus+      `Prelude.seq` Prelude.rnf deploymentStatusMessage+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateDomainName.hs view
@@ -0,0 +1,252 @@+{-# 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.ApiGatewayV2.UpdateDomainName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a domain name.+module Amazonka.ApiGatewayV2.UpdateDomainName+  ( -- * Creating a Request+    UpdateDomainName (..),+    newUpdateDomainName,++    -- * Request Lenses+    updateDomainName_domainNameConfigurations,+    updateDomainName_mutualTlsAuthentication,+    updateDomainName_domainName,++    -- * Destructuring the Response+    UpdateDomainNameResponse (..),+    newUpdateDomainNameResponse,++    -- * Response Lenses+    updateDomainNameResponse_apiMappingSelectionExpression,+    updateDomainNameResponse_domainName,+    updateDomainNameResponse_domainNameConfigurations,+    updateDomainNameResponse_mutualTlsAuthentication,+    updateDomainNameResponse_tags,+    updateDomainNameResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates a DomainName.+--+-- /See:/ 'newUpdateDomainName' smart constructor.+data UpdateDomainName = UpdateDomainName'+  { -- | The domain name configurations.+    domainNameConfigurations :: Prelude.Maybe [DomainNameConfiguration],+    -- | The mutual TLS authentication configuration for a custom domain name.+    mutualTlsAuthentication :: Prelude.Maybe MutualTlsAuthenticationInput,+    -- | The domain name.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDomainName' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainNameConfigurations', 'updateDomainName_domainNameConfigurations' - The domain name configurations.+--+-- 'mutualTlsAuthentication', 'updateDomainName_mutualTlsAuthentication' - The mutual TLS authentication configuration for a custom domain name.+--+-- 'domainName', 'updateDomainName_domainName' - The domain name.+newUpdateDomainName ::+  -- | 'domainName'+  Prelude.Text ->+  UpdateDomainName+newUpdateDomainName pDomainName_ =+  UpdateDomainName'+    { domainNameConfigurations =+        Prelude.Nothing,+      mutualTlsAuthentication = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | The domain name configurations.+updateDomainName_domainNameConfigurations :: Lens.Lens' UpdateDomainName (Prelude.Maybe [DomainNameConfiguration])+updateDomainName_domainNameConfigurations = Lens.lens (\UpdateDomainName' {domainNameConfigurations} -> domainNameConfigurations) (\s@UpdateDomainName' {} a -> s {domainNameConfigurations = a} :: UpdateDomainName) Prelude.. Lens.mapping Lens.coerced++-- | The mutual TLS authentication configuration for a custom domain name.+updateDomainName_mutualTlsAuthentication :: Lens.Lens' UpdateDomainName (Prelude.Maybe MutualTlsAuthenticationInput)+updateDomainName_mutualTlsAuthentication = Lens.lens (\UpdateDomainName' {mutualTlsAuthentication} -> mutualTlsAuthentication) (\s@UpdateDomainName' {} a -> s {mutualTlsAuthentication = a} :: UpdateDomainName)++-- | The domain name.+updateDomainName_domainName :: Lens.Lens' UpdateDomainName Prelude.Text+updateDomainName_domainName = Lens.lens (\UpdateDomainName' {domainName} -> domainName) (\s@UpdateDomainName' {} a -> s {domainName = a} :: UpdateDomainName)++instance Core.AWSRequest UpdateDomainName where+  type+    AWSResponse UpdateDomainName =+      UpdateDomainNameResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDomainNameResponse'+            Prelude.<$> (x Data..?> "apiMappingSelectionExpression")+            Prelude.<*> (x Data..?> "domainName")+            Prelude.<*> ( x+                            Data..?> "domainNameConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "mutualTlsAuthentication")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDomainName where+  hashWithSalt _salt UpdateDomainName' {..} =+    _salt+      `Prelude.hashWithSalt` domainNameConfigurations+      `Prelude.hashWithSalt` mutualTlsAuthentication+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData UpdateDomainName where+  rnf UpdateDomainName' {..} =+    Prelude.rnf domainNameConfigurations+      `Prelude.seq` Prelude.rnf mutualTlsAuthentication+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders UpdateDomainName where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDomainName where+  toJSON UpdateDomainName' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("domainNameConfigurations" Data..=)+              Prelude.<$> domainNameConfigurations,+            ("mutualTlsAuthentication" Data..=)+              Prelude.<$> mutualTlsAuthentication+          ]+      )++instance Data.ToPath UpdateDomainName where+  toPath UpdateDomainName' {..} =+    Prelude.mconcat+      ["/v2/domainnames/", Data.toBS domainName]++instance Data.ToQuery UpdateDomainName where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDomainNameResponse' smart constructor.+data UpdateDomainNameResponse = UpdateDomainNameResponse'+  { -- | The API mapping selection expression.+    apiMappingSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The name of the DomainName resource.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | The domain name configurations.+    domainNameConfigurations :: Prelude.Maybe [DomainNameConfiguration],+    -- | The mutual TLS authentication configuration for a custom domain name.+    mutualTlsAuthentication :: Prelude.Maybe MutualTlsAuthentication,+    -- | The collection of tags associated with a domain name.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDomainNameResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiMappingSelectionExpression', 'updateDomainNameResponse_apiMappingSelectionExpression' - The API mapping selection expression.+--+-- 'domainName', 'updateDomainNameResponse_domainName' - The name of the DomainName resource.+--+-- 'domainNameConfigurations', 'updateDomainNameResponse_domainNameConfigurations' - The domain name configurations.+--+-- 'mutualTlsAuthentication', 'updateDomainNameResponse_mutualTlsAuthentication' - The mutual TLS authentication configuration for a custom domain name.+--+-- 'tags', 'updateDomainNameResponse_tags' - The collection of tags associated with a domain name.+--+-- 'httpStatus', 'updateDomainNameResponse_httpStatus' - The response's http status code.+newUpdateDomainNameResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDomainNameResponse+newUpdateDomainNameResponse pHttpStatus_ =+  UpdateDomainNameResponse'+    { apiMappingSelectionExpression =+        Prelude.Nothing,+      domainName = Prelude.Nothing,+      domainNameConfigurations = Prelude.Nothing,+      mutualTlsAuthentication = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The API mapping selection expression.+updateDomainNameResponse_apiMappingSelectionExpression :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe Prelude.Text)+updateDomainNameResponse_apiMappingSelectionExpression = Lens.lens (\UpdateDomainNameResponse' {apiMappingSelectionExpression} -> apiMappingSelectionExpression) (\s@UpdateDomainNameResponse' {} a -> s {apiMappingSelectionExpression = a} :: UpdateDomainNameResponse)++-- | The name of the DomainName resource.+updateDomainNameResponse_domainName :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe Prelude.Text)+updateDomainNameResponse_domainName = Lens.lens (\UpdateDomainNameResponse' {domainName} -> domainName) (\s@UpdateDomainNameResponse' {} a -> s {domainName = a} :: UpdateDomainNameResponse)++-- | The domain name configurations.+updateDomainNameResponse_domainNameConfigurations :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe [DomainNameConfiguration])+updateDomainNameResponse_domainNameConfigurations = Lens.lens (\UpdateDomainNameResponse' {domainNameConfigurations} -> domainNameConfigurations) (\s@UpdateDomainNameResponse' {} a -> s {domainNameConfigurations = a} :: UpdateDomainNameResponse) Prelude.. Lens.mapping Lens.coerced++-- | The mutual TLS authentication configuration for a custom domain name.+updateDomainNameResponse_mutualTlsAuthentication :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe MutualTlsAuthentication)+updateDomainNameResponse_mutualTlsAuthentication = Lens.lens (\UpdateDomainNameResponse' {mutualTlsAuthentication} -> mutualTlsAuthentication) (\s@UpdateDomainNameResponse' {} a -> s {mutualTlsAuthentication = a} :: UpdateDomainNameResponse)++-- | The collection of tags associated with a domain name.+updateDomainNameResponse_tags :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateDomainNameResponse_tags = Lens.lens (\UpdateDomainNameResponse' {tags} -> tags) (\s@UpdateDomainNameResponse' {} a -> s {tags = a} :: UpdateDomainNameResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateDomainNameResponse_httpStatus :: Lens.Lens' UpdateDomainNameResponse Prelude.Int+updateDomainNameResponse_httpStatus = Lens.lens (\UpdateDomainNameResponse' {httpStatus} -> httpStatus) (\s@UpdateDomainNameResponse' {} a -> s {httpStatus = a} :: UpdateDomainNameResponse)++instance Prelude.NFData UpdateDomainNameResponse where+  rnf UpdateDomainNameResponse' {..} =+    Prelude.rnf apiMappingSelectionExpression+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf domainNameConfigurations+      `Prelude.seq` Prelude.rnf mutualTlsAuthentication+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateIntegration.hs view
@@ -0,0 +1,1357 @@+{-# 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.ApiGatewayV2.UpdateIntegration+-- 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 Integration.+module Amazonka.ApiGatewayV2.UpdateIntegration+  ( -- * Creating a Request+    UpdateIntegration (..),+    newUpdateIntegration,++    -- * Request Lenses+    updateIntegration_connectionId,+    updateIntegration_connectionType,+    updateIntegration_contentHandlingStrategy,+    updateIntegration_credentialsArn,+    updateIntegration_description,+    updateIntegration_integrationMethod,+    updateIntegration_integrationSubtype,+    updateIntegration_integrationType,+    updateIntegration_integrationUri,+    updateIntegration_passthroughBehavior,+    updateIntegration_payloadFormatVersion,+    updateIntegration_requestParameters,+    updateIntegration_requestTemplates,+    updateIntegration_responseParameters,+    updateIntegration_templateSelectionExpression,+    updateIntegration_timeoutInMillis,+    updateIntegration_tlsConfig,+    updateIntegration_apiId,+    updateIntegration_integrationId,++    -- * Destructuring the Response+    UpdateIntegrationResponse' (..),+    newUpdateIntegrationResponse',++    -- * Response Lenses+    updateIntegrationResponse'_apiGatewayManaged,+    updateIntegrationResponse'_connectionId,+    updateIntegrationResponse'_connectionType,+    updateIntegrationResponse'_contentHandlingStrategy,+    updateIntegrationResponse'_credentialsArn,+    updateIntegrationResponse'_description,+    updateIntegrationResponse'_integrationId,+    updateIntegrationResponse'_integrationMethod,+    updateIntegrationResponse'_integrationResponseSelectionExpression,+    updateIntegrationResponse'_integrationSubtype,+    updateIntegrationResponse'_integrationType,+    updateIntegrationResponse'_integrationUri,+    updateIntegrationResponse'_passthroughBehavior,+    updateIntegrationResponse'_payloadFormatVersion,+    updateIntegrationResponse'_requestParameters,+    updateIntegrationResponse'_requestTemplates,+    updateIntegrationResponse'_responseParameters,+    updateIntegrationResponse'_templateSelectionExpression,+    updateIntegrationResponse'_timeoutInMillis,+    updateIntegrationResponse'_tlsConfig,+    updateIntegrationResponse'_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates an Integration.+--+-- /See:/ 'newUpdateIntegration' smart constructor.+data UpdateIntegration = UpdateIntegration'+  { -- | The ID of the VPC link for a private integration. Supported only for+    -- HTTP APIs.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | The type of the network connection to the integration endpoint. Specify+    -- INTERNET for connections through the public routable internet or+    -- VPC_LINK for private connections between API Gateway and resources in a+    -- VPC. The default value is INTERNET.+    connectionType :: Prelude.Maybe ConnectionType,+    -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | Specifies the credentials required for the integration, if any. For AWS+    -- integrations, three options are available. To specify an IAM Role for+    -- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+    -- require that the caller\'s identity be passed through from the request,+    -- specify the string arn:aws:iam::*:user\/*. To use resource-based+    -- permissions on supported AWS services, specify null.+    credentialsArn :: Prelude.Maybe Prelude.Text,+    -- | The description of the integration+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies the integration\'s HTTP method type.+    integrationMethod :: Prelude.Maybe Prelude.Text,+    -- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+    -- service action to invoke. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+    integrationSubtype :: Prelude.Maybe Prelude.Text,+    -- | The integration type of an integration. One of the following:+    --+    -- AWS: for integrating the route or method request with an AWS service+    -- action, including the Lambda function-invoking action. With the Lambda+    -- function-invoking action, this is referred to as the Lambda custom+    -- integration. With any other AWS service action, this is known as AWS+    -- integration. Supported only for WebSocket APIs.+    --+    -- AWS_PROXY: for integrating the route or method request with a Lambda+    -- function or other AWS service action. This integration is also referred+    -- to as a Lambda proxy integration.+    --+    -- HTTP: for integrating the route or method request with an HTTP endpoint.+    -- This integration is also referred to as the HTTP custom integration.+    -- Supported only for WebSocket APIs.+    --+    -- HTTP_PROXY: for integrating the route or method request with an HTTP+    -- endpoint, with the client request passed through as-is. This is also+    -- referred to as HTTP proxy integration. For HTTP API private+    -- integrations, use an HTTP_PROXY integration.+    --+    -- MOCK: for integrating the route or method request with API Gateway as a+    -- \"loopback\" endpoint without invoking any backend. Supported only for+    -- WebSocket APIs.+    integrationType :: Prelude.Maybe IntegrationType,+    -- | For a Lambda integration, specify the URI of a Lambda function.+    --+    -- For an HTTP integration, specify a fully-qualified URL.+    --+    -- For an HTTP API private integration, specify the ARN of an Application+    -- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+    -- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+    -- uses DiscoverInstances to identify resources. You can use query+    -- parameters to target specific resources. To learn more, see+    -- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+    -- For private integrations, all resources must be owned by the same AWS+    -- account.+    integrationUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies the pass-through behavior for incoming requests based on the+    -- Content-Type header in the request, and the available mapping templates+    -- specified as the requestTemplates property on the Integration resource.+    -- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+    -- NEVER. Supported only for WebSocket APIs.+    --+    -- WHEN_NO_MATCH passes the request body for unmapped content types through+    -- to the integration backend without transformation.+    --+    -- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+    -- Type response.+    --+    -- WHEN_NO_TEMPLATES allows pass-through when the integration has no+    -- content types mapped to templates. However, if there is at least one+    -- content type defined, unmapped content types will be rejected with the+    -- same HTTP 415 Unsupported Media Type response.+    passthroughBehavior :: Prelude.Maybe PassthroughBehavior,+    -- | Specifies the format of the payload sent to an integration. Required for+    -- HTTP APIs.+    payloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | For WebSocket APIs, a key-value map specifying request parameters that+    -- are passed from the method request to the backend. The key is an+    -- integration request parameter name and the associated value is a method+    -- request parameter value or static value that must be enclosed within+    -- single quotes and pre-encoded as required by the backend. The method+    -- request parameter value must match the pattern of+    -- method.request.{location}.{name} , where {location} is querystring,+    -- path, or header; and {name} must be a valid and unique method request+    -- parameter name.+    --+    -- For HTTP API integrations with a specified integrationSubtype, request+    -- parameters are a key-value map specifying parameters that are passed to+    -- AWS_PROXY integrations. You can provide static values, or map request+    -- data, stage variables, or context variables that are evaluated at+    -- runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+    --+    -- For HTTP API integrations, without a specified integrationSubtype+    -- request parameters are a key-value map specifying how to transform HTTP+    -- requests before sending them to the backend. The key should follow the+    -- pattern \<action>:\<header|querystring|path>.\<location> where action+    -- can be append, overwrite or remove. For values, you can provide static+    -- values, or map request data, stage variables, or context variables that+    -- are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping. Transforming API requests and responses>.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents a map of Velocity templates that are applied on the request+    -- payload based on the value of the Content-Type header sent by the+    -- client. The content type value is the key in this map, and the template+    -- (as a String) is the value. Supported only for WebSocket APIs.+    requestTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Supported only for HTTP APIs. You use response parameters to transform+    -- the HTTP response from a backend integration before returning the+    -- response to clients. Specify a key-value map from a selection key to+    -- response parameters. The selection key must be a valid HTTP status code+    -- within the range of 200-599. Response parameters are a key-value map.+    -- The key must match pattern \<action>:\<header>.\<location> or+    -- overwrite.statuscode. The action can be append, overwrite or remove. The+    -- value can be a static value, or map to response data, stage variables,+    -- or context variables that are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The template selection expression for the integration.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+    -- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+    -- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+    timeoutInMillis :: Prelude.Maybe Prelude.Natural,+    -- | The TLS configuration for a private integration. If you specify a TLS+    -- configuration, private integration traffic uses the HTTPS protocol.+    -- Supported only for HTTP APIs.+    tlsConfig :: Prelude.Maybe TlsConfigInput,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The integration ID.+    integrationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'connectionId', 'updateIntegration_connectionId' - The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+--+-- 'connectionType', 'updateIntegration_connectionType' - The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+--+-- 'contentHandlingStrategy', 'updateIntegration_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'credentialsArn', 'updateIntegration_credentialsArn' - Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+--+-- 'description', 'updateIntegration_description' - The description of the integration+--+-- 'integrationMethod', 'updateIntegration_integrationMethod' - Specifies the integration\'s HTTP method type.+--+-- 'integrationSubtype', 'updateIntegration_integrationSubtype' - Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+--+-- 'integrationType', 'updateIntegration_integrationType' - The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration. For HTTP API private+-- integrations, use an HTTP_PROXY integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+--+-- 'integrationUri', 'updateIntegration_integrationUri' - For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+--+-- 'passthroughBehavior', 'updateIntegration_passthroughBehavior' - Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+--+-- 'payloadFormatVersion', 'updateIntegration_payloadFormatVersion' - Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+--+-- 'requestParameters', 'updateIntegration_requestParameters' - For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API integrations, without a specified integrationSubtype+-- request parameters are a key-value map specifying how to transform HTTP+-- requests before sending them to the backend. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location> where action+-- can be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping. Transforming API requests and responses>.+--+-- 'requestTemplates', 'updateIntegration_requestTemplates' - Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+--+-- 'responseParameters', 'updateIntegration_responseParameters' - Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'templateSelectionExpression', 'updateIntegration_templateSelectionExpression' - The template selection expression for the integration.+--+-- 'timeoutInMillis', 'updateIntegration_timeoutInMillis' - Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+--+-- 'tlsConfig', 'updateIntegration_tlsConfig' - The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+--+-- 'apiId', 'updateIntegration_apiId' - The API identifier.+--+-- 'integrationId', 'updateIntegration_integrationId' - The integration ID.+newUpdateIntegration ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'integrationId'+  Prelude.Text ->+  UpdateIntegration+newUpdateIntegration pApiId_ pIntegrationId_ =+  UpdateIntegration'+    { connectionId = Prelude.Nothing,+      connectionType = Prelude.Nothing,+      contentHandlingStrategy = Prelude.Nothing,+      credentialsArn = Prelude.Nothing,+      description = Prelude.Nothing,+      integrationMethod = Prelude.Nothing,+      integrationSubtype = Prelude.Nothing,+      integrationType = Prelude.Nothing,+      integrationUri = Prelude.Nothing,+      passthroughBehavior = Prelude.Nothing,+      payloadFormatVersion = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      requestTemplates = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      templateSelectionExpression = Prelude.Nothing,+      timeoutInMillis = Prelude.Nothing,+      tlsConfig = Prelude.Nothing,+      apiId = pApiId_,+      integrationId = pIntegrationId_+    }++-- | The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+updateIntegration_connectionId :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Text)+updateIntegration_connectionId = Lens.lens (\UpdateIntegration' {connectionId} -> connectionId) (\s@UpdateIntegration' {} a -> s {connectionId = a} :: UpdateIntegration)++-- | The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+updateIntegration_connectionType :: Lens.Lens' UpdateIntegration (Prelude.Maybe ConnectionType)+updateIntegration_connectionType = Lens.lens (\UpdateIntegration' {connectionType} -> connectionType) (\s@UpdateIntegration' {} a -> s {connectionType = a} :: UpdateIntegration)++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+updateIntegration_contentHandlingStrategy :: Lens.Lens' UpdateIntegration (Prelude.Maybe ContentHandlingStrategy)+updateIntegration_contentHandlingStrategy = Lens.lens (\UpdateIntegration' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@UpdateIntegration' {} a -> s {contentHandlingStrategy = a} :: UpdateIntegration)++-- | Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+updateIntegration_credentialsArn :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Text)+updateIntegration_credentialsArn = Lens.lens (\UpdateIntegration' {credentialsArn} -> credentialsArn) (\s@UpdateIntegration' {} a -> s {credentialsArn = a} :: UpdateIntegration)++-- | The description of the integration+updateIntegration_description :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Text)+updateIntegration_description = Lens.lens (\UpdateIntegration' {description} -> description) (\s@UpdateIntegration' {} a -> s {description = a} :: UpdateIntegration)++-- | Specifies the integration\'s HTTP method type.+updateIntegration_integrationMethod :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Text)+updateIntegration_integrationMethod = Lens.lens (\UpdateIntegration' {integrationMethod} -> integrationMethod) (\s@UpdateIntegration' {} a -> s {integrationMethod = a} :: UpdateIntegration)++-- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+updateIntegration_integrationSubtype :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Text)+updateIntegration_integrationSubtype = Lens.lens (\UpdateIntegration' {integrationSubtype} -> integrationSubtype) (\s@UpdateIntegration' {} a -> s {integrationSubtype = a} :: UpdateIntegration)++-- | The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration. For HTTP API private+-- integrations, use an HTTP_PROXY integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+updateIntegration_integrationType :: Lens.Lens' UpdateIntegration (Prelude.Maybe IntegrationType)+updateIntegration_integrationType = Lens.lens (\UpdateIntegration' {integrationType} -> integrationType) (\s@UpdateIntegration' {} a -> s {integrationType = a} :: UpdateIntegration)++-- | For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+updateIntegration_integrationUri :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Text)+updateIntegration_integrationUri = Lens.lens (\UpdateIntegration' {integrationUri} -> integrationUri) (\s@UpdateIntegration' {} a -> s {integrationUri = a} :: UpdateIntegration)++-- | Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+updateIntegration_passthroughBehavior :: Lens.Lens' UpdateIntegration (Prelude.Maybe PassthroughBehavior)+updateIntegration_passthroughBehavior = Lens.lens (\UpdateIntegration' {passthroughBehavior} -> passthroughBehavior) (\s@UpdateIntegration' {} a -> s {passthroughBehavior = a} :: UpdateIntegration)++-- | Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+updateIntegration_payloadFormatVersion :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Text)+updateIntegration_payloadFormatVersion = Lens.lens (\UpdateIntegration' {payloadFormatVersion} -> payloadFormatVersion) (\s@UpdateIntegration' {} a -> s {payloadFormatVersion = a} :: UpdateIntegration)++-- | For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API integrations, without a specified integrationSubtype+-- request parameters are a key-value map specifying how to transform HTTP+-- requests before sending them to the backend. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location> where action+-- can be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping. Transforming API requests and responses>.+updateIntegration_requestParameters :: Lens.Lens' UpdateIntegration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateIntegration_requestParameters = Lens.lens (\UpdateIntegration' {requestParameters} -> requestParameters) (\s@UpdateIntegration' {} a -> s {requestParameters = a} :: UpdateIntegration) Prelude.. Lens.mapping Lens.coerced++-- | Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+updateIntegration_requestTemplates :: Lens.Lens' UpdateIntegration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateIntegration_requestTemplates = Lens.lens (\UpdateIntegration' {requestTemplates} -> requestTemplates) (\s@UpdateIntegration' {} a -> s {requestTemplates = a} :: UpdateIntegration) Prelude.. Lens.mapping Lens.coerced++-- | Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+updateIntegration_responseParameters :: Lens.Lens' UpdateIntegration (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+updateIntegration_responseParameters = Lens.lens (\UpdateIntegration' {responseParameters} -> responseParameters) (\s@UpdateIntegration' {} a -> s {responseParameters = a} :: UpdateIntegration) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expression for the integration.+updateIntegration_templateSelectionExpression :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Text)+updateIntegration_templateSelectionExpression = Lens.lens (\UpdateIntegration' {templateSelectionExpression} -> templateSelectionExpression) (\s@UpdateIntegration' {} a -> s {templateSelectionExpression = a} :: UpdateIntegration)++-- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+updateIntegration_timeoutInMillis :: Lens.Lens' UpdateIntegration (Prelude.Maybe Prelude.Natural)+updateIntegration_timeoutInMillis = Lens.lens (\UpdateIntegration' {timeoutInMillis} -> timeoutInMillis) (\s@UpdateIntegration' {} a -> s {timeoutInMillis = a} :: UpdateIntegration)++-- | The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+updateIntegration_tlsConfig :: Lens.Lens' UpdateIntegration (Prelude.Maybe TlsConfigInput)+updateIntegration_tlsConfig = Lens.lens (\UpdateIntegration' {tlsConfig} -> tlsConfig) (\s@UpdateIntegration' {} a -> s {tlsConfig = a} :: UpdateIntegration)++-- | The API identifier.+updateIntegration_apiId :: Lens.Lens' UpdateIntegration Prelude.Text+updateIntegration_apiId = Lens.lens (\UpdateIntegration' {apiId} -> apiId) (\s@UpdateIntegration' {} a -> s {apiId = a} :: UpdateIntegration)++-- | The integration ID.+updateIntegration_integrationId :: Lens.Lens' UpdateIntegration Prelude.Text+updateIntegration_integrationId = Lens.lens (\UpdateIntegration' {integrationId} -> integrationId) (\s@UpdateIntegration' {} a -> s {integrationId = a} :: UpdateIntegration)++instance Core.AWSRequest UpdateIntegration where+  type+    AWSResponse UpdateIntegration =+      UpdateIntegrationResponse'+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateIntegrationResponse''+            Prelude.<$> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "connectionId")+            Prelude.<*> (x Data..?> "connectionType")+            Prelude.<*> (x Data..?> "contentHandlingStrategy")+            Prelude.<*> (x Data..?> "credentialsArn")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "integrationId")+            Prelude.<*> (x Data..?> "integrationMethod")+            Prelude.<*> (x Data..?> "integrationResponseSelectionExpression")+            Prelude.<*> (x Data..?> "integrationSubtype")+            Prelude.<*> (x Data..?> "integrationType")+            Prelude.<*> (x Data..?> "integrationUri")+            Prelude.<*> (x Data..?> "passthroughBehavior")+            Prelude.<*> (x Data..?> "payloadFormatVersion")+            Prelude.<*> ( x+                            Data..?> "requestParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "requestTemplates"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "templateSelectionExpression")+            Prelude.<*> (x Data..?> "timeoutInMillis")+            Prelude.<*> (x Data..?> "tlsConfig")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateIntegration where+  hashWithSalt _salt UpdateIntegration' {..} =+    _salt+      `Prelude.hashWithSalt` connectionId+      `Prelude.hashWithSalt` connectionType+      `Prelude.hashWithSalt` contentHandlingStrategy+      `Prelude.hashWithSalt` credentialsArn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` integrationMethod+      `Prelude.hashWithSalt` integrationSubtype+      `Prelude.hashWithSalt` integrationType+      `Prelude.hashWithSalt` integrationUri+      `Prelude.hashWithSalt` passthroughBehavior+      `Prelude.hashWithSalt` payloadFormatVersion+      `Prelude.hashWithSalt` requestParameters+      `Prelude.hashWithSalt` requestTemplates+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` templateSelectionExpression+      `Prelude.hashWithSalt` timeoutInMillis+      `Prelude.hashWithSalt` tlsConfig+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` integrationId++instance Prelude.NFData UpdateIntegration where+  rnf UpdateIntegration' {..} =+    Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionType+      `Prelude.seq` Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf credentialsArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf integrationMethod+      `Prelude.seq` Prelude.rnf integrationSubtype+      `Prelude.seq` Prelude.rnf integrationType+      `Prelude.seq` Prelude.rnf integrationUri+      `Prelude.seq` Prelude.rnf passthroughBehavior+      `Prelude.seq` Prelude.rnf payloadFormatVersion+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf requestTemplates+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf templateSelectionExpression+      `Prelude.seq` Prelude.rnf timeoutInMillis+      `Prelude.seq` Prelude.rnf tlsConfig+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf integrationId++instance Data.ToHeaders UpdateIntegration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateIntegration where+  toJSON UpdateIntegration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("connectionId" Data..=) Prelude.<$> connectionId,+            ("connectionType" Data..=)+              Prelude.<$> connectionType,+            ("contentHandlingStrategy" Data..=)+              Prelude.<$> contentHandlingStrategy,+            ("credentialsArn" Data..=)+              Prelude.<$> credentialsArn,+            ("description" Data..=) Prelude.<$> description,+            ("integrationMethod" Data..=)+              Prelude.<$> integrationMethod,+            ("integrationSubtype" Data..=)+              Prelude.<$> integrationSubtype,+            ("integrationType" Data..=)+              Prelude.<$> integrationType,+            ("integrationUri" Data..=)+              Prelude.<$> integrationUri,+            ("passthroughBehavior" Data..=)+              Prelude.<$> passthroughBehavior,+            ("payloadFormatVersion" Data..=)+              Prelude.<$> payloadFormatVersion,+            ("requestParameters" Data..=)+              Prelude.<$> requestParameters,+            ("requestTemplates" Data..=)+              Prelude.<$> requestTemplates,+            ("responseParameters" Data..=)+              Prelude.<$> responseParameters,+            ("templateSelectionExpression" Data..=)+              Prelude.<$> templateSelectionExpression,+            ("timeoutInMillis" Data..=)+              Prelude.<$> timeoutInMillis,+            ("tlsConfig" Data..=) Prelude.<$> tlsConfig+          ]+      )++instance Data.ToPath UpdateIntegration where+  toPath UpdateIntegration' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/integrations/",+        Data.toBS integrationId+      ]++instance Data.ToQuery UpdateIntegration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateIntegrationResponse'' smart constructor.+data UpdateIntegrationResponse' = UpdateIntegrationResponse''+  { -- | Specifies whether an integration is managed by API Gateway. If you+    -- created an API using using quick create, the resulting integration is+    -- managed by API Gateway. You can update a managed integration, but you+    -- can\'t delete it.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the VPC link for a private integration. Supported only for+    -- HTTP APIs.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | The type of the network connection to the integration endpoint. Specify+    -- INTERNET for connections through the public routable internet or+    -- VPC_LINK for private connections between API Gateway and resources in a+    -- VPC. The default value is INTERNET.+    connectionType :: Prelude.Maybe ConnectionType,+    -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | Specifies the credentials required for the integration, if any. For AWS+    -- integrations, three options are available. To specify an IAM Role for+    -- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+    -- require that the caller\'s identity be passed through from the request,+    -- specify the string arn:aws:iam::*:user\/*. To use resource-based+    -- permissions on supported AWS services, specify null.+    credentialsArn :: Prelude.Maybe Prelude.Text,+    -- | Represents the description of an integration.+    description :: Prelude.Maybe Prelude.Text,+    -- | Represents the identifier of an integration.+    integrationId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the integration\'s HTTP method type.+    integrationMethod :: Prelude.Maybe Prelude.Text,+    -- | The integration response selection expression for the integration.+    -- Supported only for WebSocket APIs. See+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+    integrationResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+    -- service action to invoke. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+    integrationSubtype :: Prelude.Maybe Prelude.Text,+    -- | The integration type of an integration. One of the following:+    --+    -- AWS: for integrating the route or method request with an AWS service+    -- action, including the Lambda function-invoking action. With the Lambda+    -- function-invoking action, this is referred to as the Lambda custom+    -- integration. With any other AWS service action, this is known as AWS+    -- integration. Supported only for WebSocket APIs.+    --+    -- AWS_PROXY: for integrating the route or method request with a Lambda+    -- function or other AWS service action. This integration is also referred+    -- to as a Lambda proxy integration.+    --+    -- HTTP: for integrating the route or method request with an HTTP endpoint.+    -- This integration is also referred to as the HTTP custom integration.+    -- Supported only for WebSocket APIs.+    --+    -- HTTP_PROXY: for integrating the route or method request with an HTTP+    -- endpoint, with the client request passed through as-is. This is also+    -- referred to as HTTP proxy integration.+    --+    -- MOCK: for integrating the route or method request with API Gateway as a+    -- \"loopback\" endpoint without invoking any backend. Supported only for+    -- WebSocket APIs.+    integrationType :: Prelude.Maybe IntegrationType,+    -- | For a Lambda integration, specify the URI of a Lambda function.+    --+    -- For an HTTP integration, specify a fully-qualified URL.+    --+    -- For an HTTP API private integration, specify the ARN of an Application+    -- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+    -- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+    -- uses DiscoverInstances to identify resources. You can use query+    -- parameters to target specific resources. To learn more, see+    -- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+    -- For private integrations, all resources must be owned by the same AWS+    -- account.+    integrationUri :: Prelude.Maybe Prelude.Text,+    -- | Specifies the pass-through behavior for incoming requests based on the+    -- Content-Type header in the request, and the available mapping templates+    -- specified as the requestTemplates property on the Integration resource.+    -- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+    -- NEVER. Supported only for WebSocket APIs.+    --+    -- WHEN_NO_MATCH passes the request body for unmapped content types through+    -- to the integration backend without transformation.+    --+    -- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+    -- Type response.+    --+    -- WHEN_NO_TEMPLATES allows pass-through when the integration has no+    -- content types mapped to templates. However, if there is at least one+    -- content type defined, unmapped content types will be rejected with the+    -- same HTTP 415 Unsupported Media Type response.+    passthroughBehavior :: Prelude.Maybe PassthroughBehavior,+    -- | Specifies the format of the payload sent to an integration. Required for+    -- HTTP APIs.+    payloadFormatVersion :: Prelude.Maybe Prelude.Text,+    -- | For WebSocket APIs, a key-value map specifying request parameters that+    -- are passed from the method request to the backend. The key is an+    -- integration request parameter name and the associated value is a method+    -- request parameter value or static value that must be enclosed within+    -- single quotes and pre-encoded as required by the backend. The method+    -- request parameter value must match the pattern of+    -- method.request.{location}.{name} , where {location} is querystring,+    -- path, or header; and {name} must be a valid and unique method request+    -- parameter name.+    --+    -- For HTTP API integrations with a specified integrationSubtype, request+    -- parameters are a key-value map specifying parameters that are passed to+    -- AWS_PROXY integrations. You can provide static values, or map request+    -- data, stage variables, or context variables that are evaluated at+    -- runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+    --+    -- For HTTP API itegrations, without a specified integrationSubtype request+    -- parameters are a key-value map specifying how to transform HTTP requests+    -- before sending them to backend integrations. The key should follow the+    -- pattern \<action>:\<header|querystring|path>.\<location>. The action can+    -- be append, overwrite or remove. For values, you can provide static+    -- values, or map request data, stage variables, or context variables that+    -- are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents a map of Velocity templates that are applied on the request+    -- payload based on the value of the Content-Type header sent by the+    -- client. The content type value is the key in this map, and the template+    -- (as a String) is the value. Supported only for WebSocket APIs.+    requestTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Supported only for HTTP APIs. You use response parameters to transform+    -- the HTTP response from a backend integration before returning the+    -- response to clients. Specify a key-value map from a selection key to+    -- response parameters. The selection key must be a valid HTTP status code+    -- within the range of 200-599. Response parameters are a key-value map.+    -- The key must match pattern \<action>:\<header>.\<location> or+    -- overwrite.statuscode. The action can be append, overwrite or remove. The+    -- value can be a static value, or map to response data, stage variables,+    -- or context variables that are evaluated at runtime. To learn more, see+    -- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The template selection expression for the integration. Supported only+    -- for WebSocket APIs.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+    -- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+    -- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+    timeoutInMillis :: Prelude.Maybe Prelude.Natural,+    -- | The TLS configuration for a private integration. If you specify a TLS+    -- configuration, private integration traffic uses the HTTPS protocol.+    -- Supported only for HTTP APIs.+    tlsConfig :: Prelude.Maybe TlsConfig,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIntegrationResponse'' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayManaged', 'updateIntegrationResponse'_apiGatewayManaged' - Specifies whether an integration is managed by API Gateway. If you+-- created an API using using quick create, the resulting integration is+-- managed by API Gateway. You can update a managed integration, but you+-- can\'t delete it.+--+-- 'connectionId', 'updateIntegrationResponse'_connectionId' - The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+--+-- 'connectionType', 'updateIntegrationResponse'_connectionType' - The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+--+-- 'contentHandlingStrategy', 'updateIntegrationResponse'_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'credentialsArn', 'updateIntegrationResponse'_credentialsArn' - Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+--+-- 'description', 'updateIntegrationResponse'_description' - Represents the description of an integration.+--+-- 'integrationId', 'updateIntegrationResponse'_integrationId' - Represents the identifier of an integration.+--+-- 'integrationMethod', 'updateIntegrationResponse'_integrationMethod' - Specifies the integration\'s HTTP method type.+--+-- 'integrationResponseSelectionExpression', 'updateIntegrationResponse'_integrationResponseSelectionExpression' - The integration response selection expression for the integration.+-- Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+--+-- 'integrationSubtype', 'updateIntegrationResponse'_integrationSubtype' - Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+--+-- 'integrationType', 'updateIntegrationResponse'_integrationType' - The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+--+-- 'integrationUri', 'updateIntegrationResponse'_integrationUri' - For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+--+-- 'passthroughBehavior', 'updateIntegrationResponse'_passthroughBehavior' - Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+--+-- 'payloadFormatVersion', 'updateIntegrationResponse'_payloadFormatVersion' - Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+--+-- 'requestParameters', 'updateIntegrationResponse'_requestParameters' - For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API itegrations, without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to backend integrations. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location>. The action can+-- be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'requestTemplates', 'updateIntegrationResponse'_requestTemplates' - Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+--+-- 'responseParameters', 'updateIntegrationResponse'_responseParameters' - Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+--+-- 'templateSelectionExpression', 'updateIntegrationResponse'_templateSelectionExpression' - The template selection expression for the integration. Supported only+-- for WebSocket APIs.+--+-- 'timeoutInMillis', 'updateIntegrationResponse'_timeoutInMillis' - Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+--+-- 'tlsConfig', 'updateIntegrationResponse'_tlsConfig' - The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+--+-- 'httpStatus', 'updateIntegrationResponse'_httpStatus' - The response's http status code.+newUpdateIntegrationResponse' ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateIntegrationResponse'+newUpdateIntegrationResponse' pHttpStatus_ =+  UpdateIntegrationResponse''+    { apiGatewayManaged =+        Prelude.Nothing,+      connectionId = Prelude.Nothing,+      connectionType = Prelude.Nothing,+      contentHandlingStrategy = Prelude.Nothing,+      credentialsArn = Prelude.Nothing,+      description = Prelude.Nothing,+      integrationId = Prelude.Nothing,+      integrationMethod = Prelude.Nothing,+      integrationResponseSelectionExpression =+        Prelude.Nothing,+      integrationSubtype = Prelude.Nothing,+      integrationType = Prelude.Nothing,+      integrationUri = Prelude.Nothing,+      passthroughBehavior = Prelude.Nothing,+      payloadFormatVersion = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      requestTemplates = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      templateSelectionExpression = Prelude.Nothing,+      timeoutInMillis = Prelude.Nothing,+      tlsConfig = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether an integration is managed by API Gateway. If you+-- created an API using using quick create, the resulting integration is+-- managed by API Gateway. You can update a managed integration, but you+-- can\'t delete it.+updateIntegrationResponse'_apiGatewayManaged :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Bool)+updateIntegrationResponse'_apiGatewayManaged = Lens.lens (\UpdateIntegrationResponse'' {apiGatewayManaged} -> apiGatewayManaged) (\s@UpdateIntegrationResponse'' {} a -> s {apiGatewayManaged = a} :: UpdateIntegrationResponse')++-- | The ID of the VPC link for a private integration. Supported only for+-- HTTP APIs.+updateIntegrationResponse'_connectionId :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_connectionId = Lens.lens (\UpdateIntegrationResponse'' {connectionId} -> connectionId) (\s@UpdateIntegrationResponse'' {} a -> s {connectionId = a} :: UpdateIntegrationResponse')++-- | The type of the network connection to the integration endpoint. Specify+-- INTERNET for connections through the public routable internet or+-- VPC_LINK for private connections between API Gateway and resources in a+-- VPC. The default value is INTERNET.+updateIntegrationResponse'_connectionType :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe ConnectionType)+updateIntegrationResponse'_connectionType = Lens.lens (\UpdateIntegrationResponse'' {connectionType} -> connectionType) (\s@UpdateIntegrationResponse'' {} a -> s {connectionType = a} :: UpdateIntegrationResponse')++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+updateIntegrationResponse'_contentHandlingStrategy :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe ContentHandlingStrategy)+updateIntegrationResponse'_contentHandlingStrategy = Lens.lens (\UpdateIntegrationResponse'' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@UpdateIntegrationResponse'' {} a -> s {contentHandlingStrategy = a} :: UpdateIntegrationResponse')++-- | Specifies the credentials required for the integration, if any. For AWS+-- integrations, three options are available. To specify an IAM Role for+-- API Gateway to assume, use the role\'s Amazon Resource Name (ARN). To+-- require that the caller\'s identity be passed through from the request,+-- specify the string arn:aws:iam::*:user\/*. To use resource-based+-- permissions on supported AWS services, specify null.+updateIntegrationResponse'_credentialsArn :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_credentialsArn = Lens.lens (\UpdateIntegrationResponse'' {credentialsArn} -> credentialsArn) (\s@UpdateIntegrationResponse'' {} a -> s {credentialsArn = a} :: UpdateIntegrationResponse')++-- | Represents the description of an integration.+updateIntegrationResponse'_description :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_description = Lens.lens (\UpdateIntegrationResponse'' {description} -> description) (\s@UpdateIntegrationResponse'' {} a -> s {description = a} :: UpdateIntegrationResponse')++-- | Represents the identifier of an integration.+updateIntegrationResponse'_integrationId :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_integrationId = Lens.lens (\UpdateIntegrationResponse'' {integrationId} -> integrationId) (\s@UpdateIntegrationResponse'' {} a -> s {integrationId = a} :: UpdateIntegrationResponse')++-- | Specifies the integration\'s HTTP method type.+updateIntegrationResponse'_integrationMethod :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_integrationMethod = Lens.lens (\UpdateIntegrationResponse'' {integrationMethod} -> integrationMethod) (\s@UpdateIntegrationResponse'' {} a -> s {integrationMethod = a} :: UpdateIntegrationResponse')++-- | The integration response selection expression for the integration.+-- Supported only for WebSocket APIs. See+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions Integration Response Selection Expressions>.+updateIntegrationResponse'_integrationResponseSelectionExpression :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_integrationResponseSelectionExpression = Lens.lens (\UpdateIntegrationResponse'' {integrationResponseSelectionExpression} -> integrationResponseSelectionExpression) (\s@UpdateIntegrationResponse'' {} a -> s {integrationResponseSelectionExpression = a} :: UpdateIntegrationResponse')++-- | Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS+-- service action to invoke. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html Integration subtype reference>.+updateIntegrationResponse'_integrationSubtype :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_integrationSubtype = Lens.lens (\UpdateIntegrationResponse'' {integrationSubtype} -> integrationSubtype) (\s@UpdateIntegrationResponse'' {} a -> s {integrationSubtype = a} :: UpdateIntegrationResponse')++-- | The integration type of an integration. One of the following:+--+-- AWS: for integrating the route or method request with an AWS service+-- action, including the Lambda function-invoking action. With the Lambda+-- function-invoking action, this is referred to as the Lambda custom+-- integration. With any other AWS service action, this is known as AWS+-- integration. Supported only for WebSocket APIs.+--+-- AWS_PROXY: for integrating the route or method request with a Lambda+-- function or other AWS service action. This integration is also referred+-- to as a Lambda proxy integration.+--+-- HTTP: for integrating the route or method request with an HTTP endpoint.+-- This integration is also referred to as the HTTP custom integration.+-- Supported only for WebSocket APIs.+--+-- HTTP_PROXY: for integrating the route or method request with an HTTP+-- endpoint, with the client request passed through as-is. This is also+-- referred to as HTTP proxy integration.+--+-- MOCK: for integrating the route or method request with API Gateway as a+-- \"loopback\" endpoint without invoking any backend. Supported only for+-- WebSocket APIs.+updateIntegrationResponse'_integrationType :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe IntegrationType)+updateIntegrationResponse'_integrationType = Lens.lens (\UpdateIntegrationResponse'' {integrationType} -> integrationType) (\s@UpdateIntegrationResponse'' {} a -> s {integrationType = a} :: UpdateIntegrationResponse')++-- | For a Lambda integration, specify the URI of a Lambda function.+--+-- For an HTTP integration, specify a fully-qualified URL.+--+-- For an HTTP API private integration, specify the ARN of an Application+-- Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map+-- service. If you specify the ARN of an AWS Cloud Map service, API Gateway+-- uses DiscoverInstances to identify resources. You can use query+-- parameters to target specific resources. To learn more, see+-- <https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html DiscoverInstances>.+-- For private integrations, all resources must be owned by the same AWS+-- account.+updateIntegrationResponse'_integrationUri :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_integrationUri = Lens.lens (\UpdateIntegrationResponse'' {integrationUri} -> integrationUri) (\s@UpdateIntegrationResponse'' {} a -> s {integrationUri = a} :: UpdateIntegrationResponse')++-- | Specifies the pass-through behavior for incoming requests based on the+-- Content-Type header in the request, and the available mapping templates+-- specified as the requestTemplates property on the Integration resource.+-- There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and+-- NEVER. Supported only for WebSocket APIs.+--+-- WHEN_NO_MATCH passes the request body for unmapped content types through+-- to the integration backend without transformation.+--+-- NEVER rejects unmapped content types with an HTTP 415 Unsupported Media+-- Type response.+--+-- WHEN_NO_TEMPLATES allows pass-through when the integration has no+-- content types mapped to templates. However, if there is at least one+-- content type defined, unmapped content types will be rejected with the+-- same HTTP 415 Unsupported Media Type response.+updateIntegrationResponse'_passthroughBehavior :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe PassthroughBehavior)+updateIntegrationResponse'_passthroughBehavior = Lens.lens (\UpdateIntegrationResponse'' {passthroughBehavior} -> passthroughBehavior) (\s@UpdateIntegrationResponse'' {} a -> s {passthroughBehavior = a} :: UpdateIntegrationResponse')++-- | Specifies the format of the payload sent to an integration. Required for+-- HTTP APIs.+updateIntegrationResponse'_payloadFormatVersion :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_payloadFormatVersion = Lens.lens (\UpdateIntegrationResponse'' {payloadFormatVersion} -> payloadFormatVersion) (\s@UpdateIntegrationResponse'' {} a -> s {payloadFormatVersion = a} :: UpdateIntegrationResponse')++-- | For WebSocket APIs, a key-value map specifying request parameters that+-- are passed from the method request to the backend. The key is an+-- integration request parameter name and the associated value is a method+-- request parameter value or static value that must be enclosed within+-- single quotes and pre-encoded as required by the backend. The method+-- request parameter value must match the pattern of+-- method.request.{location}.{name} , where {location} is querystring,+-- path, or header; and {name} must be a valid and unique method request+-- parameter name.+--+-- For HTTP API integrations with a specified integrationSubtype, request+-- parameters are a key-value map specifying parameters that are passed to+-- AWS_PROXY integrations. You can provide static values, or map request+-- data, stage variables, or context variables that are evaluated at+-- runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html Working with AWS service integrations for HTTP APIs>.+--+-- For HTTP API itegrations, without a specified integrationSubtype request+-- parameters are a key-value map specifying how to transform HTTP requests+-- before sending them to backend integrations. The key should follow the+-- pattern \<action>:\<header|querystring|path>.\<location>. The action can+-- be append, overwrite or remove. For values, you can provide static+-- values, or map request data, stage variables, or context variables that+-- are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+updateIntegrationResponse'_requestParameters :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateIntegrationResponse'_requestParameters = Lens.lens (\UpdateIntegrationResponse'' {requestParameters} -> requestParameters) (\s@UpdateIntegrationResponse'' {} a -> s {requestParameters = a} :: UpdateIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | Represents a map of Velocity templates that are applied on the request+-- payload based on the value of the Content-Type header sent by the+-- client. The content type value is the key in this map, and the template+-- (as a String) is the value. Supported only for WebSocket APIs.+updateIntegrationResponse'_requestTemplates :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateIntegrationResponse'_requestTemplates = Lens.lens (\UpdateIntegrationResponse'' {requestTemplates} -> requestTemplates) (\s@UpdateIntegrationResponse'' {} a -> s {requestTemplates = a} :: UpdateIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | Supported only for HTTP APIs. You use response parameters to transform+-- the HTTP response from a backend integration before returning the+-- response to clients. Specify a key-value map from a selection key to+-- response parameters. The selection key must be a valid HTTP status code+-- within the range of 200-599. Response parameters are a key-value map.+-- The key must match pattern \<action>:\<header>.\<location> or+-- overwrite.statuscode. The action can be append, overwrite or remove. The+-- value can be a static value, or map to response data, stage variables,+-- or context variables that are evaluated at runtime. To learn more, see+-- <https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html Transforming API requests and responses>.+updateIntegrationResponse'_responseParameters :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+updateIntegrationResponse'_responseParameters = Lens.lens (\UpdateIntegrationResponse'' {responseParameters} -> responseParameters) (\s@UpdateIntegrationResponse'' {} a -> s {responseParameters = a} :: UpdateIntegrationResponse') Prelude.. Lens.mapping Lens.coerced++-- | The template selection expression for the integration. Supported only+-- for WebSocket APIs.+updateIntegrationResponse'_templateSelectionExpression :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Text)+updateIntegrationResponse'_templateSelectionExpression = Lens.lens (\UpdateIntegrationResponse'' {templateSelectionExpression} -> templateSelectionExpression) (\s@UpdateIntegrationResponse'' {} a -> s {templateSelectionExpression = a} :: UpdateIntegrationResponse')++-- | Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and+-- between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is+-- 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.+updateIntegrationResponse'_timeoutInMillis :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe Prelude.Natural)+updateIntegrationResponse'_timeoutInMillis = Lens.lens (\UpdateIntegrationResponse'' {timeoutInMillis} -> timeoutInMillis) (\s@UpdateIntegrationResponse'' {} a -> s {timeoutInMillis = a} :: UpdateIntegrationResponse')++-- | The TLS configuration for a private integration. If you specify a TLS+-- configuration, private integration traffic uses the HTTPS protocol.+-- Supported only for HTTP APIs.+updateIntegrationResponse'_tlsConfig :: Lens.Lens' UpdateIntegrationResponse' (Prelude.Maybe TlsConfig)+updateIntegrationResponse'_tlsConfig = Lens.lens (\UpdateIntegrationResponse'' {tlsConfig} -> tlsConfig) (\s@UpdateIntegrationResponse'' {} a -> s {tlsConfig = a} :: UpdateIntegrationResponse')++-- | The response's http status code.+updateIntegrationResponse'_httpStatus :: Lens.Lens' UpdateIntegrationResponse' Prelude.Int+updateIntegrationResponse'_httpStatus = Lens.lens (\UpdateIntegrationResponse'' {httpStatus} -> httpStatus) (\s@UpdateIntegrationResponse'' {} a -> s {httpStatus = a} :: UpdateIntegrationResponse')++instance Prelude.NFData UpdateIntegrationResponse' where+  rnf UpdateIntegrationResponse'' {..} =+    Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionType+      `Prelude.seq` Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf credentialsArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf integrationId+      `Prelude.seq` Prelude.rnf integrationMethod+      `Prelude.seq` Prelude.rnf integrationResponseSelectionExpression+      `Prelude.seq` Prelude.rnf integrationSubtype+      `Prelude.seq` Prelude.rnf integrationType+      `Prelude.seq` Prelude.rnf integrationUri+      `Prelude.seq` Prelude.rnf passthroughBehavior+      `Prelude.seq` Prelude.rnf payloadFormatVersion+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf requestTemplates+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf+        templateSelectionExpression+      `Prelude.seq` Prelude.rnf timeoutInMillis+      `Prelude.seq` Prelude.rnf tlsConfig+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateIntegrationResponse.hs view
@@ -0,0 +1,503 @@+{-# 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.ApiGatewayV2.UpdateIntegrationResponse+-- 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 IntegrationResponses.+module Amazonka.ApiGatewayV2.UpdateIntegrationResponse+  ( -- * Creating a Request+    UpdateIntegrationResponse (..),+    newUpdateIntegrationResponse,++    -- * Request Lenses+    updateIntegrationResponse_contentHandlingStrategy,+    updateIntegrationResponse_integrationResponseKey,+    updateIntegrationResponse_responseParameters,+    updateIntegrationResponse_responseTemplates,+    updateIntegrationResponse_templateSelectionExpression,+    updateIntegrationResponse_apiId,+    updateIntegrationResponse_integrationResponseId,+    updateIntegrationResponse_integrationId,++    -- * Destructuring the Response+    UpdateIntegrationResponseResponse (..),+    newUpdateIntegrationResponseResponse,++    -- * Response Lenses+    updateIntegrationResponseResponse_contentHandlingStrategy,+    updateIntegrationResponseResponse_integrationResponseId,+    updateIntegrationResponseResponse_integrationResponseKey,+    updateIntegrationResponseResponse_responseParameters,+    updateIntegrationResponseResponse_responseTemplates,+    updateIntegrationResponseResponse_templateSelectionExpression,+    updateIntegrationResponseResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates an IntegrationResponses.+--+-- /See:/ 'newUpdateIntegrationResponse' smart constructor.+data UpdateIntegrationResponse = UpdateIntegrationResponse'+  { -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | The integration response key.+    integrationResponseKey :: Prelude.Maybe Prelude.Text,+    -- | A key-value map specifying response parameters that are passed to the+    -- method response from the backend. The key is a method response header+    -- parameter name and the mapped value is an integration response header+    -- value, a static value enclosed within a pair of single quotes, or a JSON+    -- expression from the integration response body. The mapping key must+    -- match the pattern of method.response.header.{name} , where name is a+    -- valid and unique header name. The mapped non-static value must match the+    -- pattern of integration.response.header.{name} or+    -- integration.response.body.{JSON-expression} , where {name} is a valid+    -- and unique response header name and {JSON-expression} is a valid JSON+    -- expression without the $ prefix.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of response templates for the integration response as a+    -- string-to-string map of key-value pairs. Response templates are+    -- represented as a key\/value map, with a content-type as the key and a+    -- template as the value.+    responseTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The template selection expression for the integration response.+    -- Supported only for WebSocket APIs.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The integration response ID.+    integrationResponseId :: Prelude.Text,+    -- | The integration ID.+    integrationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentHandlingStrategy', 'updateIntegrationResponse_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'integrationResponseKey', 'updateIntegrationResponse_integrationResponseKey' - The integration response key.+--+-- 'responseParameters', 'updateIntegrationResponse_responseParameters' - A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name} , where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression} , where {name} is a valid+-- and unique response header name and {JSON-expression} is a valid JSON+-- expression without the $ prefix.+--+-- 'responseTemplates', 'updateIntegrationResponse_responseTemplates' - The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+--+-- 'templateSelectionExpression', 'updateIntegrationResponse_templateSelectionExpression' - The template selection expression for the integration response.+-- Supported only for WebSocket APIs.+--+-- 'apiId', 'updateIntegrationResponse_apiId' - The API identifier.+--+-- 'integrationResponseId', 'updateIntegrationResponse_integrationResponseId' - The integration response ID.+--+-- 'integrationId', 'updateIntegrationResponse_integrationId' - The integration ID.+newUpdateIntegrationResponse ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'integrationResponseId'+  Prelude.Text ->+  -- | 'integrationId'+  Prelude.Text ->+  UpdateIntegrationResponse+newUpdateIntegrationResponse+  pApiId_+  pIntegrationResponseId_+  pIntegrationId_ =+    UpdateIntegrationResponse'+      { contentHandlingStrategy =+          Prelude.Nothing,+        integrationResponseKey = Prelude.Nothing,+        responseParameters = Prelude.Nothing,+        responseTemplates = Prelude.Nothing,+        templateSelectionExpression = Prelude.Nothing,+        apiId = pApiId_,+        integrationResponseId = pIntegrationResponseId_,+        integrationId = pIntegrationId_+      }++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+updateIntegrationResponse_contentHandlingStrategy :: Lens.Lens' UpdateIntegrationResponse (Prelude.Maybe ContentHandlingStrategy)+updateIntegrationResponse_contentHandlingStrategy = Lens.lens (\UpdateIntegrationResponse' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@UpdateIntegrationResponse' {} a -> s {contentHandlingStrategy = a} :: UpdateIntegrationResponse)++-- | The integration response key.+updateIntegrationResponse_integrationResponseKey :: Lens.Lens' UpdateIntegrationResponse (Prelude.Maybe Prelude.Text)+updateIntegrationResponse_integrationResponseKey = Lens.lens (\UpdateIntegrationResponse' {integrationResponseKey} -> integrationResponseKey) (\s@UpdateIntegrationResponse' {} a -> s {integrationResponseKey = a} :: UpdateIntegrationResponse)++-- | A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name} , where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression} , where {name} is a valid+-- and unique response header name and {JSON-expression} is a valid JSON+-- expression without the $ prefix.+updateIntegrationResponse_responseParameters :: Lens.Lens' UpdateIntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateIntegrationResponse_responseParameters = Lens.lens (\UpdateIntegrationResponse' {responseParameters} -> responseParameters) (\s@UpdateIntegrationResponse' {} a -> s {responseParameters = a} :: UpdateIntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+updateIntegrationResponse_responseTemplates :: Lens.Lens' UpdateIntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateIntegrationResponse_responseTemplates = Lens.lens (\UpdateIntegrationResponse' {responseTemplates} -> responseTemplates) (\s@UpdateIntegrationResponse' {} a -> s {responseTemplates = a} :: UpdateIntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expression for the integration response.+-- Supported only for WebSocket APIs.+updateIntegrationResponse_templateSelectionExpression :: Lens.Lens' UpdateIntegrationResponse (Prelude.Maybe Prelude.Text)+updateIntegrationResponse_templateSelectionExpression = Lens.lens (\UpdateIntegrationResponse' {templateSelectionExpression} -> templateSelectionExpression) (\s@UpdateIntegrationResponse' {} a -> s {templateSelectionExpression = a} :: UpdateIntegrationResponse)++-- | The API identifier.+updateIntegrationResponse_apiId :: Lens.Lens' UpdateIntegrationResponse Prelude.Text+updateIntegrationResponse_apiId = Lens.lens (\UpdateIntegrationResponse' {apiId} -> apiId) (\s@UpdateIntegrationResponse' {} a -> s {apiId = a} :: UpdateIntegrationResponse)++-- | The integration response ID.+updateIntegrationResponse_integrationResponseId :: Lens.Lens' UpdateIntegrationResponse Prelude.Text+updateIntegrationResponse_integrationResponseId = Lens.lens (\UpdateIntegrationResponse' {integrationResponseId} -> integrationResponseId) (\s@UpdateIntegrationResponse' {} a -> s {integrationResponseId = a} :: UpdateIntegrationResponse)++-- | The integration ID.+updateIntegrationResponse_integrationId :: Lens.Lens' UpdateIntegrationResponse Prelude.Text+updateIntegrationResponse_integrationId = Lens.lens (\UpdateIntegrationResponse' {integrationId} -> integrationId) (\s@UpdateIntegrationResponse' {} a -> s {integrationId = a} :: UpdateIntegrationResponse)++instance Core.AWSRequest UpdateIntegrationResponse where+  type+    AWSResponse UpdateIntegrationResponse =+      UpdateIntegrationResponseResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateIntegrationResponseResponse'+            Prelude.<$> (x Data..?> "contentHandlingStrategy")+            Prelude.<*> (x Data..?> "integrationResponseId")+            Prelude.<*> (x Data..?> "integrationResponseKey")+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "responseTemplates"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "templateSelectionExpression")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateIntegrationResponse where+  hashWithSalt _salt UpdateIntegrationResponse' {..} =+    _salt+      `Prelude.hashWithSalt` contentHandlingStrategy+      `Prelude.hashWithSalt` integrationResponseKey+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` responseTemplates+      `Prelude.hashWithSalt` templateSelectionExpression+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` integrationResponseId+      `Prelude.hashWithSalt` integrationId++instance Prelude.NFData UpdateIntegrationResponse where+  rnf UpdateIntegrationResponse' {..} =+    Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf integrationResponseKey+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf responseTemplates+      `Prelude.seq` Prelude.rnf templateSelectionExpression+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf integrationResponseId+      `Prelude.seq` Prelude.rnf integrationId++instance Data.ToHeaders UpdateIntegrationResponse where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateIntegrationResponse where+  toJSON UpdateIntegrationResponse' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("contentHandlingStrategy" Data..=)+              Prelude.<$> contentHandlingStrategy,+            ("integrationResponseKey" Data..=)+              Prelude.<$> integrationResponseKey,+            ("responseParameters" Data..=)+              Prelude.<$> responseParameters,+            ("responseTemplates" Data..=)+              Prelude.<$> responseTemplates,+            ("templateSelectionExpression" Data..=)+              Prelude.<$> templateSelectionExpression+          ]+      )++instance Data.ToPath UpdateIntegrationResponse where+  toPath UpdateIntegrationResponse' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/integrations/",+        Data.toBS integrationId,+        "/integrationresponses/",+        Data.toBS integrationResponseId+      ]++instance Data.ToQuery UpdateIntegrationResponse where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateIntegrationResponseResponse' smart constructor.+data UpdateIntegrationResponseResponse = UpdateIntegrationResponseResponse'+  { -- | Supported only for WebSocket APIs. Specifies how to handle response+    -- payload content type conversions. Supported values are CONVERT_TO_BINARY+    -- and CONVERT_TO_TEXT, with the following behaviors:+    --+    -- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+    -- string to the corresponding binary blob.+    --+    -- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+    -- Base64-encoded string.+    --+    -- If this property is not defined, the response payload will be passed+    -- through from the integration response to the route response or method+    -- response without modification.+    contentHandlingStrategy :: Prelude.Maybe ContentHandlingStrategy,+    -- | The integration response ID.+    integrationResponseId :: Prelude.Maybe Prelude.Text,+    -- | The integration response key.+    integrationResponseKey :: Prelude.Maybe Prelude.Text,+    -- | A key-value map specifying response parameters that are passed to the+    -- method response from the backend. The key is a method response header+    -- parameter name and the mapped value is an integration response header+    -- value, a static value enclosed within a pair of single quotes, or a JSON+    -- expression from the integration response body. The mapping key must+    -- match the pattern of method.response.header.{name}, where name is a+    -- valid and unique header name. The mapped non-static value must match the+    -- pattern of integration.response.header.{name} or+    -- integration.response.body.{JSON-expression}, where name is a valid and+    -- unique response header name and JSON-expression is a valid JSON+    -- expression without the $ prefix.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of response templates for the integration response as a+    -- string-to-string map of key-value pairs. Response templates are+    -- represented as a key\/value map, with a content-type as the key and a+    -- template as the value.+    responseTemplates :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The template selection expressions for the integration response.+    templateSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIntegrationResponseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentHandlingStrategy', 'updateIntegrationResponseResponse_contentHandlingStrategy' - Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+--+-- 'integrationResponseId', 'updateIntegrationResponseResponse_integrationResponseId' - The integration response ID.+--+-- 'integrationResponseKey', 'updateIntegrationResponseResponse_integrationResponseKey' - The integration response key.+--+-- 'responseParameters', 'updateIntegrationResponseResponse_responseParameters' - A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where name is a valid and+-- unique response header name and JSON-expression is a valid JSON+-- expression without the $ prefix.+--+-- 'responseTemplates', 'updateIntegrationResponseResponse_responseTemplates' - The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+--+-- 'templateSelectionExpression', 'updateIntegrationResponseResponse_templateSelectionExpression' - The template selection expressions for the integration response.+--+-- 'httpStatus', 'updateIntegrationResponseResponse_httpStatus' - The response's http status code.+newUpdateIntegrationResponseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateIntegrationResponseResponse+newUpdateIntegrationResponseResponse pHttpStatus_ =+  UpdateIntegrationResponseResponse'+    { contentHandlingStrategy =+        Prelude.Nothing,+      integrationResponseId = Prelude.Nothing,+      integrationResponseKey = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      responseTemplates = Prelude.Nothing,+      templateSelectionExpression =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Supported only for WebSocket APIs. Specifies how to handle response+-- payload content type conversions. Supported values are CONVERT_TO_BINARY+-- and CONVERT_TO_TEXT, with the following behaviors:+--+-- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded+-- string to the corresponding binary blob.+--+-- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a+-- Base64-encoded string.+--+-- If this property is not defined, the response payload will be passed+-- through from the integration response to the route response or method+-- response without modification.+updateIntegrationResponseResponse_contentHandlingStrategy :: Lens.Lens' UpdateIntegrationResponseResponse (Prelude.Maybe ContentHandlingStrategy)+updateIntegrationResponseResponse_contentHandlingStrategy = Lens.lens (\UpdateIntegrationResponseResponse' {contentHandlingStrategy} -> contentHandlingStrategy) (\s@UpdateIntegrationResponseResponse' {} a -> s {contentHandlingStrategy = a} :: UpdateIntegrationResponseResponse)++-- | The integration response ID.+updateIntegrationResponseResponse_integrationResponseId :: Lens.Lens' UpdateIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+updateIntegrationResponseResponse_integrationResponseId = Lens.lens (\UpdateIntegrationResponseResponse' {integrationResponseId} -> integrationResponseId) (\s@UpdateIntegrationResponseResponse' {} a -> s {integrationResponseId = a} :: UpdateIntegrationResponseResponse)++-- | The integration response key.+updateIntegrationResponseResponse_integrationResponseKey :: Lens.Lens' UpdateIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+updateIntegrationResponseResponse_integrationResponseKey = Lens.lens (\UpdateIntegrationResponseResponse' {integrationResponseKey} -> integrationResponseKey) (\s@UpdateIntegrationResponseResponse' {} a -> s {integrationResponseKey = a} :: UpdateIntegrationResponseResponse)++-- | A key-value map specifying response parameters that are passed to the+-- method response from the backend. The key is a method response header+-- parameter name and the mapped value is an integration response header+-- value, a static value enclosed within a pair of single quotes, or a JSON+-- expression from the integration response body. The mapping key must+-- match the pattern of method.response.header.{name}, where name is a+-- valid and unique header name. The mapped non-static value must match the+-- pattern of integration.response.header.{name} or+-- integration.response.body.{JSON-expression}, where name is a valid and+-- unique response header name and JSON-expression is a valid JSON+-- expression without the $ prefix.+updateIntegrationResponseResponse_responseParameters :: Lens.Lens' UpdateIntegrationResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateIntegrationResponseResponse_responseParameters = Lens.lens (\UpdateIntegrationResponseResponse' {responseParameters} -> responseParameters) (\s@UpdateIntegrationResponseResponse' {} a -> s {responseParameters = a} :: UpdateIntegrationResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of response templates for the integration response as a+-- string-to-string map of key-value pairs. Response templates are+-- represented as a key\/value map, with a content-type as the key and a+-- template as the value.+updateIntegrationResponseResponse_responseTemplates :: Lens.Lens' UpdateIntegrationResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateIntegrationResponseResponse_responseTemplates = Lens.lens (\UpdateIntegrationResponseResponse' {responseTemplates} -> responseTemplates) (\s@UpdateIntegrationResponseResponse' {} a -> s {responseTemplates = a} :: UpdateIntegrationResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | The template selection expressions for the integration response.+updateIntegrationResponseResponse_templateSelectionExpression :: Lens.Lens' UpdateIntegrationResponseResponse (Prelude.Maybe Prelude.Text)+updateIntegrationResponseResponse_templateSelectionExpression = Lens.lens (\UpdateIntegrationResponseResponse' {templateSelectionExpression} -> templateSelectionExpression) (\s@UpdateIntegrationResponseResponse' {} a -> s {templateSelectionExpression = a} :: UpdateIntegrationResponseResponse)++-- | The response's http status code.+updateIntegrationResponseResponse_httpStatus :: Lens.Lens' UpdateIntegrationResponseResponse Prelude.Int+updateIntegrationResponseResponse_httpStatus = Lens.lens (\UpdateIntegrationResponseResponse' {httpStatus} -> httpStatus) (\s@UpdateIntegrationResponseResponse' {} a -> s {httpStatus = a} :: UpdateIntegrationResponseResponse)++instance+  Prelude.NFData+    UpdateIntegrationResponseResponse+  where+  rnf UpdateIntegrationResponseResponse' {..} =+    Prelude.rnf contentHandlingStrategy+      `Prelude.seq` Prelude.rnf integrationResponseId+      `Prelude.seq` Prelude.rnf integrationResponseKey+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf responseTemplates+      `Prelude.seq` Prelude.rnf templateSelectionExpression+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateModel.hs view
@@ -0,0 +1,293 @@+{-# 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.ApiGatewayV2.UpdateModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a Model.+module Amazonka.ApiGatewayV2.UpdateModel+  ( -- * Creating a Request+    UpdateModel (..),+    newUpdateModel,++    -- * Request Lenses+    updateModel_contentType,+    updateModel_description,+    updateModel_name,+    updateModel_schema,+    updateModel_modelId,+    updateModel_apiId,++    -- * Destructuring the Response+    UpdateModelResponse (..),+    newUpdateModelResponse,++    -- * Response Lenses+    updateModelResponse_contentType,+    updateModelResponse_description,+    updateModelResponse_modelId,+    updateModelResponse_name,+    updateModelResponse_schema,+    updateModelResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates a Model.+--+-- /See:/ 'newUpdateModel' smart constructor.+data UpdateModel = UpdateModel'+  { -- | The content-type for the model, for example, \"application\/json\".+    contentType :: Prelude.Maybe Prelude.Text,+    -- | The description of the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the model.+    name :: Prelude.Maybe Prelude.Text,+    -- | The schema for the model. For application\/json models, this should be+    -- JSON schema draft 4 model.+    schema :: Prelude.Maybe Prelude.Text,+    -- | The model ID.+    modelId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentType', 'updateModel_contentType' - The content-type for the model, for example, \"application\/json\".+--+-- 'description', 'updateModel_description' - The description of the model.+--+-- 'name', 'updateModel_name' - The name of the model.+--+-- 'schema', 'updateModel_schema' - The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+--+-- 'modelId', 'updateModel_modelId' - The model ID.+--+-- 'apiId', 'updateModel_apiId' - The API identifier.+newUpdateModel ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  UpdateModel+newUpdateModel pModelId_ pApiId_ =+  UpdateModel'+    { contentType = Prelude.Nothing,+      description = Prelude.Nothing,+      name = Prelude.Nothing,+      schema = Prelude.Nothing,+      modelId = pModelId_,+      apiId = pApiId_+    }++-- | The content-type for the model, for example, \"application\/json\".+updateModel_contentType :: Lens.Lens' UpdateModel (Prelude.Maybe Prelude.Text)+updateModel_contentType = Lens.lens (\UpdateModel' {contentType} -> contentType) (\s@UpdateModel' {} a -> s {contentType = a} :: UpdateModel)++-- | The description of the model.+updateModel_description :: Lens.Lens' UpdateModel (Prelude.Maybe Prelude.Text)+updateModel_description = Lens.lens (\UpdateModel' {description} -> description) (\s@UpdateModel' {} a -> s {description = a} :: UpdateModel)++-- | The name of the model.+updateModel_name :: Lens.Lens' UpdateModel (Prelude.Maybe Prelude.Text)+updateModel_name = Lens.lens (\UpdateModel' {name} -> name) (\s@UpdateModel' {} a -> s {name = a} :: UpdateModel)++-- | The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+updateModel_schema :: Lens.Lens' UpdateModel (Prelude.Maybe Prelude.Text)+updateModel_schema = Lens.lens (\UpdateModel' {schema} -> schema) (\s@UpdateModel' {} a -> s {schema = a} :: UpdateModel)++-- | The model ID.+updateModel_modelId :: Lens.Lens' UpdateModel Prelude.Text+updateModel_modelId = Lens.lens (\UpdateModel' {modelId} -> modelId) (\s@UpdateModel' {} a -> s {modelId = a} :: UpdateModel)++-- | The API identifier.+updateModel_apiId :: Lens.Lens' UpdateModel Prelude.Text+updateModel_apiId = Lens.lens (\UpdateModel' {apiId} -> apiId) (\s@UpdateModel' {} a -> s {apiId = a} :: UpdateModel)++instance Core.AWSRequest UpdateModel where+  type AWSResponse UpdateModel = UpdateModelResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateModelResponse'+            Prelude.<$> (x Data..?> "contentType")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "modelId")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "schema")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateModel where+  hashWithSalt _salt UpdateModel' {..} =+    _salt+      `Prelude.hashWithSalt` contentType+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schema+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData UpdateModel where+  rnf UpdateModel' {..} =+    Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schema+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders UpdateModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateModel where+  toJSON UpdateModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("contentType" Data..=) Prelude.<$> contentType,+            ("description" Data..=) Prelude.<$> description,+            ("name" Data..=) Prelude.<$> name,+            ("schema" Data..=) Prelude.<$> schema+          ]+      )++instance Data.ToPath UpdateModel where+  toPath UpdateModel' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/models/",+        Data.toBS modelId+      ]++instance Data.ToQuery UpdateModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateModelResponse' smart constructor.+data UpdateModelResponse = UpdateModelResponse'+  { -- | The content-type for the model, for example, \"application\/json\".+    contentType :: Prelude.Maybe Prelude.Text,+    -- | The description of the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The model identifier.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The name of the model. Must be alphanumeric.+    name :: Prelude.Maybe Prelude.Text,+    -- | The schema for the model. For application\/json models, this should be+    -- JSON schema draft 4 model.+    schema :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentType', 'updateModelResponse_contentType' - The content-type for the model, for example, \"application\/json\".+--+-- 'description', 'updateModelResponse_description' - The description of the model.+--+-- 'modelId', 'updateModelResponse_modelId' - The model identifier.+--+-- 'name', 'updateModelResponse_name' - The name of the model. Must be alphanumeric.+--+-- 'schema', 'updateModelResponse_schema' - The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+--+-- 'httpStatus', 'updateModelResponse_httpStatus' - The response's http status code.+newUpdateModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateModelResponse+newUpdateModelResponse pHttpStatus_ =+  UpdateModelResponse'+    { contentType = Prelude.Nothing,+      description = Prelude.Nothing,+      modelId = Prelude.Nothing,+      name = Prelude.Nothing,+      schema = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The content-type for the model, for example, \"application\/json\".+updateModelResponse_contentType :: Lens.Lens' UpdateModelResponse (Prelude.Maybe Prelude.Text)+updateModelResponse_contentType = Lens.lens (\UpdateModelResponse' {contentType} -> contentType) (\s@UpdateModelResponse' {} a -> s {contentType = a} :: UpdateModelResponse)++-- | The description of the model.+updateModelResponse_description :: Lens.Lens' UpdateModelResponse (Prelude.Maybe Prelude.Text)+updateModelResponse_description = Lens.lens (\UpdateModelResponse' {description} -> description) (\s@UpdateModelResponse' {} a -> s {description = a} :: UpdateModelResponse)++-- | The model identifier.+updateModelResponse_modelId :: Lens.Lens' UpdateModelResponse (Prelude.Maybe Prelude.Text)+updateModelResponse_modelId = Lens.lens (\UpdateModelResponse' {modelId} -> modelId) (\s@UpdateModelResponse' {} a -> s {modelId = a} :: UpdateModelResponse)++-- | The name of the model. Must be alphanumeric.+updateModelResponse_name :: Lens.Lens' UpdateModelResponse (Prelude.Maybe Prelude.Text)+updateModelResponse_name = Lens.lens (\UpdateModelResponse' {name} -> name) (\s@UpdateModelResponse' {} a -> s {name = a} :: UpdateModelResponse)++-- | The schema for the model. For application\/json models, this should be+-- JSON schema draft 4 model.+updateModelResponse_schema :: Lens.Lens' UpdateModelResponse (Prelude.Maybe Prelude.Text)+updateModelResponse_schema = Lens.lens (\UpdateModelResponse' {schema} -> schema) (\s@UpdateModelResponse' {} a -> s {schema = a} :: UpdateModelResponse)++-- | The response's http status code.+updateModelResponse_httpStatus :: Lens.Lens' UpdateModelResponse Prelude.Int+updateModelResponse_httpStatus = Lens.lens (\UpdateModelResponse' {httpStatus} -> httpStatus) (\s@UpdateModelResponse' {} a -> s {httpStatus = a} :: UpdateModelResponse)++instance Prelude.NFData UpdateModelResponse where+  rnf UpdateModelResponse' {..} =+    Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schema+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateRoute.hs view
@@ -0,0 +1,568 @@+{-# 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.ApiGatewayV2.UpdateRoute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a Route.+module Amazonka.ApiGatewayV2.UpdateRoute+  ( -- * Creating a Request+    UpdateRoute (..),+    newUpdateRoute,++    -- * Request Lenses+    updateRoute_apiKeyRequired,+    updateRoute_authorizationScopes,+    updateRoute_authorizationType,+    updateRoute_authorizerId,+    updateRoute_modelSelectionExpression,+    updateRoute_operationName,+    updateRoute_requestModels,+    updateRoute_requestParameters,+    updateRoute_routeKey,+    updateRoute_routeResponseSelectionExpression,+    updateRoute_target,+    updateRoute_apiId,+    updateRoute_routeId,++    -- * Destructuring the Response+    UpdateRouteResponse' (..),+    newUpdateRouteResponse',++    -- * Response Lenses+    updateRouteResponse'_apiGatewayManaged,+    updateRouteResponse'_apiKeyRequired,+    updateRouteResponse'_authorizationScopes,+    updateRouteResponse'_authorizationType,+    updateRouteResponse'_authorizerId,+    updateRouteResponse'_modelSelectionExpression,+    updateRouteResponse'_operationName,+    updateRouteResponse'_requestModels,+    updateRouteResponse'_requestParameters,+    updateRouteResponse'_routeId,+    updateRouteResponse'_routeKey,+    updateRouteResponse'_routeResponseSelectionExpression,+    updateRouteResponse'_target,+    updateRouteResponse'_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates a Route.+--+-- /See:/ 'newUpdateRoute' smart constructor.+data UpdateRoute = UpdateRoute'+  { -- | Specifies whether an API key is required for the route. Supported only+    -- for WebSocket APIs.+    apiKeyRequired :: Prelude.Maybe Prelude.Bool,+    -- | The authorization scopes supported by this route.+    authorizationScopes :: Prelude.Maybe [Prelude.Text],+    -- | The authorization type for the route. For WebSocket APIs, valid values+    -- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+    -- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+    -- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+    -- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+    authorizationType :: Prelude.Maybe AuthorizationType,+    -- | The identifier of the Authorizer resource to be associated with this+    -- route. The authorizer identifier is generated by API Gateway when you+    -- created the authorizer.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | The model selection expression for the route. Supported only for+    -- WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The operation name for the route.+    operationName :: Prelude.Maybe Prelude.Text,+    -- | The request models for the route. Supported only for WebSocket APIs.+    requestModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The request parameters for the route. Supported only for WebSocket APIs.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | The route key for the route.+    routeKey :: Prelude.Maybe Prelude.Text,+    -- | The route response selection expression for the route. Supported only+    -- for WebSocket APIs.+    routeResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The target for the route.+    target :: Prelude.Maybe Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiKeyRequired', 'updateRoute_apiKeyRequired' - Specifies whether an API key is required for the route. Supported only+-- for WebSocket APIs.+--+-- 'authorizationScopes', 'updateRoute_authorizationScopes' - The authorization scopes supported by this route.+--+-- 'authorizationType', 'updateRoute_authorizationType' - The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+--+-- 'authorizerId', 'updateRoute_authorizerId' - The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+--+-- 'modelSelectionExpression', 'updateRoute_modelSelectionExpression' - The model selection expression for the route. Supported only for+-- WebSocket APIs.+--+-- 'operationName', 'updateRoute_operationName' - The operation name for the route.+--+-- 'requestModels', 'updateRoute_requestModels' - The request models for the route. Supported only for WebSocket APIs.+--+-- 'requestParameters', 'updateRoute_requestParameters' - The request parameters for the route. Supported only for WebSocket APIs.+--+-- 'routeKey', 'updateRoute_routeKey' - The route key for the route.+--+-- 'routeResponseSelectionExpression', 'updateRoute_routeResponseSelectionExpression' - The route response selection expression for the route. Supported only+-- for WebSocket APIs.+--+-- 'target', 'updateRoute_target' - The target for the route.+--+-- 'apiId', 'updateRoute_apiId' - The API identifier.+--+-- 'routeId', 'updateRoute_routeId' - The route ID.+newUpdateRoute ::+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeId'+  Prelude.Text ->+  UpdateRoute+newUpdateRoute pApiId_ pRouteId_ =+  UpdateRoute'+    { apiKeyRequired = Prelude.Nothing,+      authorizationScopes = Prelude.Nothing,+      authorizationType = Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      modelSelectionExpression = Prelude.Nothing,+      operationName = Prelude.Nothing,+      requestModels = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      routeKey = Prelude.Nothing,+      routeResponseSelectionExpression = Prelude.Nothing,+      target = Prelude.Nothing,+      apiId = pApiId_,+      routeId = pRouteId_+    }++-- | Specifies whether an API key is required for the route. Supported only+-- for WebSocket APIs.+updateRoute_apiKeyRequired :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Bool)+updateRoute_apiKeyRequired = Lens.lens (\UpdateRoute' {apiKeyRequired} -> apiKeyRequired) (\s@UpdateRoute' {} a -> s {apiKeyRequired = a} :: UpdateRoute)++-- | The authorization scopes supported by this route.+updateRoute_authorizationScopes :: Lens.Lens' UpdateRoute (Prelude.Maybe [Prelude.Text])+updateRoute_authorizationScopes = Lens.lens (\UpdateRoute' {authorizationScopes} -> authorizationScopes) (\s@UpdateRoute' {} a -> s {authorizationScopes = a} :: UpdateRoute) Prelude.. Lens.mapping Lens.coerced++-- | The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+updateRoute_authorizationType :: Lens.Lens' UpdateRoute (Prelude.Maybe AuthorizationType)+updateRoute_authorizationType = Lens.lens (\UpdateRoute' {authorizationType} -> authorizationType) (\s@UpdateRoute' {} a -> s {authorizationType = a} :: UpdateRoute)++-- | The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+updateRoute_authorizerId :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Text)+updateRoute_authorizerId = Lens.lens (\UpdateRoute' {authorizerId} -> authorizerId) (\s@UpdateRoute' {} a -> s {authorizerId = a} :: UpdateRoute)++-- | The model selection expression for the route. Supported only for+-- WebSocket APIs.+updateRoute_modelSelectionExpression :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Text)+updateRoute_modelSelectionExpression = Lens.lens (\UpdateRoute' {modelSelectionExpression} -> modelSelectionExpression) (\s@UpdateRoute' {} a -> s {modelSelectionExpression = a} :: UpdateRoute)++-- | The operation name for the route.+updateRoute_operationName :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Text)+updateRoute_operationName = Lens.lens (\UpdateRoute' {operationName} -> operationName) (\s@UpdateRoute' {} a -> s {operationName = a} :: UpdateRoute)++-- | The request models for the route. Supported only for WebSocket APIs.+updateRoute_requestModels :: Lens.Lens' UpdateRoute (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateRoute_requestModels = Lens.lens (\UpdateRoute' {requestModels} -> requestModels) (\s@UpdateRoute' {} a -> s {requestModels = a} :: UpdateRoute) Prelude.. Lens.mapping Lens.coerced++-- | The request parameters for the route. Supported only for WebSocket APIs.+updateRoute_requestParameters :: Lens.Lens' UpdateRoute (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+updateRoute_requestParameters = Lens.lens (\UpdateRoute' {requestParameters} -> requestParameters) (\s@UpdateRoute' {} a -> s {requestParameters = a} :: UpdateRoute) Prelude.. Lens.mapping Lens.coerced++-- | The route key for the route.+updateRoute_routeKey :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Text)+updateRoute_routeKey = Lens.lens (\UpdateRoute' {routeKey} -> routeKey) (\s@UpdateRoute' {} a -> s {routeKey = a} :: UpdateRoute)++-- | The route response selection expression for the route. Supported only+-- for WebSocket APIs.+updateRoute_routeResponseSelectionExpression :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Text)+updateRoute_routeResponseSelectionExpression = Lens.lens (\UpdateRoute' {routeResponseSelectionExpression} -> routeResponseSelectionExpression) (\s@UpdateRoute' {} a -> s {routeResponseSelectionExpression = a} :: UpdateRoute)++-- | The target for the route.+updateRoute_target :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Text)+updateRoute_target = Lens.lens (\UpdateRoute' {target} -> target) (\s@UpdateRoute' {} a -> s {target = a} :: UpdateRoute)++-- | The API identifier.+updateRoute_apiId :: Lens.Lens' UpdateRoute Prelude.Text+updateRoute_apiId = Lens.lens (\UpdateRoute' {apiId} -> apiId) (\s@UpdateRoute' {} a -> s {apiId = a} :: UpdateRoute)++-- | The route ID.+updateRoute_routeId :: Lens.Lens' UpdateRoute Prelude.Text+updateRoute_routeId = Lens.lens (\UpdateRoute' {routeId} -> routeId) (\s@UpdateRoute' {} a -> s {routeId = a} :: UpdateRoute)++instance Core.AWSRequest UpdateRoute where+  type AWSResponse UpdateRoute = UpdateRouteResponse'+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRouteResponse''+            Prelude.<$> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "apiKeyRequired")+            Prelude.<*> ( x+                            Data..?> "authorizationScopes"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "authorizationType")+            Prelude.<*> (x Data..?> "authorizerId")+            Prelude.<*> (x Data..?> "modelSelectionExpression")+            Prelude.<*> (x Data..?> "operationName")+            Prelude.<*> (x Data..?> "requestModels" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "requestParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "routeId")+            Prelude.<*> (x Data..?> "routeKey")+            Prelude.<*> (x Data..?> "routeResponseSelectionExpression")+            Prelude.<*> (x Data..?> "target")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateRoute where+  hashWithSalt _salt UpdateRoute' {..} =+    _salt+      `Prelude.hashWithSalt` apiKeyRequired+      `Prelude.hashWithSalt` authorizationScopes+      `Prelude.hashWithSalt` authorizationType+      `Prelude.hashWithSalt` authorizerId+      `Prelude.hashWithSalt` modelSelectionExpression+      `Prelude.hashWithSalt` operationName+      `Prelude.hashWithSalt` requestModels+      `Prelude.hashWithSalt` requestParameters+      `Prelude.hashWithSalt` routeKey+      `Prelude.hashWithSalt` routeResponseSelectionExpression+      `Prelude.hashWithSalt` target+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeId++instance Prelude.NFData UpdateRoute where+  rnf UpdateRoute' {..} =+    Prelude.rnf apiKeyRequired+      `Prelude.seq` Prelude.rnf authorizationScopes+      `Prelude.seq` Prelude.rnf authorizationType+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf operationName+      `Prelude.seq` Prelude.rnf requestModels+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf routeKey+      `Prelude.seq` Prelude.rnf routeResponseSelectionExpression+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf routeId++instance Data.ToHeaders UpdateRoute where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRoute where+  toJSON UpdateRoute' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("apiKeyRequired" Data..=)+              Prelude.<$> apiKeyRequired,+            ("authorizationScopes" Data..=)+              Prelude.<$> authorizationScopes,+            ("authorizationType" Data..=)+              Prelude.<$> authorizationType,+            ("authorizerId" Data..=) Prelude.<$> authorizerId,+            ("modelSelectionExpression" Data..=)+              Prelude.<$> modelSelectionExpression,+            ("operationName" Data..=) Prelude.<$> operationName,+            ("requestModels" Data..=) Prelude.<$> requestModels,+            ("requestParameters" Data..=)+              Prelude.<$> requestParameters,+            ("routeKey" Data..=) Prelude.<$> routeKey,+            ("routeResponseSelectionExpression" Data..=)+              Prelude.<$> routeResponseSelectionExpression,+            ("target" Data..=) Prelude.<$> target+          ]+      )++instance Data.ToPath UpdateRoute where+  toPath UpdateRoute' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId+      ]++instance Data.ToQuery UpdateRoute where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRouteResponse'' smart constructor.+data UpdateRouteResponse' = UpdateRouteResponse''+  { -- | Specifies whether a route is managed by API Gateway. If you created an+    -- API using quick create, the $default route is managed by API Gateway.+    -- You can\'t modify the $default route key.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether an API key is required for this route. Supported only+    -- for WebSocket APIs.+    apiKeyRequired :: Prelude.Maybe Prelude.Bool,+    -- | A list of authorization scopes configured on a route. The scopes are+    -- used with a JWT authorizer to authorize the method invocation. The+    -- authorization works by matching the route scopes against the scopes+    -- parsed from the access token in the incoming request. The method+    -- invocation is authorized if any route scope matches a claimed scope in+    -- the access token. Otherwise, the invocation is not authorized. When the+    -- route scope is configured, the client must provide an access token+    -- instead of an identity token for authorization purposes.+    authorizationScopes :: Prelude.Maybe [Prelude.Text],+    -- | The authorization type for the route. For WebSocket APIs, valid values+    -- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+    -- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+    -- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+    -- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+    authorizationType :: Prelude.Maybe AuthorizationType,+    -- | The identifier of the Authorizer resource to be associated with this+    -- route. The authorizer identifier is generated by API Gateway when you+    -- created the authorizer.+    authorizerId :: Prelude.Maybe Prelude.Text,+    -- | The model selection expression for the route. Supported only for+    -- WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The operation name for the route.+    operationName :: Prelude.Maybe Prelude.Text,+    -- | The request models for the route. Supported only for WebSocket APIs.+    requestModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The request parameters for the route. Supported only for WebSocket APIs.+    requestParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | The route ID.+    routeId :: Prelude.Maybe Prelude.Text,+    -- | The route key for the route.+    routeKey :: Prelude.Maybe Prelude.Text,+    -- | The route response selection expression for the route. Supported only+    -- for WebSocket APIs.+    routeResponseSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The target for the route.+    target :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRouteResponse'' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiGatewayManaged', 'updateRouteResponse'_apiGatewayManaged' - Specifies whether a route is managed by API Gateway. If you created an+-- API using quick create, the $default route is managed by API Gateway.+-- You can\'t modify the $default route key.+--+-- 'apiKeyRequired', 'updateRouteResponse'_apiKeyRequired' - Specifies whether an API key is required for this route. Supported only+-- for WebSocket APIs.+--+-- 'authorizationScopes', 'updateRouteResponse'_authorizationScopes' - A list of authorization scopes configured on a route. The scopes are+-- used with a JWT authorizer to authorize the method invocation. The+-- authorization works by matching the route scopes against the scopes+-- parsed from the access token in the incoming request. The method+-- invocation is authorized if any route scope matches a claimed scope in+-- the access token. Otherwise, the invocation is not authorized. When the+-- route scope is configured, the client must provide an access token+-- instead of an identity token for authorization purposes.+--+-- 'authorizationType', 'updateRouteResponse'_authorizationType' - The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+--+-- 'authorizerId', 'updateRouteResponse'_authorizerId' - The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+--+-- 'modelSelectionExpression', 'updateRouteResponse'_modelSelectionExpression' - The model selection expression for the route. Supported only for+-- WebSocket APIs.+--+-- 'operationName', 'updateRouteResponse'_operationName' - The operation name for the route.+--+-- 'requestModels', 'updateRouteResponse'_requestModels' - The request models for the route. Supported only for WebSocket APIs.+--+-- 'requestParameters', 'updateRouteResponse'_requestParameters' - The request parameters for the route. Supported only for WebSocket APIs.+--+-- 'routeId', 'updateRouteResponse'_routeId' - The route ID.+--+-- 'routeKey', 'updateRouteResponse'_routeKey' - The route key for the route.+--+-- 'routeResponseSelectionExpression', 'updateRouteResponse'_routeResponseSelectionExpression' - The route response selection expression for the route. Supported only+-- for WebSocket APIs.+--+-- 'target', 'updateRouteResponse'_target' - The target for the route.+--+-- 'httpStatus', 'updateRouteResponse'_httpStatus' - The response's http status code.+newUpdateRouteResponse' ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateRouteResponse'+newUpdateRouteResponse' pHttpStatus_ =+  UpdateRouteResponse''+    { apiGatewayManaged =+        Prelude.Nothing,+      apiKeyRequired = Prelude.Nothing,+      authorizationScopes = Prelude.Nothing,+      authorizationType = Prelude.Nothing,+      authorizerId = Prelude.Nothing,+      modelSelectionExpression = Prelude.Nothing,+      operationName = Prelude.Nothing,+      requestModels = Prelude.Nothing,+      requestParameters = Prelude.Nothing,+      routeId = Prelude.Nothing,+      routeKey = Prelude.Nothing,+      routeResponseSelectionExpression = Prelude.Nothing,+      target = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies whether a route is managed by API Gateway. If you created an+-- API using quick create, the $default route is managed by API Gateway.+-- You can\'t modify the $default route key.+updateRouteResponse'_apiGatewayManaged :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Bool)+updateRouteResponse'_apiGatewayManaged = Lens.lens (\UpdateRouteResponse'' {apiGatewayManaged} -> apiGatewayManaged) (\s@UpdateRouteResponse'' {} a -> s {apiGatewayManaged = a} :: UpdateRouteResponse')++-- | Specifies whether an API key is required for this route. Supported only+-- for WebSocket APIs.+updateRouteResponse'_apiKeyRequired :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Bool)+updateRouteResponse'_apiKeyRequired = Lens.lens (\UpdateRouteResponse'' {apiKeyRequired} -> apiKeyRequired) (\s@UpdateRouteResponse'' {} a -> s {apiKeyRequired = a} :: UpdateRouteResponse')++-- | A list of authorization scopes configured on a route. The scopes are+-- used with a JWT authorizer to authorize the method invocation. The+-- authorization works by matching the route scopes against the scopes+-- parsed from the access token in the incoming request. The method+-- invocation is authorized if any route scope matches a claimed scope in+-- the access token. Otherwise, the invocation is not authorized. When the+-- route scope is configured, the client must provide an access token+-- instead of an identity token for authorization purposes.+updateRouteResponse'_authorizationScopes :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe [Prelude.Text])+updateRouteResponse'_authorizationScopes = Lens.lens (\UpdateRouteResponse'' {authorizationScopes} -> authorizationScopes) (\s@UpdateRouteResponse'' {} a -> s {authorizationScopes = a} :: UpdateRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The authorization type for the route. For WebSocket APIs, valid values+-- are NONE for open access, AWS_IAM for using AWS IAM permissions, and+-- CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are+-- NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using+-- AWS IAM permissions, and CUSTOM for using a Lambda authorizer.+updateRouteResponse'_authorizationType :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe AuthorizationType)+updateRouteResponse'_authorizationType = Lens.lens (\UpdateRouteResponse'' {authorizationType} -> authorizationType) (\s@UpdateRouteResponse'' {} a -> s {authorizationType = a} :: UpdateRouteResponse')++-- | The identifier of the Authorizer resource to be associated with this+-- route. The authorizer identifier is generated by API Gateway when you+-- created the authorizer.+updateRouteResponse'_authorizerId :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Text)+updateRouteResponse'_authorizerId = Lens.lens (\UpdateRouteResponse'' {authorizerId} -> authorizerId) (\s@UpdateRouteResponse'' {} a -> s {authorizerId = a} :: UpdateRouteResponse')++-- | The model selection expression for the route. Supported only for+-- WebSocket APIs.+updateRouteResponse'_modelSelectionExpression :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Text)+updateRouteResponse'_modelSelectionExpression = Lens.lens (\UpdateRouteResponse'' {modelSelectionExpression} -> modelSelectionExpression) (\s@UpdateRouteResponse'' {} a -> s {modelSelectionExpression = a} :: UpdateRouteResponse')++-- | The operation name for the route.+updateRouteResponse'_operationName :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Text)+updateRouteResponse'_operationName = Lens.lens (\UpdateRouteResponse'' {operationName} -> operationName) (\s@UpdateRouteResponse'' {} a -> s {operationName = a} :: UpdateRouteResponse')++-- | The request models for the route. Supported only for WebSocket APIs.+updateRouteResponse'_requestModels :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateRouteResponse'_requestModels = Lens.lens (\UpdateRouteResponse'' {requestModels} -> requestModels) (\s@UpdateRouteResponse'' {} a -> s {requestModels = a} :: UpdateRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The request parameters for the route. Supported only for WebSocket APIs.+updateRouteResponse'_requestParameters :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+updateRouteResponse'_requestParameters = Lens.lens (\UpdateRouteResponse'' {requestParameters} -> requestParameters) (\s@UpdateRouteResponse'' {} a -> s {requestParameters = a} :: UpdateRouteResponse') Prelude.. Lens.mapping Lens.coerced++-- | The route ID.+updateRouteResponse'_routeId :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Text)+updateRouteResponse'_routeId = Lens.lens (\UpdateRouteResponse'' {routeId} -> routeId) (\s@UpdateRouteResponse'' {} a -> s {routeId = a} :: UpdateRouteResponse')++-- | The route key for the route.+updateRouteResponse'_routeKey :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Text)+updateRouteResponse'_routeKey = Lens.lens (\UpdateRouteResponse'' {routeKey} -> routeKey) (\s@UpdateRouteResponse'' {} a -> s {routeKey = a} :: UpdateRouteResponse')++-- | The route response selection expression for the route. Supported only+-- for WebSocket APIs.+updateRouteResponse'_routeResponseSelectionExpression :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Text)+updateRouteResponse'_routeResponseSelectionExpression = Lens.lens (\UpdateRouteResponse'' {routeResponseSelectionExpression} -> routeResponseSelectionExpression) (\s@UpdateRouteResponse'' {} a -> s {routeResponseSelectionExpression = a} :: UpdateRouteResponse')++-- | The target for the route.+updateRouteResponse'_target :: Lens.Lens' UpdateRouteResponse' (Prelude.Maybe Prelude.Text)+updateRouteResponse'_target = Lens.lens (\UpdateRouteResponse'' {target} -> target) (\s@UpdateRouteResponse'' {} a -> s {target = a} :: UpdateRouteResponse')++-- | The response's http status code.+updateRouteResponse'_httpStatus :: Lens.Lens' UpdateRouteResponse' Prelude.Int+updateRouteResponse'_httpStatus = Lens.lens (\UpdateRouteResponse'' {httpStatus} -> httpStatus) (\s@UpdateRouteResponse'' {} a -> s {httpStatus = a} :: UpdateRouteResponse')++instance Prelude.NFData UpdateRouteResponse' where+  rnf UpdateRouteResponse'' {..} =+    Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf apiKeyRequired+      `Prelude.seq` Prelude.rnf authorizationScopes+      `Prelude.seq` Prelude.rnf authorizationType+      `Prelude.seq` Prelude.rnf authorizerId+      `Prelude.seq` Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf operationName+      `Prelude.seq` Prelude.rnf requestModels+      `Prelude.seq` Prelude.rnf requestParameters+      `Prelude.seq` Prelude.rnf routeId+      `Prelude.seq` Prelude.rnf routeKey+      `Prelude.seq` Prelude.rnf routeResponseSelectionExpression+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateRouteResponse.hs view
@@ -0,0 +1,323 @@+{-# 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.ApiGatewayV2.UpdateRouteResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a RouteResponse.+module Amazonka.ApiGatewayV2.UpdateRouteResponse+  ( -- * Creating a Request+    UpdateRouteResponse (..),+    newUpdateRouteResponse,++    -- * Request Lenses+    updateRouteResponse_modelSelectionExpression,+    updateRouteResponse_responseModels,+    updateRouteResponse_responseParameters,+    updateRouteResponse_routeResponseKey,+    updateRouteResponse_routeResponseId,+    updateRouteResponse_apiId,+    updateRouteResponse_routeId,++    -- * Destructuring the Response+    UpdateRouteResponseResponse (..),+    newUpdateRouteResponseResponse,++    -- * Response Lenses+    updateRouteResponseResponse_modelSelectionExpression,+    updateRouteResponseResponse_responseModels,+    updateRouteResponseResponse_responseParameters,+    updateRouteResponseResponse_routeResponseId,+    updateRouteResponseResponse_routeResponseKey,+    updateRouteResponseResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates a RouteResponse.+--+-- /See:/ 'newUpdateRouteResponse' smart constructor.+data UpdateRouteResponse = UpdateRouteResponse'+  { -- | The model selection expression for the route response. Supported only+    -- for WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | The response models for the route response.+    responseModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The route response parameters.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | The route response key.+    routeResponseKey :: Prelude.Maybe Prelude.Text,+    -- | The route response ID.+    routeResponseId :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text,+    -- | The route ID.+    routeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelSelectionExpression', 'updateRouteResponse_modelSelectionExpression' - The model selection expression for the route response. Supported only+-- for WebSocket APIs.+--+-- 'responseModels', 'updateRouteResponse_responseModels' - The response models for the route response.+--+-- 'responseParameters', 'updateRouteResponse_responseParameters' - The route response parameters.+--+-- 'routeResponseKey', 'updateRouteResponse_routeResponseKey' - The route response key.+--+-- 'routeResponseId', 'updateRouteResponse_routeResponseId' - The route response ID.+--+-- 'apiId', 'updateRouteResponse_apiId' - The API identifier.+--+-- 'routeId', 'updateRouteResponse_routeId' - The route ID.+newUpdateRouteResponse ::+  -- | 'routeResponseId'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  -- | 'routeId'+  Prelude.Text ->+  UpdateRouteResponse+newUpdateRouteResponse+  pRouteResponseId_+  pApiId_+  pRouteId_ =+    UpdateRouteResponse'+      { modelSelectionExpression =+          Prelude.Nothing,+        responseModels = Prelude.Nothing,+        responseParameters = Prelude.Nothing,+        routeResponseKey = Prelude.Nothing,+        routeResponseId = pRouteResponseId_,+        apiId = pApiId_,+        routeId = pRouteId_+      }++-- | The model selection expression for the route response. Supported only+-- for WebSocket APIs.+updateRouteResponse_modelSelectionExpression :: Lens.Lens' UpdateRouteResponse (Prelude.Maybe Prelude.Text)+updateRouteResponse_modelSelectionExpression = Lens.lens (\UpdateRouteResponse' {modelSelectionExpression} -> modelSelectionExpression) (\s@UpdateRouteResponse' {} a -> s {modelSelectionExpression = a} :: UpdateRouteResponse)++-- | The response models for the route response.+updateRouteResponse_responseModels :: Lens.Lens' UpdateRouteResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateRouteResponse_responseModels = Lens.lens (\UpdateRouteResponse' {responseModels} -> responseModels) (\s@UpdateRouteResponse' {} a -> s {responseModels = a} :: UpdateRouteResponse) Prelude.. Lens.mapping Lens.coerced++-- | The route response parameters.+updateRouteResponse_responseParameters :: Lens.Lens' UpdateRouteResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+updateRouteResponse_responseParameters = Lens.lens (\UpdateRouteResponse' {responseParameters} -> responseParameters) (\s@UpdateRouteResponse' {} a -> s {responseParameters = a} :: UpdateRouteResponse) Prelude.. Lens.mapping Lens.coerced++-- | The route response key.+updateRouteResponse_routeResponseKey :: Lens.Lens' UpdateRouteResponse (Prelude.Maybe Prelude.Text)+updateRouteResponse_routeResponseKey = Lens.lens (\UpdateRouteResponse' {routeResponseKey} -> routeResponseKey) (\s@UpdateRouteResponse' {} a -> s {routeResponseKey = a} :: UpdateRouteResponse)++-- | The route response ID.+updateRouteResponse_routeResponseId :: Lens.Lens' UpdateRouteResponse Prelude.Text+updateRouteResponse_routeResponseId = Lens.lens (\UpdateRouteResponse' {routeResponseId} -> routeResponseId) (\s@UpdateRouteResponse' {} a -> s {routeResponseId = a} :: UpdateRouteResponse)++-- | The API identifier.+updateRouteResponse_apiId :: Lens.Lens' UpdateRouteResponse Prelude.Text+updateRouteResponse_apiId = Lens.lens (\UpdateRouteResponse' {apiId} -> apiId) (\s@UpdateRouteResponse' {} a -> s {apiId = a} :: UpdateRouteResponse)++-- | The route ID.+updateRouteResponse_routeId :: Lens.Lens' UpdateRouteResponse Prelude.Text+updateRouteResponse_routeId = Lens.lens (\UpdateRouteResponse' {routeId} -> routeId) (\s@UpdateRouteResponse' {} a -> s {routeId = a} :: UpdateRouteResponse)++instance Core.AWSRequest UpdateRouteResponse where+  type+    AWSResponse UpdateRouteResponse =+      UpdateRouteResponseResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRouteResponseResponse'+            Prelude.<$> (x Data..?> "modelSelectionExpression")+            Prelude.<*> (x Data..?> "responseModels" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "responseParameters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "routeResponseId")+            Prelude.<*> (x Data..?> "routeResponseKey")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateRouteResponse where+  hashWithSalt _salt UpdateRouteResponse' {..} =+    _salt+      `Prelude.hashWithSalt` modelSelectionExpression+      `Prelude.hashWithSalt` responseModels+      `Prelude.hashWithSalt` responseParameters+      `Prelude.hashWithSalt` routeResponseKey+      `Prelude.hashWithSalt` routeResponseId+      `Prelude.hashWithSalt` apiId+      `Prelude.hashWithSalt` routeId++instance Prelude.NFData UpdateRouteResponse where+  rnf UpdateRouteResponse' {..} =+    Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf responseModels+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf routeResponseKey+      `Prelude.seq` Prelude.rnf routeResponseId+      `Prelude.seq` Prelude.rnf apiId+      `Prelude.seq` Prelude.rnf routeId++instance Data.ToHeaders UpdateRouteResponse where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRouteResponse where+  toJSON UpdateRouteResponse' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("modelSelectionExpression" Data..=)+              Prelude.<$> modelSelectionExpression,+            ("responseModels" Data..=)+              Prelude.<$> responseModels,+            ("responseParameters" Data..=)+              Prelude.<$> responseParameters,+            ("routeResponseKey" Data..=)+              Prelude.<$> routeResponseKey+          ]+      )++instance Data.ToPath UpdateRouteResponse where+  toPath UpdateRouteResponse' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/routes/",+        Data.toBS routeId,+        "/routeresponses/",+        Data.toBS routeResponseId+      ]++instance Data.ToQuery UpdateRouteResponse where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRouteResponseResponse' smart constructor.+data UpdateRouteResponseResponse = UpdateRouteResponseResponse'+  { -- | Represents the model selection expression of a route response. Supported+    -- only for WebSocket APIs.+    modelSelectionExpression :: Prelude.Maybe Prelude.Text,+    -- | Represents the response models of a route response.+    responseModels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Represents the response parameters of a route response.+    responseParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints),+    -- | Represents the identifier of a route response.+    routeResponseId :: Prelude.Maybe Prelude.Text,+    -- | Represents the route response key of a route response.+    routeResponseKey :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRouteResponseResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelSelectionExpression', 'updateRouteResponseResponse_modelSelectionExpression' - Represents the model selection expression of a route response. Supported+-- only for WebSocket APIs.+--+-- 'responseModels', 'updateRouteResponseResponse_responseModels' - Represents the response models of a route response.+--+-- 'responseParameters', 'updateRouteResponseResponse_responseParameters' - Represents the response parameters of a route response.+--+-- 'routeResponseId', 'updateRouteResponseResponse_routeResponseId' - Represents the identifier of a route response.+--+-- 'routeResponseKey', 'updateRouteResponseResponse_routeResponseKey' - Represents the route response key of a route response.+--+-- 'httpStatus', 'updateRouteResponseResponse_httpStatus' - The response's http status code.+newUpdateRouteResponseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateRouteResponseResponse+newUpdateRouteResponseResponse pHttpStatus_ =+  UpdateRouteResponseResponse'+    { modelSelectionExpression =+        Prelude.Nothing,+      responseModels = Prelude.Nothing,+      responseParameters = Prelude.Nothing,+      routeResponseId = Prelude.Nothing,+      routeResponseKey = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Represents the model selection expression of a route response. Supported+-- only for WebSocket APIs.+updateRouteResponseResponse_modelSelectionExpression :: Lens.Lens' UpdateRouteResponseResponse (Prelude.Maybe Prelude.Text)+updateRouteResponseResponse_modelSelectionExpression = Lens.lens (\UpdateRouteResponseResponse' {modelSelectionExpression} -> modelSelectionExpression) (\s@UpdateRouteResponseResponse' {} a -> s {modelSelectionExpression = a} :: UpdateRouteResponseResponse)++-- | Represents the response models of a route response.+updateRouteResponseResponse_responseModels :: Lens.Lens' UpdateRouteResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateRouteResponseResponse_responseModels = Lens.lens (\UpdateRouteResponseResponse' {responseModels} -> responseModels) (\s@UpdateRouteResponseResponse' {} a -> s {responseModels = a} :: UpdateRouteResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents the response parameters of a route response.+updateRouteResponseResponse_responseParameters :: Lens.Lens' UpdateRouteResponseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ParameterConstraints))+updateRouteResponseResponse_responseParameters = Lens.lens (\UpdateRouteResponseResponse' {responseParameters} -> responseParameters) (\s@UpdateRouteResponseResponse' {} a -> s {responseParameters = a} :: UpdateRouteResponseResponse) Prelude.. Lens.mapping Lens.coerced++-- | Represents the identifier of a route response.+updateRouteResponseResponse_routeResponseId :: Lens.Lens' UpdateRouteResponseResponse (Prelude.Maybe Prelude.Text)+updateRouteResponseResponse_routeResponseId = Lens.lens (\UpdateRouteResponseResponse' {routeResponseId} -> routeResponseId) (\s@UpdateRouteResponseResponse' {} a -> s {routeResponseId = a} :: UpdateRouteResponseResponse)++-- | Represents the route response key of a route response.+updateRouteResponseResponse_routeResponseKey :: Lens.Lens' UpdateRouteResponseResponse (Prelude.Maybe Prelude.Text)+updateRouteResponseResponse_routeResponseKey = Lens.lens (\UpdateRouteResponseResponse' {routeResponseKey} -> routeResponseKey) (\s@UpdateRouteResponseResponse' {} a -> s {routeResponseKey = a} :: UpdateRouteResponseResponse)++-- | The response's http status code.+updateRouteResponseResponse_httpStatus :: Lens.Lens' UpdateRouteResponseResponse Prelude.Int+updateRouteResponseResponse_httpStatus = Lens.lens (\UpdateRouteResponseResponse' {httpStatus} -> httpStatus) (\s@UpdateRouteResponseResponse' {} a -> s {httpStatus = a} :: UpdateRouteResponseResponse)++instance Prelude.NFData UpdateRouteResponseResponse where+  rnf UpdateRouteResponseResponse' {..} =+    Prelude.rnf modelSelectionExpression+      `Prelude.seq` Prelude.rnf responseModels+      `Prelude.seq` Prelude.rnf responseParameters+      `Prelude.seq` Prelude.rnf routeResponseId+      `Prelude.seq` Prelude.rnf routeResponseKey+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateStage.hs view
@@ -0,0 +1,497 @@+{-# 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.ApiGatewayV2.UpdateStage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a Stage.+module Amazonka.ApiGatewayV2.UpdateStage+  ( -- * Creating a Request+    UpdateStage (..),+    newUpdateStage,++    -- * Request Lenses+    updateStage_accessLogSettings,+    updateStage_autoDeploy,+    updateStage_clientCertificateId,+    updateStage_defaultRouteSettings,+    updateStage_deploymentId,+    updateStage_description,+    updateStage_routeSettings,+    updateStage_stageVariables,+    updateStage_stageName,+    updateStage_apiId,++    -- * Destructuring the Response+    UpdateStageResponse (..),+    newUpdateStageResponse,++    -- * Response Lenses+    updateStageResponse_accessLogSettings,+    updateStageResponse_apiGatewayManaged,+    updateStageResponse_autoDeploy,+    updateStageResponse_clientCertificateId,+    updateStageResponse_createdDate,+    updateStageResponse_defaultRouteSettings,+    updateStageResponse_deploymentId,+    updateStageResponse_description,+    updateStageResponse_lastDeploymentStatusMessage,+    updateStageResponse_lastUpdatedDate,+    updateStageResponse_routeSettings,+    updateStageResponse_stageName,+    updateStageResponse_stageVariables,+    updateStageResponse_tags,+    updateStageResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates a Stage.+--+-- /See:/ 'newUpdateStage' smart constructor.+data UpdateStage = UpdateStage'+  { -- | Settings for logging access in this stage.+    accessLogSettings :: Prelude.Maybe AccessLogSettings,+    -- | Specifies whether updates to an API automatically trigger a new+    -- deployment. The default value is false.+    autoDeploy :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of a client certificate for a Stage.+    clientCertificateId :: Prelude.Maybe Prelude.Text,+    -- | The default route settings for the stage.+    defaultRouteSettings :: Prelude.Maybe RouteSettings,+    -- | The deployment identifier for the API stage. Can\'t be updated if+    -- autoDeploy is enabled.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The description for the API stage.+    description :: Prelude.Maybe Prelude.Text,+    -- | Route settings for the stage.+    routeSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings),+    -- | A map that defines the stage variables for a Stage. Variable names can+    -- have alphanumeric and underscore characters, and the values must match+    -- [A-Za-z0-9-._~:\/?#&=,]+.+    stageVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The stage name. Stage names can contain only alphanumeric characters,+    -- hyphens, and underscores, or be $default. Maximum length is 128+    -- characters.+    stageName :: Prelude.Text,+    -- | The API identifier.+    apiId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessLogSettings', 'updateStage_accessLogSettings' - Settings for logging access in this stage.+--+-- 'autoDeploy', 'updateStage_autoDeploy' - Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+--+-- 'clientCertificateId', 'updateStage_clientCertificateId' - The identifier of a client certificate for a Stage.+--+-- 'defaultRouteSettings', 'updateStage_defaultRouteSettings' - The default route settings for the stage.+--+-- 'deploymentId', 'updateStage_deploymentId' - The deployment identifier for the API stage. Can\'t be updated if+-- autoDeploy is enabled.+--+-- 'description', 'updateStage_description' - The description for the API stage.+--+-- 'routeSettings', 'updateStage_routeSettings' - Route settings for the stage.+--+-- 'stageVariables', 'updateStage_stageVariables' - A map that defines the stage variables for a Stage. Variable names can+-- have alphanumeric and underscore characters, and the values must match+-- [A-Za-z0-9-._~:\/?#&=,]+.+--+-- 'stageName', 'updateStage_stageName' - The stage name. Stage names can contain only alphanumeric characters,+-- hyphens, and underscores, or be $default. Maximum length is 128+-- characters.+--+-- 'apiId', 'updateStage_apiId' - The API identifier.+newUpdateStage ::+  -- | 'stageName'+  Prelude.Text ->+  -- | 'apiId'+  Prelude.Text ->+  UpdateStage+newUpdateStage pStageName_ pApiId_ =+  UpdateStage'+    { accessLogSettings = Prelude.Nothing,+      autoDeploy = Prelude.Nothing,+      clientCertificateId = Prelude.Nothing,+      defaultRouteSettings = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      description = Prelude.Nothing,+      routeSettings = Prelude.Nothing,+      stageVariables = Prelude.Nothing,+      stageName = pStageName_,+      apiId = pApiId_+    }++-- | Settings for logging access in this stage.+updateStage_accessLogSettings :: Lens.Lens' UpdateStage (Prelude.Maybe AccessLogSettings)+updateStage_accessLogSettings = Lens.lens (\UpdateStage' {accessLogSettings} -> accessLogSettings) (\s@UpdateStage' {} a -> s {accessLogSettings = a} :: UpdateStage)++-- | Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+updateStage_autoDeploy :: Lens.Lens' UpdateStage (Prelude.Maybe Prelude.Bool)+updateStage_autoDeploy = Lens.lens (\UpdateStage' {autoDeploy} -> autoDeploy) (\s@UpdateStage' {} a -> s {autoDeploy = a} :: UpdateStage)++-- | The identifier of a client certificate for a Stage.+updateStage_clientCertificateId :: Lens.Lens' UpdateStage (Prelude.Maybe Prelude.Text)+updateStage_clientCertificateId = Lens.lens (\UpdateStage' {clientCertificateId} -> clientCertificateId) (\s@UpdateStage' {} a -> s {clientCertificateId = a} :: UpdateStage)++-- | The default route settings for the stage.+updateStage_defaultRouteSettings :: Lens.Lens' UpdateStage (Prelude.Maybe RouteSettings)+updateStage_defaultRouteSettings = Lens.lens (\UpdateStage' {defaultRouteSettings} -> defaultRouteSettings) (\s@UpdateStage' {} a -> s {defaultRouteSettings = a} :: UpdateStage)++-- | The deployment identifier for the API stage. Can\'t be updated if+-- autoDeploy is enabled.+updateStage_deploymentId :: Lens.Lens' UpdateStage (Prelude.Maybe Prelude.Text)+updateStage_deploymentId = Lens.lens (\UpdateStage' {deploymentId} -> deploymentId) (\s@UpdateStage' {} a -> s {deploymentId = a} :: UpdateStage)++-- | The description for the API stage.+updateStage_description :: Lens.Lens' UpdateStage (Prelude.Maybe Prelude.Text)+updateStage_description = Lens.lens (\UpdateStage' {description} -> description) (\s@UpdateStage' {} a -> s {description = a} :: UpdateStage)++-- | Route settings for the stage.+updateStage_routeSettings :: Lens.Lens' UpdateStage (Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings))+updateStage_routeSettings = Lens.lens (\UpdateStage' {routeSettings} -> routeSettings) (\s@UpdateStage' {} a -> s {routeSettings = a} :: UpdateStage) Prelude.. Lens.mapping Lens.coerced++-- | A map that defines the stage variables for a Stage. Variable names can+-- have alphanumeric and underscore characters, and the values must match+-- [A-Za-z0-9-._~:\/?#&=,]+.+updateStage_stageVariables :: Lens.Lens' UpdateStage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateStage_stageVariables = Lens.lens (\UpdateStage' {stageVariables} -> stageVariables) (\s@UpdateStage' {} a -> s {stageVariables = a} :: UpdateStage) Prelude.. Lens.mapping Lens.coerced++-- | The stage name. Stage names can contain only alphanumeric characters,+-- hyphens, and underscores, or be $default. Maximum length is 128+-- characters.+updateStage_stageName :: Lens.Lens' UpdateStage Prelude.Text+updateStage_stageName = Lens.lens (\UpdateStage' {stageName} -> stageName) (\s@UpdateStage' {} a -> s {stageName = a} :: UpdateStage)++-- | The API identifier.+updateStage_apiId :: Lens.Lens' UpdateStage Prelude.Text+updateStage_apiId = Lens.lens (\UpdateStage' {apiId} -> apiId) (\s@UpdateStage' {} a -> s {apiId = a} :: UpdateStage)++instance Core.AWSRequest UpdateStage where+  type AWSResponse UpdateStage = UpdateStageResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateStageResponse'+            Prelude.<$> (x Data..?> "accessLogSettings")+            Prelude.<*> (x Data..?> "apiGatewayManaged")+            Prelude.<*> (x Data..?> "autoDeploy")+            Prelude.<*> (x Data..?> "clientCertificateId")+            Prelude.<*> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "defaultRouteSettings")+            Prelude.<*> (x Data..?> "deploymentId")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "lastDeploymentStatusMessage")+            Prelude.<*> (x Data..?> "lastUpdatedDate")+            Prelude.<*> (x Data..?> "routeSettings" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "stageName")+            Prelude.<*> (x Data..?> "stageVariables" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateStage where+  hashWithSalt _salt UpdateStage' {..} =+    _salt+      `Prelude.hashWithSalt` accessLogSettings+      `Prelude.hashWithSalt` autoDeploy+      `Prelude.hashWithSalt` clientCertificateId+      `Prelude.hashWithSalt` defaultRouteSettings+      `Prelude.hashWithSalt` deploymentId+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` routeSettings+      `Prelude.hashWithSalt` stageVariables+      `Prelude.hashWithSalt` stageName+      `Prelude.hashWithSalt` apiId++instance Prelude.NFData UpdateStage where+  rnf UpdateStage' {..} =+    Prelude.rnf accessLogSettings+      `Prelude.seq` Prelude.rnf autoDeploy+      `Prelude.seq` Prelude.rnf clientCertificateId+      `Prelude.seq` Prelude.rnf defaultRouteSettings+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf routeSettings+      `Prelude.seq` Prelude.rnf stageVariables+      `Prelude.seq` Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf apiId++instance Data.ToHeaders UpdateStage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateStage where+  toJSON UpdateStage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("accessLogSettings" Data..=)+              Prelude.<$> accessLogSettings,+            ("autoDeploy" Data..=) Prelude.<$> autoDeploy,+            ("clientCertificateId" Data..=)+              Prelude.<$> clientCertificateId,+            ("defaultRouteSettings" Data..=)+              Prelude.<$> defaultRouteSettings,+            ("deploymentId" Data..=) Prelude.<$> deploymentId,+            ("description" Data..=) Prelude.<$> description,+            ("routeSettings" Data..=) Prelude.<$> routeSettings,+            ("stageVariables" Data..=)+              Prelude.<$> stageVariables+          ]+      )++instance Data.ToPath UpdateStage where+  toPath UpdateStage' {..} =+    Prelude.mconcat+      [ "/v2/apis/",+        Data.toBS apiId,+        "/stages/",+        Data.toBS stageName+      ]++instance Data.ToQuery UpdateStage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateStageResponse' smart constructor.+data UpdateStageResponse = UpdateStageResponse'+  { -- | Settings for logging access in this stage.+    accessLogSettings :: Prelude.Maybe AccessLogSettings,+    -- | Specifies whether a stage is managed by API Gateway. If you created an+    -- API using quick create, the $default stage is managed by API Gateway.+    -- You can\'t modify the $default stage.+    apiGatewayManaged :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether updates to an API automatically trigger a new+    -- deployment. The default value is false.+    autoDeploy :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of a client certificate for a Stage. Supported only for+    -- WebSocket APIs.+    clientCertificateId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the stage was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | Default route settings for the stage.+    defaultRouteSettings :: Prelude.Maybe RouteSettings,+    -- | The identifier of the Deployment that the Stage is associated with.+    -- Can\'t be updated if autoDeploy is enabled.+    deploymentId :: Prelude.Maybe Prelude.Text,+    -- | The description of the stage.+    description :: Prelude.Maybe Prelude.Text,+    -- | Describes the status of the last deployment of a stage. Supported only+    -- for stages with autoDeploy enabled.+    lastDeploymentStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the stage was last updated.+    lastUpdatedDate :: Prelude.Maybe Data.ISO8601,+    -- | Route settings for the stage, by routeKey.+    routeSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings),+    -- | The name of the stage.+    stageName :: Prelude.Maybe Prelude.Text,+    -- | A map that defines the stage variables for a stage resource. Variable+    -- names can have alphanumeric and underscore characters, and the values+    -- must match [A-Za-z0-9-._~:\/?#&=,]+.+    stageVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The collection of tags. Each tag element is associated with a given+    -- resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessLogSettings', 'updateStageResponse_accessLogSettings' - Settings for logging access in this stage.+--+-- 'apiGatewayManaged', 'updateStageResponse_apiGatewayManaged' - Specifies whether a stage is managed by API Gateway. If you created an+-- API using quick create, the $default stage is managed by API Gateway.+-- You can\'t modify the $default stage.+--+-- 'autoDeploy', 'updateStageResponse_autoDeploy' - Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+--+-- 'clientCertificateId', 'updateStageResponse_clientCertificateId' - The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+--+-- 'createdDate', 'updateStageResponse_createdDate' - The timestamp when the stage was created.+--+-- 'defaultRouteSettings', 'updateStageResponse_defaultRouteSettings' - Default route settings for the stage.+--+-- 'deploymentId', 'updateStageResponse_deploymentId' - The identifier of the Deployment that the Stage is associated with.+-- Can\'t be updated if autoDeploy is enabled.+--+-- 'description', 'updateStageResponse_description' - The description of the stage.+--+-- 'lastDeploymentStatusMessage', 'updateStageResponse_lastDeploymentStatusMessage' - Describes the status of the last deployment of a stage. Supported only+-- for stages with autoDeploy enabled.+--+-- 'lastUpdatedDate', 'updateStageResponse_lastUpdatedDate' - The timestamp when the stage was last updated.+--+-- 'routeSettings', 'updateStageResponse_routeSettings' - Route settings for the stage, by routeKey.+--+-- 'stageName', 'updateStageResponse_stageName' - The name of the stage.+--+-- 'stageVariables', 'updateStageResponse_stageVariables' - A map that defines the stage variables for a stage resource. Variable+-- names can have alphanumeric and underscore characters, and the values+-- must match [A-Za-z0-9-._~:\/?#&=,]+.+--+-- 'tags', 'updateStageResponse_tags' - The collection of tags. Each tag element is associated with a given+-- resource.+--+-- 'httpStatus', 'updateStageResponse_httpStatus' - The response's http status code.+newUpdateStageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateStageResponse+newUpdateStageResponse pHttpStatus_ =+  UpdateStageResponse'+    { accessLogSettings =+        Prelude.Nothing,+      apiGatewayManaged = Prelude.Nothing,+      autoDeploy = Prelude.Nothing,+      clientCertificateId = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      defaultRouteSettings = Prelude.Nothing,+      deploymentId = Prelude.Nothing,+      description = Prelude.Nothing,+      lastDeploymentStatusMessage = Prelude.Nothing,+      lastUpdatedDate = Prelude.Nothing,+      routeSettings = Prelude.Nothing,+      stageName = Prelude.Nothing,+      stageVariables = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Settings for logging access in this stage.+updateStageResponse_accessLogSettings :: Lens.Lens' UpdateStageResponse (Prelude.Maybe AccessLogSettings)+updateStageResponse_accessLogSettings = Lens.lens (\UpdateStageResponse' {accessLogSettings} -> accessLogSettings) (\s@UpdateStageResponse' {} a -> s {accessLogSettings = a} :: UpdateStageResponse)++-- | Specifies whether a stage is managed by API Gateway. If you created an+-- API using quick create, the $default stage is managed by API Gateway.+-- You can\'t modify the $default stage.+updateStageResponse_apiGatewayManaged :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.Bool)+updateStageResponse_apiGatewayManaged = Lens.lens (\UpdateStageResponse' {apiGatewayManaged} -> apiGatewayManaged) (\s@UpdateStageResponse' {} a -> s {apiGatewayManaged = a} :: UpdateStageResponse)++-- | Specifies whether updates to an API automatically trigger a new+-- deployment. The default value is false.+updateStageResponse_autoDeploy :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.Bool)+updateStageResponse_autoDeploy = Lens.lens (\UpdateStageResponse' {autoDeploy} -> autoDeploy) (\s@UpdateStageResponse' {} a -> s {autoDeploy = a} :: UpdateStageResponse)++-- | The identifier of a client certificate for a Stage. Supported only for+-- WebSocket APIs.+updateStageResponse_clientCertificateId :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.Text)+updateStageResponse_clientCertificateId = Lens.lens (\UpdateStageResponse' {clientCertificateId} -> clientCertificateId) (\s@UpdateStageResponse' {} a -> s {clientCertificateId = a} :: UpdateStageResponse)++-- | The timestamp when the stage was created.+updateStageResponse_createdDate :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.UTCTime)+updateStageResponse_createdDate = Lens.lens (\UpdateStageResponse' {createdDate} -> createdDate) (\s@UpdateStageResponse' {} a -> s {createdDate = a} :: UpdateStageResponse) Prelude.. Lens.mapping Data._Time++-- | Default route settings for the stage.+updateStageResponse_defaultRouteSettings :: Lens.Lens' UpdateStageResponse (Prelude.Maybe RouteSettings)+updateStageResponse_defaultRouteSettings = Lens.lens (\UpdateStageResponse' {defaultRouteSettings} -> defaultRouteSettings) (\s@UpdateStageResponse' {} a -> s {defaultRouteSettings = a} :: UpdateStageResponse)++-- | The identifier of the Deployment that the Stage is associated with.+-- Can\'t be updated if autoDeploy is enabled.+updateStageResponse_deploymentId :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.Text)+updateStageResponse_deploymentId = Lens.lens (\UpdateStageResponse' {deploymentId} -> deploymentId) (\s@UpdateStageResponse' {} a -> s {deploymentId = a} :: UpdateStageResponse)++-- | The description of the stage.+updateStageResponse_description :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.Text)+updateStageResponse_description = Lens.lens (\UpdateStageResponse' {description} -> description) (\s@UpdateStageResponse' {} a -> s {description = a} :: UpdateStageResponse)++-- | Describes the status of the last deployment of a stage. Supported only+-- for stages with autoDeploy enabled.+updateStageResponse_lastDeploymentStatusMessage :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.Text)+updateStageResponse_lastDeploymentStatusMessage = Lens.lens (\UpdateStageResponse' {lastDeploymentStatusMessage} -> lastDeploymentStatusMessage) (\s@UpdateStageResponse' {} a -> s {lastDeploymentStatusMessage = a} :: UpdateStageResponse)++-- | The timestamp when the stage was last updated.+updateStageResponse_lastUpdatedDate :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.UTCTime)+updateStageResponse_lastUpdatedDate = Lens.lens (\UpdateStageResponse' {lastUpdatedDate} -> lastUpdatedDate) (\s@UpdateStageResponse' {} a -> s {lastUpdatedDate = a} :: UpdateStageResponse) Prelude.. Lens.mapping Data._Time++-- | Route settings for the stage, by routeKey.+updateStageResponse_routeSettings :: Lens.Lens' UpdateStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings))+updateStageResponse_routeSettings = Lens.lens (\UpdateStageResponse' {routeSettings} -> routeSettings) (\s@UpdateStageResponse' {} a -> s {routeSettings = a} :: UpdateStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the stage.+updateStageResponse_stageName :: Lens.Lens' UpdateStageResponse (Prelude.Maybe Prelude.Text)+updateStageResponse_stageName = Lens.lens (\UpdateStageResponse' {stageName} -> stageName) (\s@UpdateStageResponse' {} a -> s {stageName = a} :: UpdateStageResponse)++-- | A map that defines the stage variables for a stage resource. Variable+-- names can have alphanumeric and underscore characters, and the values+-- must match [A-Za-z0-9-._~:\/?#&=,]+.+updateStageResponse_stageVariables :: Lens.Lens' UpdateStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateStageResponse_stageVariables = Lens.lens (\UpdateStageResponse' {stageVariables} -> stageVariables) (\s@UpdateStageResponse' {} a -> s {stageVariables = a} :: UpdateStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The collection of tags. Each tag element is associated with a given+-- resource.+updateStageResponse_tags :: Lens.Lens' UpdateStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateStageResponse_tags = Lens.lens (\UpdateStageResponse' {tags} -> tags) (\s@UpdateStageResponse' {} a -> s {tags = a} :: UpdateStageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateStageResponse_httpStatus :: Lens.Lens' UpdateStageResponse Prelude.Int+updateStageResponse_httpStatus = Lens.lens (\UpdateStageResponse' {httpStatus} -> httpStatus) (\s@UpdateStageResponse' {} a -> s {httpStatus = a} :: UpdateStageResponse)++instance Prelude.NFData UpdateStageResponse where+  rnf UpdateStageResponse' {..} =+    Prelude.rnf accessLogSettings+      `Prelude.seq` Prelude.rnf apiGatewayManaged+      `Prelude.seq` Prelude.rnf autoDeploy+      `Prelude.seq` Prelude.rnf clientCertificateId+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf defaultRouteSettings+      `Prelude.seq` Prelude.rnf deploymentId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastDeploymentStatusMessage+      `Prelude.seq` Prelude.rnf lastUpdatedDate+      `Prelude.seq` Prelude.rnf routeSettings+      `Prelude.seq` Prelude.rnf stageName+      `Prelude.seq` Prelude.rnf stageVariables+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/UpdateVpcLink.hs view
@@ -0,0 +1,283 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ApiGatewayV2.UpdateVpcLink+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a VPC link.+module Amazonka.ApiGatewayV2.UpdateVpcLink+  ( -- * Creating a Request+    UpdateVpcLink (..),+    newUpdateVpcLink,++    -- * Request Lenses+    updateVpcLink_name,+    updateVpcLink_vpcLinkId,++    -- * Destructuring the Response+    UpdateVpcLinkResponse (..),+    newUpdateVpcLinkResponse,++    -- * Response Lenses+    updateVpcLinkResponse_createdDate,+    updateVpcLinkResponse_name,+    updateVpcLinkResponse_securityGroupIds,+    updateVpcLinkResponse_subnetIds,+    updateVpcLinkResponse_tags,+    updateVpcLinkResponse_vpcLinkId,+    updateVpcLinkResponse_vpcLinkStatus,+    updateVpcLinkResponse_vpcLinkStatusMessage,+    updateVpcLinkResponse_vpcLinkVersion,+    updateVpcLinkResponse_httpStatus,+  )+where++import Amazonka.ApiGatewayV2.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++-- | Updates a VPC link.+--+-- /See:/ 'newUpdateVpcLink' smart constructor.+data UpdateVpcLink = UpdateVpcLink'+  { -- | The name of the VPC link.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ID of the VPC link.+    vpcLinkId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVpcLink' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'updateVpcLink_name' - The name of the VPC link.+--+-- 'vpcLinkId', 'updateVpcLink_vpcLinkId' - The ID of the VPC link.+newUpdateVpcLink ::+  -- | 'vpcLinkId'+  Prelude.Text ->+  UpdateVpcLink+newUpdateVpcLink pVpcLinkId_ =+  UpdateVpcLink'+    { name = Prelude.Nothing,+      vpcLinkId = pVpcLinkId_+    }++-- | The name of the VPC link.+updateVpcLink_name :: Lens.Lens' UpdateVpcLink (Prelude.Maybe Prelude.Text)+updateVpcLink_name = Lens.lens (\UpdateVpcLink' {name} -> name) (\s@UpdateVpcLink' {} a -> s {name = a} :: UpdateVpcLink)++-- | The ID of the VPC link.+updateVpcLink_vpcLinkId :: Lens.Lens' UpdateVpcLink Prelude.Text+updateVpcLink_vpcLinkId = Lens.lens (\UpdateVpcLink' {vpcLinkId} -> vpcLinkId) (\s@UpdateVpcLink' {} a -> s {vpcLinkId = a} :: UpdateVpcLink)++instance Core.AWSRequest UpdateVpcLink where+  type+    AWSResponse UpdateVpcLink =+      UpdateVpcLinkResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateVpcLinkResponse'+            Prelude.<$> (x Data..?> "createdDate")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> ( x+                            Data..?> "securityGroupIds"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "subnetIds" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "vpcLinkId")+            Prelude.<*> (x Data..?> "vpcLinkStatus")+            Prelude.<*> (x Data..?> "vpcLinkStatusMessage")+            Prelude.<*> (x Data..?> "vpcLinkVersion")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateVpcLink where+  hashWithSalt _salt UpdateVpcLink' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` vpcLinkId++instance Prelude.NFData UpdateVpcLink where+  rnf UpdateVpcLink' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf vpcLinkId++instance Data.ToHeaders UpdateVpcLink where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateVpcLink where+  toJSON UpdateVpcLink' {..} =+    Data.object+      ( Prelude.catMaybes+          [("name" Data..=) Prelude.<$> name]+      )++instance Data.ToPath UpdateVpcLink where+  toPath UpdateVpcLink' {..} =+    Prelude.mconcat+      ["/v2/vpclinks/", Data.toBS vpcLinkId]++instance Data.ToQuery UpdateVpcLink where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateVpcLinkResponse' smart constructor.+data UpdateVpcLinkResponse = UpdateVpcLinkResponse'+  { -- | The timestamp when the VPC link was created.+    createdDate :: Prelude.Maybe Data.ISO8601,+    -- | The name of the VPC link.+    name :: Prelude.Maybe Prelude.Text,+    -- | A list of security group IDs for the VPC link.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | A list of subnet IDs to include in the VPC link.+    subnetIds :: Prelude.Maybe [Prelude.Text],+    -- | Tags for the VPC link.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the VPC link.+    vpcLinkId :: Prelude.Maybe Prelude.Text,+    -- | The status of the VPC link.+    vpcLinkStatus :: Prelude.Maybe VpcLinkStatus,+    -- | A message summarizing the cause of the status of the VPC link.+    vpcLinkStatusMessage :: Prelude.Maybe Prelude.Text,+    -- | The version of the VPC link.+    vpcLinkVersion :: Prelude.Maybe VpcLinkVersion,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVpcLinkResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdDate', 'updateVpcLinkResponse_createdDate' - The timestamp when the VPC link was created.+--+-- 'name', 'updateVpcLinkResponse_name' - The name of the VPC link.+--+-- 'securityGroupIds', 'updateVpcLinkResponse_securityGroupIds' - A list of security group IDs for the VPC link.+--+-- 'subnetIds', 'updateVpcLinkResponse_subnetIds' - A list of subnet IDs to include in the VPC link.+--+-- 'tags', 'updateVpcLinkResponse_tags' - Tags for the VPC link.+--+-- 'vpcLinkId', 'updateVpcLinkResponse_vpcLinkId' - The ID of the VPC link.+--+-- 'vpcLinkStatus', 'updateVpcLinkResponse_vpcLinkStatus' - The status of the VPC link.+--+-- 'vpcLinkStatusMessage', 'updateVpcLinkResponse_vpcLinkStatusMessage' - A message summarizing the cause of the status of the VPC link.+--+-- 'vpcLinkVersion', 'updateVpcLinkResponse_vpcLinkVersion' - The version of the VPC link.+--+-- 'httpStatus', 'updateVpcLinkResponse_httpStatus' - The response's http status code.+newUpdateVpcLinkResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateVpcLinkResponse+newUpdateVpcLinkResponse pHttpStatus_ =+  UpdateVpcLinkResponse'+    { createdDate =+        Prelude.Nothing,+      name = Prelude.Nothing,+      securityGroupIds = Prelude.Nothing,+      subnetIds = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcLinkId = Prelude.Nothing,+      vpcLinkStatus = Prelude.Nothing,+      vpcLinkStatusMessage = Prelude.Nothing,+      vpcLinkVersion = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The timestamp when the VPC link was created.+updateVpcLinkResponse_createdDate :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe Prelude.UTCTime)+updateVpcLinkResponse_createdDate = Lens.lens (\UpdateVpcLinkResponse' {createdDate} -> createdDate) (\s@UpdateVpcLinkResponse' {} a -> s {createdDate = a} :: UpdateVpcLinkResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the VPC link.+updateVpcLinkResponse_name :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe Prelude.Text)+updateVpcLinkResponse_name = Lens.lens (\UpdateVpcLinkResponse' {name} -> name) (\s@UpdateVpcLinkResponse' {} a -> s {name = a} :: UpdateVpcLinkResponse)++-- | A list of security group IDs for the VPC link.+updateVpcLinkResponse_securityGroupIds :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe [Prelude.Text])+updateVpcLinkResponse_securityGroupIds = Lens.lens (\UpdateVpcLinkResponse' {securityGroupIds} -> securityGroupIds) (\s@UpdateVpcLinkResponse' {} a -> s {securityGroupIds = a} :: UpdateVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of subnet IDs to include in the VPC link.+updateVpcLinkResponse_subnetIds :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe [Prelude.Text])+updateVpcLinkResponse_subnetIds = Lens.lens (\UpdateVpcLinkResponse' {subnetIds} -> subnetIds) (\s@UpdateVpcLinkResponse' {} a -> s {subnetIds = a} :: UpdateVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | Tags for the VPC link.+updateVpcLinkResponse_tags :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateVpcLinkResponse_tags = Lens.lens (\UpdateVpcLinkResponse' {tags} -> tags) (\s@UpdateVpcLinkResponse' {} a -> s {tags = a} :: UpdateVpcLinkResponse) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the VPC link.+updateVpcLinkResponse_vpcLinkId :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe Prelude.Text)+updateVpcLinkResponse_vpcLinkId = Lens.lens (\UpdateVpcLinkResponse' {vpcLinkId} -> vpcLinkId) (\s@UpdateVpcLinkResponse' {} a -> s {vpcLinkId = a} :: UpdateVpcLinkResponse)++-- | The status of the VPC link.+updateVpcLinkResponse_vpcLinkStatus :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe VpcLinkStatus)+updateVpcLinkResponse_vpcLinkStatus = Lens.lens (\UpdateVpcLinkResponse' {vpcLinkStatus} -> vpcLinkStatus) (\s@UpdateVpcLinkResponse' {} a -> s {vpcLinkStatus = a} :: UpdateVpcLinkResponse)++-- | A message summarizing the cause of the status of the VPC link.+updateVpcLinkResponse_vpcLinkStatusMessage :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe Prelude.Text)+updateVpcLinkResponse_vpcLinkStatusMessage = Lens.lens (\UpdateVpcLinkResponse' {vpcLinkStatusMessage} -> vpcLinkStatusMessage) (\s@UpdateVpcLinkResponse' {} a -> s {vpcLinkStatusMessage = a} :: UpdateVpcLinkResponse)++-- | The version of the VPC link.+updateVpcLinkResponse_vpcLinkVersion :: Lens.Lens' UpdateVpcLinkResponse (Prelude.Maybe VpcLinkVersion)+updateVpcLinkResponse_vpcLinkVersion = Lens.lens (\UpdateVpcLinkResponse' {vpcLinkVersion} -> vpcLinkVersion) (\s@UpdateVpcLinkResponse' {} a -> s {vpcLinkVersion = a} :: UpdateVpcLinkResponse)++-- | The response's http status code.+updateVpcLinkResponse_httpStatus :: Lens.Lens' UpdateVpcLinkResponse Prelude.Int+updateVpcLinkResponse_httpStatus = Lens.lens (\UpdateVpcLinkResponse' {httpStatus} -> httpStatus) (\s@UpdateVpcLinkResponse' {} a -> s {httpStatus = a} :: UpdateVpcLinkResponse)++instance Prelude.NFData UpdateVpcLinkResponse where+  rnf UpdateVpcLinkResponse' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcLinkId+      `Prelude.seq` Prelude.rnf vpcLinkStatus+      `Prelude.seq` Prelude.rnf vpcLinkStatusMessage+      `Prelude.seq` Prelude.rnf vpcLinkVersion+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ApiGatewayV2/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.ApiGatewayV2.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.ApiGatewayV2.Waiters where++import Amazonka.ApiGatewayV2.Lens+import Amazonka.ApiGatewayV2.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.ApiGatewayV2+import Test.Amazonka.ApiGatewayV2.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "ApiGatewayV2"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/ApiGatewayV2.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.ApiGatewayV2+-- 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.ApiGatewayV2+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/ApiGatewayV2/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.ApiGatewayV2.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.ApiGatewayV2.Internal where
+ test/Test/Amazonka/Gen/ApiGatewayV2.hs view
@@ -0,0 +1,1478 @@+{-# 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.ApiGatewayV2+-- 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.ApiGatewayV2 where++import Amazonka.ApiGatewayV2+import qualified Data.Proxy as Proxy+import Test.Amazonka.ApiGatewayV2.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"+--         [ requestCreateApi $+--             newCreateApi+--+--         , requestCreateApiMapping $+--             newCreateApiMapping+--+--         , requestCreateAuthorizer $+--             newCreateAuthorizer+--+--         , requestCreateDeployment $+--             newCreateDeployment+--+--         , requestCreateDomainName $+--             newCreateDomainName+--+--         , requestCreateIntegration $+--             newCreateIntegration+--+--         , requestCreateIntegrationResponse $+--             newCreateIntegrationResponse+--+--         , requestCreateModel $+--             newCreateModel+--+--         , requestCreateRoute $+--             newCreateRoute+--+--         , requestCreateRouteResponse $+--             newCreateRouteResponse+--+--         , requestCreateStage $+--             newCreateStage+--+--         , requestCreateVpcLink $+--             newCreateVpcLink+--+--         , requestDeleteAccessLogSettings $+--             newDeleteAccessLogSettings+--+--         , requestDeleteApi $+--             newDeleteApi+--+--         , requestDeleteApiMapping $+--             newDeleteApiMapping+--+--         , requestDeleteAuthorizer $+--             newDeleteAuthorizer+--+--         , requestDeleteCorsConfiguration $+--             newDeleteCorsConfiguration+--+--         , requestDeleteDeployment $+--             newDeleteDeployment+--+--         , requestDeleteDomainName $+--             newDeleteDomainName+--+--         , requestDeleteIntegration $+--             newDeleteIntegration+--+--         , requestDeleteIntegrationResponse $+--             newDeleteIntegrationResponse+--+--         , requestDeleteModel $+--             newDeleteModel+--+--         , requestDeleteRoute $+--             newDeleteRoute+--+--         , requestDeleteRouteRequestParameter $+--             newDeleteRouteRequestParameter+--+--         , requestDeleteRouteResponse $+--             newDeleteRouteResponse+--+--         , requestDeleteRouteSettings $+--             newDeleteRouteSettings+--+--         , requestDeleteStage $+--             newDeleteStage+--+--         , requestDeleteVpcLink $+--             newDeleteVpcLink+--+--         , requestExportApi $+--             newExportApi+--+--         , requestGetApi $+--             newGetApi+--+--         , requestGetApiMapping $+--             newGetApiMapping+--+--         , requestGetApiMappings $+--             newGetApiMappings+--+--         , requestGetApis $+--             newGetApis+--+--         , requestGetAuthorizer $+--             newGetAuthorizer+--+--         , requestGetAuthorizers $+--             newGetAuthorizers+--+--         , requestGetDeployment $+--             newGetDeployment+--+--         , requestGetDeployments $+--             newGetDeployments+--+--         , requestGetDomainName $+--             newGetDomainName+--+--         , requestGetDomainNames $+--             newGetDomainNames+--+--         , requestGetIntegration $+--             newGetIntegration+--+--         , requestGetIntegrationResponse $+--             newGetIntegrationResponse+--+--         , requestGetIntegrationResponses $+--             newGetIntegrationResponses+--+--         , requestGetIntegrations $+--             newGetIntegrations+--+--         , requestGetModel $+--             newGetModel+--+--         , requestGetModelTemplate $+--             newGetModelTemplate+--+--         , requestGetModels $+--             newGetModels+--+--         , requestGetRoute $+--             newGetRoute+--+--         , requestGetRouteResponse $+--             newGetRouteResponse+--+--         , requestGetRouteResponses $+--             newGetRouteResponses+--+--         , requestGetRoutes $+--             newGetRoutes+--+--         , requestGetStage $+--             newGetStage+--+--         , requestGetStages $+--             newGetStages+--+--         , requestGetTags $+--             newGetTags+--+--         , requestGetVpcLink $+--             newGetVpcLink+--+--         , requestGetVpcLinks $+--             newGetVpcLinks+--+--         , requestImportApi $+--             newImportApi+--+--         , requestReimportApi $+--             newReimportApi+--+--         , requestResetAuthorizersCache $+--             newResetAuthorizersCache+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateApi $+--             newUpdateApi+--+--         , requestUpdateApiMapping $+--             newUpdateApiMapping+--+--         , requestUpdateAuthorizer $+--             newUpdateAuthorizer+--+--         , requestUpdateDeployment $+--             newUpdateDeployment+--+--         , requestUpdateDomainName $+--             newUpdateDomainName+--+--         , requestUpdateIntegration $+--             newUpdateIntegration+--+--         , requestUpdateIntegrationResponse $+--             newUpdateIntegrationResponse+--+--         , requestUpdateModel $+--             newUpdateModel+--+--         , requestUpdateRoute $+--             newUpdateRoute+--+--         , requestUpdateRouteResponse $+--             newUpdateRouteResponse+--+--         , requestUpdateStage $+--             newUpdateStage+--+--         , requestUpdateVpcLink $+--             newUpdateVpcLink+--+--           ]++--     , testGroup "response"+--         [ responseCreateApi $+--             newCreateApiResponse+--+--         , responseCreateApiMapping $+--             newCreateApiMappingResponse+--+--         , responseCreateAuthorizer $+--             newCreateAuthorizerResponse+--+--         , responseCreateDeployment $+--             newCreateDeploymentResponse+--+--         , responseCreateDomainName $+--             newCreateDomainNameResponse+--+--         , responseCreateIntegration $+--             newCreateIntegrationResponse'+--+--         , responseCreateIntegrationResponse $+--             newCreateIntegrationResponseResponse+--+--         , responseCreateModel $+--             newCreateModelResponse+--+--         , responseCreateRoute $+--             newCreateRouteResponse'+--+--         , responseCreateRouteResponse $+--             newCreateRouteResponseResponse+--+--         , responseCreateStage $+--             newCreateStageResponse+--+--         , responseCreateVpcLink $+--             newCreateVpcLinkResponse+--+--         , responseDeleteAccessLogSettings $+--             newDeleteAccessLogSettingsResponse+--+--         , responseDeleteApi $+--             newDeleteApiResponse+--+--         , responseDeleteApiMapping $+--             newDeleteApiMappingResponse+--+--         , responseDeleteAuthorizer $+--             newDeleteAuthorizerResponse+--+--         , responseDeleteCorsConfiguration $+--             newDeleteCorsConfigurationResponse+--+--         , responseDeleteDeployment $+--             newDeleteDeploymentResponse+--+--         , responseDeleteDomainName $+--             newDeleteDomainNameResponse+--+--         , responseDeleteIntegration $+--             newDeleteIntegrationResponse'+--+--         , responseDeleteIntegrationResponse $+--             newDeleteIntegrationResponseResponse+--+--         , responseDeleteModel $+--             newDeleteModelResponse+--+--         , responseDeleteRoute $+--             newDeleteRouteResponse'+--+--         , responseDeleteRouteRequestParameter $+--             newDeleteRouteRequestParameterResponse+--+--         , responseDeleteRouteResponse $+--             newDeleteRouteResponseResponse+--+--         , responseDeleteRouteSettings $+--             newDeleteRouteSettingsResponse+--+--         , responseDeleteStage $+--             newDeleteStageResponse+--+--         , responseDeleteVpcLink $+--             newDeleteVpcLinkResponse+--+--         , responseExportApi $+--             newExportApiResponse+--+--         , responseGetApi $+--             newGetApiResponse+--+--         , responseGetApiMapping $+--             newGetApiMappingResponse+--+--         , responseGetApiMappings $+--             newGetApiMappingsResponse+--+--         , responseGetApis $+--             newGetApisResponse+--+--         , responseGetAuthorizer $+--             newGetAuthorizerResponse+--+--         , responseGetAuthorizers $+--             newGetAuthorizersResponse+--+--         , responseGetDeployment $+--             newGetDeploymentResponse+--+--         , responseGetDeployments $+--             newGetDeploymentsResponse+--+--         , responseGetDomainName $+--             newGetDomainNameResponse+--+--         , responseGetDomainNames $+--             newGetDomainNamesResponse+--+--         , responseGetIntegration $+--             newGetIntegrationResponse'+--+--         , responseGetIntegrationResponse $+--             newGetIntegrationResponseResponse+--+--         , responseGetIntegrationResponses $+--             newGetIntegrationResponsesResponse+--+--         , responseGetIntegrations $+--             newGetIntegrationsResponse+--+--         , responseGetModel $+--             newGetModelResponse+--+--         , responseGetModelTemplate $+--             newGetModelTemplateResponse+--+--         , responseGetModels $+--             newGetModelsResponse+--+--         , responseGetRoute $+--             newGetRouteResponse'+--+--         , responseGetRouteResponse $+--             newGetRouteResponseResponse+--+--         , responseGetRouteResponses $+--             newGetRouteResponsesResponse+--+--         , responseGetRoutes $+--             newGetRoutesResponse+--+--         , responseGetStage $+--             newGetStageResponse+--+--         , responseGetStages $+--             newGetStagesResponse+--+--         , responseGetTags $+--             newGetTagsResponse+--+--         , responseGetVpcLink $+--             newGetVpcLinkResponse+--+--         , responseGetVpcLinks $+--             newGetVpcLinksResponse+--+--         , responseImportApi $+--             newImportApiResponse+--+--         , responseReimportApi $+--             newReimportApiResponse+--+--         , responseResetAuthorizersCache $+--             newResetAuthorizersCacheResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateApi $+--             newUpdateApiResponse+--+--         , responseUpdateApiMapping $+--             newUpdateApiMappingResponse+--+--         , responseUpdateAuthorizer $+--             newUpdateAuthorizerResponse+--+--         , responseUpdateDeployment $+--             newUpdateDeploymentResponse+--+--         , responseUpdateDomainName $+--             newUpdateDomainNameResponse+--+--         , responseUpdateIntegration $+--             newUpdateIntegrationResponse'+--+--         , responseUpdateIntegrationResponse $+--             newUpdateIntegrationResponseResponse+--+--         , responseUpdateModel $+--             newUpdateModelResponse+--+--         , responseUpdateRoute $+--             newUpdateRouteResponse'+--+--         , responseUpdateRouteResponse $+--             newUpdateRouteResponseResponse+--+--         , responseUpdateStage $+--             newUpdateStageResponse+--+--         , responseUpdateVpcLink $+--             newUpdateVpcLinkResponse+--+--           ]+--     ]++-- Requests++requestCreateApi :: CreateApi -> TestTree+requestCreateApi =+  req+    "CreateApi"+    "fixture/CreateApi.yaml"++requestCreateApiMapping :: CreateApiMapping -> TestTree+requestCreateApiMapping =+  req+    "CreateApiMapping"+    "fixture/CreateApiMapping.yaml"++requestCreateAuthorizer :: CreateAuthorizer -> TestTree+requestCreateAuthorizer =+  req+    "CreateAuthorizer"+    "fixture/CreateAuthorizer.yaml"++requestCreateDeployment :: CreateDeployment -> TestTree+requestCreateDeployment =+  req+    "CreateDeployment"+    "fixture/CreateDeployment.yaml"++requestCreateDomainName :: CreateDomainName -> TestTree+requestCreateDomainName =+  req+    "CreateDomainName"+    "fixture/CreateDomainName.yaml"++requestCreateIntegration :: CreateIntegration -> TestTree+requestCreateIntegration =+  req+    "CreateIntegration"+    "fixture/CreateIntegration.yaml"++requestCreateIntegrationResponse :: CreateIntegrationResponse -> TestTree+requestCreateIntegrationResponse =+  req+    "CreateIntegrationResponse"+    "fixture/CreateIntegrationResponse.yaml"++requestCreateModel :: CreateModel -> TestTree+requestCreateModel =+  req+    "CreateModel"+    "fixture/CreateModel.yaml"++requestCreateRoute :: CreateRoute -> TestTree+requestCreateRoute =+  req+    "CreateRoute"+    "fixture/CreateRoute.yaml"++requestCreateRouteResponse :: CreateRouteResponse -> TestTree+requestCreateRouteResponse =+  req+    "CreateRouteResponse"+    "fixture/CreateRouteResponse.yaml"++requestCreateStage :: CreateStage -> TestTree+requestCreateStage =+  req+    "CreateStage"+    "fixture/CreateStage.yaml"++requestCreateVpcLink :: CreateVpcLink -> TestTree+requestCreateVpcLink =+  req+    "CreateVpcLink"+    "fixture/CreateVpcLink.yaml"++requestDeleteAccessLogSettings :: DeleteAccessLogSettings -> TestTree+requestDeleteAccessLogSettings =+  req+    "DeleteAccessLogSettings"+    "fixture/DeleteAccessLogSettings.yaml"++requestDeleteApi :: DeleteApi -> TestTree+requestDeleteApi =+  req+    "DeleteApi"+    "fixture/DeleteApi.yaml"++requestDeleteApiMapping :: DeleteApiMapping -> TestTree+requestDeleteApiMapping =+  req+    "DeleteApiMapping"+    "fixture/DeleteApiMapping.yaml"++requestDeleteAuthorizer :: DeleteAuthorizer -> TestTree+requestDeleteAuthorizer =+  req+    "DeleteAuthorizer"+    "fixture/DeleteAuthorizer.yaml"++requestDeleteCorsConfiguration :: DeleteCorsConfiguration -> TestTree+requestDeleteCorsConfiguration =+  req+    "DeleteCorsConfiguration"+    "fixture/DeleteCorsConfiguration.yaml"++requestDeleteDeployment :: DeleteDeployment -> TestTree+requestDeleteDeployment =+  req+    "DeleteDeployment"+    "fixture/DeleteDeployment.yaml"++requestDeleteDomainName :: DeleteDomainName -> TestTree+requestDeleteDomainName =+  req+    "DeleteDomainName"+    "fixture/DeleteDomainName.yaml"++requestDeleteIntegration :: DeleteIntegration -> TestTree+requestDeleteIntegration =+  req+    "DeleteIntegration"+    "fixture/DeleteIntegration.yaml"++requestDeleteIntegrationResponse :: DeleteIntegrationResponse -> TestTree+requestDeleteIntegrationResponse =+  req+    "DeleteIntegrationResponse"+    "fixture/DeleteIntegrationResponse.yaml"++requestDeleteModel :: DeleteModel -> TestTree+requestDeleteModel =+  req+    "DeleteModel"+    "fixture/DeleteModel.yaml"++requestDeleteRoute :: DeleteRoute -> TestTree+requestDeleteRoute =+  req+    "DeleteRoute"+    "fixture/DeleteRoute.yaml"++requestDeleteRouteRequestParameter :: DeleteRouteRequestParameter -> TestTree+requestDeleteRouteRequestParameter =+  req+    "DeleteRouteRequestParameter"+    "fixture/DeleteRouteRequestParameter.yaml"++requestDeleteRouteResponse :: DeleteRouteResponse -> TestTree+requestDeleteRouteResponse =+  req+    "DeleteRouteResponse"+    "fixture/DeleteRouteResponse.yaml"++requestDeleteRouteSettings :: DeleteRouteSettings -> TestTree+requestDeleteRouteSettings =+  req+    "DeleteRouteSettings"+    "fixture/DeleteRouteSettings.yaml"++requestDeleteStage :: DeleteStage -> TestTree+requestDeleteStage =+  req+    "DeleteStage"+    "fixture/DeleteStage.yaml"++requestDeleteVpcLink :: DeleteVpcLink -> TestTree+requestDeleteVpcLink =+  req+    "DeleteVpcLink"+    "fixture/DeleteVpcLink.yaml"++requestExportApi :: ExportApi -> TestTree+requestExportApi =+  req+    "ExportApi"+    "fixture/ExportApi.yaml"++requestGetApi :: GetApi -> TestTree+requestGetApi =+  req+    "GetApi"+    "fixture/GetApi.yaml"++requestGetApiMapping :: GetApiMapping -> TestTree+requestGetApiMapping =+  req+    "GetApiMapping"+    "fixture/GetApiMapping.yaml"++requestGetApiMappings :: GetApiMappings -> TestTree+requestGetApiMappings =+  req+    "GetApiMappings"+    "fixture/GetApiMappings.yaml"++requestGetApis :: GetApis -> TestTree+requestGetApis =+  req+    "GetApis"+    "fixture/GetApis.yaml"++requestGetAuthorizer :: GetAuthorizer -> TestTree+requestGetAuthorizer =+  req+    "GetAuthorizer"+    "fixture/GetAuthorizer.yaml"++requestGetAuthorizers :: GetAuthorizers -> TestTree+requestGetAuthorizers =+  req+    "GetAuthorizers"+    "fixture/GetAuthorizers.yaml"++requestGetDeployment :: GetDeployment -> TestTree+requestGetDeployment =+  req+    "GetDeployment"+    "fixture/GetDeployment.yaml"++requestGetDeployments :: GetDeployments -> TestTree+requestGetDeployments =+  req+    "GetDeployments"+    "fixture/GetDeployments.yaml"++requestGetDomainName :: GetDomainName -> TestTree+requestGetDomainName =+  req+    "GetDomainName"+    "fixture/GetDomainName.yaml"++requestGetDomainNames :: GetDomainNames -> TestTree+requestGetDomainNames =+  req+    "GetDomainNames"+    "fixture/GetDomainNames.yaml"++requestGetIntegration :: GetIntegration -> TestTree+requestGetIntegration =+  req+    "GetIntegration"+    "fixture/GetIntegration.yaml"++requestGetIntegrationResponse :: GetIntegrationResponse -> TestTree+requestGetIntegrationResponse =+  req+    "GetIntegrationResponse"+    "fixture/GetIntegrationResponse.yaml"++requestGetIntegrationResponses :: GetIntegrationResponses -> TestTree+requestGetIntegrationResponses =+  req+    "GetIntegrationResponses"+    "fixture/GetIntegrationResponses.yaml"++requestGetIntegrations :: GetIntegrations -> TestTree+requestGetIntegrations =+  req+    "GetIntegrations"+    "fixture/GetIntegrations.yaml"++requestGetModel :: GetModel -> TestTree+requestGetModel =+  req+    "GetModel"+    "fixture/GetModel.yaml"++requestGetModelTemplate :: GetModelTemplate -> TestTree+requestGetModelTemplate =+  req+    "GetModelTemplate"+    "fixture/GetModelTemplate.yaml"++requestGetModels :: GetModels -> TestTree+requestGetModels =+  req+    "GetModels"+    "fixture/GetModels.yaml"++requestGetRoute :: GetRoute -> TestTree+requestGetRoute =+  req+    "GetRoute"+    "fixture/GetRoute.yaml"++requestGetRouteResponse :: GetRouteResponse -> TestTree+requestGetRouteResponse =+  req+    "GetRouteResponse"+    "fixture/GetRouteResponse.yaml"++requestGetRouteResponses :: GetRouteResponses -> TestTree+requestGetRouteResponses =+  req+    "GetRouteResponses"+    "fixture/GetRouteResponses.yaml"++requestGetRoutes :: GetRoutes -> TestTree+requestGetRoutes =+  req+    "GetRoutes"+    "fixture/GetRoutes.yaml"++requestGetStage :: GetStage -> TestTree+requestGetStage =+  req+    "GetStage"+    "fixture/GetStage.yaml"++requestGetStages :: GetStages -> TestTree+requestGetStages =+  req+    "GetStages"+    "fixture/GetStages.yaml"++requestGetTags :: GetTags -> TestTree+requestGetTags =+  req+    "GetTags"+    "fixture/GetTags.yaml"++requestGetVpcLink :: GetVpcLink -> TestTree+requestGetVpcLink =+  req+    "GetVpcLink"+    "fixture/GetVpcLink.yaml"++requestGetVpcLinks :: GetVpcLinks -> TestTree+requestGetVpcLinks =+  req+    "GetVpcLinks"+    "fixture/GetVpcLinks.yaml"++requestImportApi :: ImportApi -> TestTree+requestImportApi =+  req+    "ImportApi"+    "fixture/ImportApi.yaml"++requestReimportApi :: ReimportApi -> TestTree+requestReimportApi =+  req+    "ReimportApi"+    "fixture/ReimportApi.yaml"++requestResetAuthorizersCache :: ResetAuthorizersCache -> TestTree+requestResetAuthorizersCache =+  req+    "ResetAuthorizersCache"+    "fixture/ResetAuthorizersCache.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateApi :: UpdateApi -> TestTree+requestUpdateApi =+  req+    "UpdateApi"+    "fixture/UpdateApi.yaml"++requestUpdateApiMapping :: UpdateApiMapping -> TestTree+requestUpdateApiMapping =+  req+    "UpdateApiMapping"+    "fixture/UpdateApiMapping.yaml"++requestUpdateAuthorizer :: UpdateAuthorizer -> TestTree+requestUpdateAuthorizer =+  req+    "UpdateAuthorizer"+    "fixture/UpdateAuthorizer.yaml"++requestUpdateDeployment :: UpdateDeployment -> TestTree+requestUpdateDeployment =+  req+    "UpdateDeployment"+    "fixture/UpdateDeployment.yaml"++requestUpdateDomainName :: UpdateDomainName -> TestTree+requestUpdateDomainName =+  req+    "UpdateDomainName"+    "fixture/UpdateDomainName.yaml"++requestUpdateIntegration :: UpdateIntegration -> TestTree+requestUpdateIntegration =+  req+    "UpdateIntegration"+    "fixture/UpdateIntegration.yaml"++requestUpdateIntegrationResponse :: UpdateIntegrationResponse -> TestTree+requestUpdateIntegrationResponse =+  req+    "UpdateIntegrationResponse"+    "fixture/UpdateIntegrationResponse.yaml"++requestUpdateModel :: UpdateModel -> TestTree+requestUpdateModel =+  req+    "UpdateModel"+    "fixture/UpdateModel.yaml"++requestUpdateRoute :: UpdateRoute -> TestTree+requestUpdateRoute =+  req+    "UpdateRoute"+    "fixture/UpdateRoute.yaml"++requestUpdateRouteResponse :: UpdateRouteResponse -> TestTree+requestUpdateRouteResponse =+  req+    "UpdateRouteResponse"+    "fixture/UpdateRouteResponse.yaml"++requestUpdateStage :: UpdateStage -> TestTree+requestUpdateStage =+  req+    "UpdateStage"+    "fixture/UpdateStage.yaml"++requestUpdateVpcLink :: UpdateVpcLink -> TestTree+requestUpdateVpcLink =+  req+    "UpdateVpcLink"+    "fixture/UpdateVpcLink.yaml"++-- Responses++responseCreateApi :: CreateApiResponse -> TestTree+responseCreateApi =+  res+    "CreateApiResponse"+    "fixture/CreateApiResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateApi)++responseCreateApiMapping :: CreateApiMappingResponse -> TestTree+responseCreateApiMapping =+  res+    "CreateApiMappingResponse"+    "fixture/CreateApiMappingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateApiMapping)++responseCreateAuthorizer :: CreateAuthorizerResponse -> TestTree+responseCreateAuthorizer =+  res+    "CreateAuthorizerResponse"+    "fixture/CreateAuthorizerResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAuthorizer)++responseCreateDeployment :: CreateDeploymentResponse -> TestTree+responseCreateDeployment =+  res+    "CreateDeploymentResponse"+    "fixture/CreateDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDeployment)++responseCreateDomainName :: CreateDomainNameResponse -> TestTree+responseCreateDomainName =+  res+    "CreateDomainNameResponse"+    "fixture/CreateDomainNameResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDomainName)++responseCreateIntegration :: CreateIntegrationResponse' -> TestTree+responseCreateIntegration =+  res+    "CreateIntegrationResponse"+    "fixture/CreateIntegrationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateIntegration)++responseCreateIntegrationResponse :: CreateIntegrationResponseResponse -> TestTree+responseCreateIntegrationResponse =+  res+    "CreateIntegrationResponseResponse"+    "fixture/CreateIntegrationResponseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateIntegrationResponse)++responseCreateModel :: CreateModelResponse -> TestTree+responseCreateModel =+  res+    "CreateModelResponse"+    "fixture/CreateModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateModel)++responseCreateRoute :: CreateRouteResponse' -> TestTree+responseCreateRoute =+  res+    "CreateRouteResponse"+    "fixture/CreateRouteResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRoute)++responseCreateRouteResponse :: CreateRouteResponseResponse -> TestTree+responseCreateRouteResponse =+  res+    "CreateRouteResponseResponse"+    "fixture/CreateRouteResponseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRouteResponse)++responseCreateStage :: CreateStageResponse -> TestTree+responseCreateStage =+  res+    "CreateStageResponse"+    "fixture/CreateStageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateStage)++responseCreateVpcLink :: CreateVpcLinkResponse -> TestTree+responseCreateVpcLink =+  res+    "CreateVpcLinkResponse"+    "fixture/CreateVpcLinkResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVpcLink)++responseDeleteAccessLogSettings :: DeleteAccessLogSettingsResponse -> TestTree+responseDeleteAccessLogSettings =+  res+    "DeleteAccessLogSettingsResponse"+    "fixture/DeleteAccessLogSettingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAccessLogSettings)++responseDeleteApi :: DeleteApiResponse -> TestTree+responseDeleteApi =+  res+    "DeleteApiResponse"+    "fixture/DeleteApiResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteApi)++responseDeleteApiMapping :: DeleteApiMappingResponse -> TestTree+responseDeleteApiMapping =+  res+    "DeleteApiMappingResponse"+    "fixture/DeleteApiMappingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteApiMapping)++responseDeleteAuthorizer :: DeleteAuthorizerResponse -> TestTree+responseDeleteAuthorizer =+  res+    "DeleteAuthorizerResponse"+    "fixture/DeleteAuthorizerResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAuthorizer)++responseDeleteCorsConfiguration :: DeleteCorsConfigurationResponse -> TestTree+responseDeleteCorsConfiguration =+  res+    "DeleteCorsConfigurationResponse"+    "fixture/DeleteCorsConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteCorsConfiguration)++responseDeleteDeployment :: DeleteDeploymentResponse -> TestTree+responseDeleteDeployment =+  res+    "DeleteDeploymentResponse"+    "fixture/DeleteDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDeployment)++responseDeleteDomainName :: DeleteDomainNameResponse -> TestTree+responseDeleteDomainName =+  res+    "DeleteDomainNameResponse"+    "fixture/DeleteDomainNameResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDomainName)++responseDeleteIntegration :: DeleteIntegrationResponse' -> TestTree+responseDeleteIntegration =+  res+    "DeleteIntegrationResponse"+    "fixture/DeleteIntegrationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteIntegration)++responseDeleteIntegrationResponse :: DeleteIntegrationResponseResponse -> TestTree+responseDeleteIntegrationResponse =+  res+    "DeleteIntegrationResponseResponse"+    "fixture/DeleteIntegrationResponseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteIntegrationResponse)++responseDeleteModel :: DeleteModelResponse -> TestTree+responseDeleteModel =+  res+    "DeleteModelResponse"+    "fixture/DeleteModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteModel)++responseDeleteRoute :: DeleteRouteResponse' -> TestTree+responseDeleteRoute =+  res+    "DeleteRouteResponse"+    "fixture/DeleteRouteResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRoute)++responseDeleteRouteRequestParameter :: DeleteRouteRequestParameterResponse -> TestTree+responseDeleteRouteRequestParameter =+  res+    "DeleteRouteRequestParameterResponse"+    "fixture/DeleteRouteRequestParameterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRouteRequestParameter)++responseDeleteRouteResponse :: DeleteRouteResponseResponse -> TestTree+responseDeleteRouteResponse =+  res+    "DeleteRouteResponseResponse"+    "fixture/DeleteRouteResponseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRouteResponse)++responseDeleteRouteSettings :: DeleteRouteSettingsResponse -> TestTree+responseDeleteRouteSettings =+  res+    "DeleteRouteSettingsResponse"+    "fixture/DeleteRouteSettingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRouteSettings)++responseDeleteStage :: DeleteStageResponse -> TestTree+responseDeleteStage =+  res+    "DeleteStageResponse"+    "fixture/DeleteStageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteStage)++responseDeleteVpcLink :: DeleteVpcLinkResponse -> TestTree+responseDeleteVpcLink =+  res+    "DeleteVpcLinkResponse"+    "fixture/DeleteVpcLinkResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVpcLink)++responseExportApi :: ExportApiResponse -> TestTree+responseExportApi =+  res+    "ExportApiResponse"+    "fixture/ExportApiResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ExportApi)++responseGetApi :: GetApiResponse -> TestTree+responseGetApi =+  res+    "GetApiResponse"+    "fixture/GetApiResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetApi)++responseGetApiMapping :: GetApiMappingResponse -> TestTree+responseGetApiMapping =+  res+    "GetApiMappingResponse"+    "fixture/GetApiMappingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetApiMapping)++responseGetApiMappings :: GetApiMappingsResponse -> TestTree+responseGetApiMappings =+  res+    "GetApiMappingsResponse"+    "fixture/GetApiMappingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetApiMappings)++responseGetApis :: GetApisResponse -> TestTree+responseGetApis =+  res+    "GetApisResponse"+    "fixture/GetApisResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetApis)++responseGetAuthorizer :: GetAuthorizerResponse -> TestTree+responseGetAuthorizer =+  res+    "GetAuthorizerResponse"+    "fixture/GetAuthorizerResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAuthorizer)++responseGetAuthorizers :: GetAuthorizersResponse -> TestTree+responseGetAuthorizers =+  res+    "GetAuthorizersResponse"+    "fixture/GetAuthorizersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAuthorizers)++responseGetDeployment :: GetDeploymentResponse -> TestTree+responseGetDeployment =+  res+    "GetDeploymentResponse"+    "fixture/GetDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDeployment)++responseGetDeployments :: GetDeploymentsResponse -> TestTree+responseGetDeployments =+  res+    "GetDeploymentsResponse"+    "fixture/GetDeploymentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDeployments)++responseGetDomainName :: GetDomainNameResponse -> TestTree+responseGetDomainName =+  res+    "GetDomainNameResponse"+    "fixture/GetDomainNameResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDomainName)++responseGetDomainNames :: GetDomainNamesResponse -> TestTree+responseGetDomainNames =+  res+    "GetDomainNamesResponse"+    "fixture/GetDomainNamesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDomainNames)++responseGetIntegration :: GetIntegrationResponse' -> TestTree+responseGetIntegration =+  res+    "GetIntegrationResponse"+    "fixture/GetIntegrationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetIntegration)++responseGetIntegrationResponse :: GetIntegrationResponseResponse -> TestTree+responseGetIntegrationResponse =+  res+    "GetIntegrationResponseResponse"+    "fixture/GetIntegrationResponseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetIntegrationResponse)++responseGetIntegrationResponses :: GetIntegrationResponsesResponse -> TestTree+responseGetIntegrationResponses =+  res+    "GetIntegrationResponsesResponse"+    "fixture/GetIntegrationResponsesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetIntegrationResponses)++responseGetIntegrations :: GetIntegrationsResponse -> TestTree+responseGetIntegrations =+  res+    "GetIntegrationsResponse"+    "fixture/GetIntegrationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetIntegrations)++responseGetModel :: GetModelResponse -> TestTree+responseGetModel =+  res+    "GetModelResponse"+    "fixture/GetModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetModel)++responseGetModelTemplate :: GetModelTemplateResponse -> TestTree+responseGetModelTemplate =+  res+    "GetModelTemplateResponse"+    "fixture/GetModelTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetModelTemplate)++responseGetModels :: GetModelsResponse -> TestTree+responseGetModels =+  res+    "GetModelsResponse"+    "fixture/GetModelsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetModels)++responseGetRoute :: GetRouteResponse' -> TestTree+responseGetRoute =+  res+    "GetRouteResponse"+    "fixture/GetRouteResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRoute)++responseGetRouteResponse :: GetRouteResponseResponse -> TestTree+responseGetRouteResponse =+  res+    "GetRouteResponseResponse"+    "fixture/GetRouteResponseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRouteResponse)++responseGetRouteResponses :: GetRouteResponsesResponse -> TestTree+responseGetRouteResponses =+  res+    "GetRouteResponsesResponse"+    "fixture/GetRouteResponsesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRouteResponses)++responseGetRoutes :: GetRoutesResponse -> TestTree+responseGetRoutes =+  res+    "GetRoutesResponse"+    "fixture/GetRoutesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRoutes)++responseGetStage :: GetStageResponse -> TestTree+responseGetStage =+  res+    "GetStageResponse"+    "fixture/GetStageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStage)++responseGetStages :: GetStagesResponse -> TestTree+responseGetStages =+  res+    "GetStagesResponse"+    "fixture/GetStagesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStages)++responseGetTags :: GetTagsResponse -> TestTree+responseGetTags =+  res+    "GetTagsResponse"+    "fixture/GetTagsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetTags)++responseGetVpcLink :: GetVpcLinkResponse -> TestTree+responseGetVpcLink =+  res+    "GetVpcLinkResponse"+    "fixture/GetVpcLinkResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetVpcLink)++responseGetVpcLinks :: GetVpcLinksResponse -> TestTree+responseGetVpcLinks =+  res+    "GetVpcLinksResponse"+    "fixture/GetVpcLinksResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetVpcLinks)++responseImportApi :: ImportApiResponse -> TestTree+responseImportApi =+  res+    "ImportApiResponse"+    "fixture/ImportApiResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ImportApi)++responseReimportApi :: ReimportApiResponse -> TestTree+responseReimportApi =+  res+    "ReimportApiResponse"+    "fixture/ReimportApiResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ReimportApi)++responseResetAuthorizersCache :: ResetAuthorizersCacheResponse -> TestTree+responseResetAuthorizersCache =+  res+    "ResetAuthorizersCacheResponse"+    "fixture/ResetAuthorizersCacheResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ResetAuthorizersCache)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateApi :: UpdateApiResponse -> TestTree+responseUpdateApi =+  res+    "UpdateApiResponse"+    "fixture/UpdateApiResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateApi)++responseUpdateApiMapping :: UpdateApiMappingResponse -> TestTree+responseUpdateApiMapping =+  res+    "UpdateApiMappingResponse"+    "fixture/UpdateApiMappingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateApiMapping)++responseUpdateAuthorizer :: UpdateAuthorizerResponse -> TestTree+responseUpdateAuthorizer =+  res+    "UpdateAuthorizerResponse"+    "fixture/UpdateAuthorizerResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAuthorizer)++responseUpdateDeployment :: UpdateDeploymentResponse -> TestTree+responseUpdateDeployment =+  res+    "UpdateDeploymentResponse"+    "fixture/UpdateDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDeployment)++responseUpdateDomainName :: UpdateDomainNameResponse -> TestTree+responseUpdateDomainName =+  res+    "UpdateDomainNameResponse"+    "fixture/UpdateDomainNameResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDomainName)++responseUpdateIntegration :: UpdateIntegrationResponse' -> TestTree+responseUpdateIntegration =+  res+    "UpdateIntegrationResponse"+    "fixture/UpdateIntegrationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateIntegration)++responseUpdateIntegrationResponse :: UpdateIntegrationResponseResponse -> TestTree+responseUpdateIntegrationResponse =+  res+    "UpdateIntegrationResponseResponse"+    "fixture/UpdateIntegrationResponseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateIntegrationResponse)++responseUpdateModel :: UpdateModelResponse -> TestTree+responseUpdateModel =+  res+    "UpdateModelResponse"+    "fixture/UpdateModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateModel)++responseUpdateRoute :: UpdateRouteResponse' -> TestTree+responseUpdateRoute =+  res+    "UpdateRouteResponse"+    "fixture/UpdateRouteResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRoute)++responseUpdateRouteResponse :: UpdateRouteResponseResponse -> TestTree+responseUpdateRouteResponse =+  res+    "UpdateRouteResponseResponse"+    "fixture/UpdateRouteResponseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRouteResponse)++responseUpdateStage :: UpdateStageResponse -> TestTree+responseUpdateStage =+  res+    "UpdateStageResponse"+    "fixture/UpdateStageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateStage)++responseUpdateVpcLink :: UpdateVpcLinkResponse -> TestTree+responseUpdateVpcLink =+  res+    "UpdateVpcLinkResponse"+    "fixture/UpdateVpcLinkResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateVpcLink)