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 +367/−0
- README.md +44/−0
- amazonka-apigatewayv2.cabal +191/−0
- fixture/CreateApi.yaml +10/−0
- fixture/CreateApiMapping.yaml +10/−0
- fixture/CreateApiMappingResponse.proto +0/−0
- fixture/CreateApiResponse.proto +0/−0
- fixture/CreateAuthorizer.yaml +10/−0
- fixture/CreateAuthorizerResponse.proto +0/−0
- fixture/CreateDeployment.yaml +10/−0
- fixture/CreateDeploymentResponse.proto +0/−0
- fixture/CreateDomainName.yaml +10/−0
- fixture/CreateDomainNameResponse.proto +0/−0
- fixture/CreateIntegration.yaml +10/−0
- fixture/CreateIntegrationResponse.proto +0/−0
- fixture/CreateIntegrationResponse.yaml +10/−0
- fixture/CreateIntegrationResponseResponse.proto +0/−0
- fixture/CreateModel.yaml +10/−0
- fixture/CreateModelResponse.proto +0/−0
- fixture/CreateRoute.yaml +10/−0
- fixture/CreateRouteResponse.proto +0/−0
- fixture/CreateRouteResponse.yaml +10/−0
- fixture/CreateRouteResponseResponse.proto +0/−0
- fixture/CreateStage.yaml +10/−0
- fixture/CreateStageResponse.proto +0/−0
- fixture/CreateVpcLink.yaml +10/−0
- fixture/CreateVpcLinkResponse.proto +0/−0
- fixture/DeleteAccessLogSettings.yaml +10/−0
- fixture/DeleteAccessLogSettingsResponse.proto +0/−0
- fixture/DeleteApi.yaml +10/−0
- fixture/DeleteApiMapping.yaml +10/−0
- fixture/DeleteApiMappingResponse.proto +0/−0
- fixture/DeleteApiResponse.proto +0/−0
- fixture/DeleteAuthorizer.yaml +10/−0
- fixture/DeleteAuthorizerResponse.proto +0/−0
- fixture/DeleteCorsConfiguration.yaml +10/−0
- fixture/DeleteCorsConfigurationResponse.proto +0/−0
- fixture/DeleteDeployment.yaml +10/−0
- fixture/DeleteDeploymentResponse.proto +0/−0
- fixture/DeleteDomainName.yaml +10/−0
- fixture/DeleteDomainNameResponse.proto +0/−0
- fixture/DeleteIntegration.yaml +10/−0
- fixture/DeleteIntegrationResponse.proto +0/−0
- fixture/DeleteIntegrationResponse.yaml +10/−0
- fixture/DeleteIntegrationResponseResponse.proto +0/−0
- fixture/DeleteModel.yaml +10/−0
- fixture/DeleteModelResponse.proto +0/−0
- fixture/DeleteRoute.yaml +10/−0
- fixture/DeleteRouteRequestParameter.yaml +10/−0
- fixture/DeleteRouteRequestParameterResponse.proto +0/−0
- fixture/DeleteRouteResponse.proto +0/−0
- fixture/DeleteRouteResponse.yaml +10/−0
- fixture/DeleteRouteResponseResponse.proto +0/−0
- fixture/DeleteRouteSettings.yaml +10/−0
- fixture/DeleteRouteSettingsResponse.proto +0/−0
- fixture/DeleteStage.yaml +10/−0
- fixture/DeleteStageResponse.proto +0/−0
- fixture/DeleteVpcLink.yaml +10/−0
- fixture/DeleteVpcLinkResponse.proto +0/−0
- fixture/ExportApi.yaml +10/−0
- fixture/ExportApiResponse.proto +0/−0
- fixture/GetApi.yaml +10/−0
- fixture/GetApiMapping.yaml +10/−0
- fixture/GetApiMappingResponse.proto +0/−0
- fixture/GetApiMappings.yaml +10/−0
- fixture/GetApiMappingsResponse.proto +0/−0
- fixture/GetApiResponse.proto +0/−0
- fixture/GetApis.yaml +10/−0
- fixture/GetApisResponse.proto +0/−0
- fixture/GetAuthorizer.yaml +10/−0
- fixture/GetAuthorizerResponse.proto +0/−0
- fixture/GetAuthorizers.yaml +10/−0
- fixture/GetAuthorizersResponse.proto +0/−0
- fixture/GetDeployment.yaml +10/−0
- fixture/GetDeploymentResponse.proto +0/−0
- fixture/GetDeployments.yaml +10/−0
- fixture/GetDeploymentsResponse.proto +0/−0
- fixture/GetDomainName.yaml +10/−0
- fixture/GetDomainNameResponse.proto +0/−0
- fixture/GetDomainNames.yaml +10/−0
- fixture/GetDomainNamesResponse.proto +0/−0
- fixture/GetIntegration.yaml +10/−0
- fixture/GetIntegrationResponse.proto +0/−0
- fixture/GetIntegrationResponse.yaml +10/−0
- fixture/GetIntegrationResponseResponse.proto +0/−0
- fixture/GetIntegrationResponses.yaml +10/−0
- fixture/GetIntegrationResponsesResponse.proto +0/−0
- fixture/GetIntegrations.yaml +10/−0
- fixture/GetIntegrationsResponse.proto +0/−0
- fixture/GetModel.yaml +10/−0
- fixture/GetModelResponse.proto +0/−0
- fixture/GetModelTemplate.yaml +10/−0
- fixture/GetModelTemplateResponse.proto +0/−0
- fixture/GetModels.yaml +10/−0
- fixture/GetModelsResponse.proto +0/−0
- fixture/GetRoute.yaml +10/−0
- fixture/GetRouteResponse.proto +0/−0
- fixture/GetRouteResponse.yaml +10/−0
- fixture/GetRouteResponseResponse.proto +0/−0
- fixture/GetRouteResponses.yaml +10/−0
- fixture/GetRouteResponsesResponse.proto +0/−0
- fixture/GetRoutes.yaml +10/−0
- fixture/GetRoutesResponse.proto +0/−0
- fixture/GetStage.yaml +10/−0
- fixture/GetStageResponse.proto +0/−0
- fixture/GetStages.yaml +10/−0
- fixture/GetStagesResponse.proto +0/−0
- fixture/GetTags.yaml +10/−0
- fixture/GetTagsResponse.proto +0/−0
- fixture/GetVpcLink.yaml +10/−0
- fixture/GetVpcLinkResponse.proto +0/−0
- fixture/GetVpcLinks.yaml +10/−0
- fixture/GetVpcLinksResponse.proto +0/−0
- fixture/ImportApi.yaml +10/−0
- fixture/ImportApiResponse.proto +0/−0
- fixture/ReimportApi.yaml +10/−0
- fixture/ReimportApiResponse.proto +0/−0
- fixture/ResetAuthorizersCache.yaml +10/−0
- fixture/ResetAuthorizersCacheResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateApi.yaml +10/−0
- fixture/UpdateApiMapping.yaml +10/−0
- fixture/UpdateApiMappingResponse.proto +0/−0
- fixture/UpdateApiResponse.proto +0/−0
- fixture/UpdateAuthorizer.yaml +10/−0
- fixture/UpdateAuthorizerResponse.proto +0/−0
- fixture/UpdateDeployment.yaml +10/−0
- fixture/UpdateDeploymentResponse.proto +0/−0
- fixture/UpdateDomainName.yaml +10/−0
- fixture/UpdateDomainNameResponse.proto +0/−0
- fixture/UpdateIntegration.yaml +10/−0
- fixture/UpdateIntegrationResponse.proto +0/−0
- fixture/UpdateIntegrationResponse.yaml +10/−0
- fixture/UpdateIntegrationResponseResponse.proto +0/−0
- fixture/UpdateModel.yaml +10/−0
- fixture/UpdateModelResponse.proto +0/−0
- fixture/UpdateRoute.yaml +10/−0
- fixture/UpdateRouteResponse.proto +0/−0
- fixture/UpdateRouteResponse.yaml +10/−0
- fixture/UpdateRouteResponseResponse.proto +0/−0
- fixture/UpdateStage.yaml +10/−0
- fixture/UpdateStageResponse.proto +0/−0
- fixture/UpdateVpcLink.yaml +10/−0
- fixture/UpdateVpcLinkResponse.proto +0/−0
- gen/Amazonka/ApiGatewayV2.hs +710/−0
- gen/Amazonka/ApiGatewayV2/CreateApi.hs +648/−0
- gen/Amazonka/ApiGatewayV2/CreateApiMapping.hs +253/−0
- gen/Amazonka/ApiGatewayV2/CreateAuthorizer.hs +729/−0
- gen/Amazonka/ApiGatewayV2/CreateDeployment.hs +258/−0
- gen/Amazonka/ApiGatewayV2/CreateDomainName.hs +264/−0
- gen/Amazonka/ApiGatewayV2/CreateIntegration.hs +1341/−0
- gen/Amazonka/ApiGatewayV2/CreateIntegrationResponse.hs +494/−0
- gen/Amazonka/ApiGatewayV2/CreateModel.hs +279/−0
- gen/Amazonka/ApiGatewayV2/CreateRoute.hs +552/−0
- gen/Amazonka/ApiGatewayV2/CreateRouteResponse.hs +310/−0
- gen/Amazonka/ApiGatewayV2/CreateStage.hs +504/−0
- gen/Amazonka/ApiGatewayV2/CreateVpcLink.hs +310/−0
- gen/Amazonka/ApiGatewayV2/DeleteAccessLogSettings.hs +155/−0
- gen/Amazonka/ApiGatewayV2/DeleteApi.hs +118/−0
- gen/Amazonka/ApiGatewayV2/DeleteApiMapping.hs +146/−0
- gen/Amazonka/ApiGatewayV2/DeleteAuthorizer.hs +146/−0
- gen/Amazonka/ApiGatewayV2/DeleteCorsConfiguration.hs +128/−0
- gen/Amazonka/ApiGatewayV2/DeleteDeployment.hs +146/−0
- gen/Amazonka/ApiGatewayV2/DeleteDomainName.hs +124/−0
- gen/Amazonka/ApiGatewayV2/DeleteIntegration.hs +146/−0
- gen/Amazonka/ApiGatewayV2/DeleteIntegrationResponse.hs +169/−0
- gen/Amazonka/ApiGatewayV2/DeleteModel.hs +138/−0
- gen/Amazonka/ApiGatewayV2/DeleteRoute.hs +138/−0
- gen/Amazonka/ApiGatewayV2/DeleteRouteRequestParameter.hs +170/−0
- gen/Amazonka/ApiGatewayV2/DeleteRouteResponse.hs +166/−0
- gen/Amazonka/ApiGatewayV2/DeleteRouteSettings.hs +165/−0
- gen/Amazonka/ApiGatewayV2/DeleteStage.hs +145/−0
- gen/Amazonka/ApiGatewayV2/DeleteVpcLink.hs +144/−0
- gen/Amazonka/ApiGatewayV2/ExportApi.hs +254/−0
- gen/Amazonka/ApiGatewayV2/GetApi.hs +382/−0
- gen/Amazonka/ApiGatewayV2/GetApiMapping.hs +216/−0
- gen/Amazonka/ApiGatewayV2/GetApiMappings.hs +211/−0
- gen/Amazonka/ApiGatewayV2/GetApis.hs +214/−0
- gen/Amazonka/ApiGatewayV2/GetAuthorizer.hs +448/−0
- gen/Amazonka/ApiGatewayV2/GetAuthorizers.hs +232/−0
- gen/Amazonka/ApiGatewayV2/GetDeployment.hs +241/−0
- gen/Amazonka/ApiGatewayV2/GetDeployments.hs +232/−0
- gen/Amazonka/ApiGatewayV2/GetDomainName.hs +210/−0
- gen/Amazonka/ApiGatewayV2/GetDomainNames.hs +216/−0
- gen/Amazonka/ApiGatewayV2/GetIntegration.hs +774/−0
- gen/Amazonka/ApiGatewayV2/GetIntegrationResponse.hs +345/−0
- gen/Amazonka/ApiGatewayV2/GetIntegrationResponses.hs +256/−0
- gen/Amazonka/ApiGatewayV2/GetIntegrations.hs +232/−0
- gen/Amazonka/ApiGatewayV2/GetModel.hs +225/−0
- gen/Amazonka/ApiGatewayV2/GetModelTemplate.hs +180/−0
- gen/Amazonka/ApiGatewayV2/GetModels.hs +230/−0
- gen/Amazonka/ApiGatewayV2/GetRoute.hs +379/−0
- gen/Amazonka/ApiGatewayV2/GetRouteResponse.hs +255/−0
- gen/Amazonka/ApiGatewayV2/GetRouteResponses.hs +251/−0
- gen/Amazonka/ApiGatewayV2/GetRoutes.hs +230/−0
- gen/Amazonka/ApiGatewayV2/GetStage.hs +362/−0
- gen/Amazonka/ApiGatewayV2/GetStages.hs +230/−0
- gen/Amazonka/ApiGatewayV2/GetTags.hs +155/−0
- gen/Amazonka/ApiGatewayV2/GetVpcLink.hs +255/−0
- gen/Amazonka/ApiGatewayV2/GetVpcLinks.hs +190/−0
- gen/Amazonka/ApiGatewayV2/ImportApi.hs +441/−0
- gen/Amazonka/ApiGatewayV2/Lens.hs +1215/−0
- gen/Amazonka/ApiGatewayV2/ReimportApi.hs +456/−0
- gen/Amazonka/ApiGatewayV2/ResetAuthorizersCache.hs +154/−0
- gen/Amazonka/ApiGatewayV2/TagResource.hs +169/−0
- gen/Amazonka/ApiGatewayV2/Types.hs +461/−0
- gen/Amazonka/ApiGatewayV2/Types/AccessLogSettings.hs +101/−0
- gen/Amazonka/ApiGatewayV2/Types/Api.hs +312/−0
- gen/Amazonka/ApiGatewayV2/Types/ApiMapping.hs +112/−0
- gen/Amazonka/ApiGatewayV2/Types/AuthorizationType.hs +86/−0
- gen/Amazonka/ApiGatewayV2/Types/Authorizer.hs +344/−0
- gen/Amazonka/ApiGatewayV2/Types/AuthorizerType.hs +74/−0
- gen/Amazonka/ApiGatewayV2/Types/ConnectionType.hs +72/−0
- gen/Amazonka/ApiGatewayV2/Types/ContentHandlingStrategy.hs +73/−0
- gen/Amazonka/ApiGatewayV2/Types/Cors.hs +166/−0
- gen/Amazonka/ApiGatewayV2/Types/Deployment.hs +135/−0
- gen/Amazonka/ApiGatewayV2/Types/DeploymentStatus.hs +77/−0
- gen/Amazonka/ApiGatewayV2/Types/DomainName.hs +128/−0
- gen/Amazonka/ApiGatewayV2/Types/DomainNameConfiguration.hs +249/−0
- gen/Amazonka/ApiGatewayV2/Types/DomainNameStatus.hs +86/−0
- gen/Amazonka/ApiGatewayV2/Types/EndpointType.hs +72/−0
- gen/Amazonka/ApiGatewayV2/Types/Integration.hs +670/−0
- gen/Amazonka/ApiGatewayV2/Types/IntegrationResponse.hs +217/−0
- gen/Amazonka/ApiGatewayV2/Types/IntegrationType.hs +87/−0
- gen/Amazonka/ApiGatewayV2/Types/JWTConfiguration.hs +112/−0
- gen/Amazonka/ApiGatewayV2/Types/LoggingLevel.hs +77/−0
- gen/Amazonka/ApiGatewayV2/Types/Model.hs +127/−0
- gen/Amazonka/ApiGatewayV2/Types/MutualTlsAuthentication.hs +128/−0
- gen/Amazonka/ApiGatewayV2/Types/MutualTlsAuthenticationInput.hs +104/−0
- gen/Amazonka/ApiGatewayV2/Types/ParameterConstraints.hs +76/−0
- gen/Amazonka/ApiGatewayV2/Types/PassthroughBehavior.hs +78/−0
- gen/Amazonka/ApiGatewayV2/Types/ProtocolType.hs +72/−0
- gen/Amazonka/ApiGatewayV2/Types/Route.hs +280/−0
- gen/Amazonka/ApiGatewayV2/Types/RouteResponse.hs +130/−0
- gen/Amazonka/ApiGatewayV2/Types/RouteSettings.hs +149/−0
- gen/Amazonka/ApiGatewayV2/Types/SecurityPolicy.hs +73/−0
- gen/Amazonka/ApiGatewayV2/Types/Stage.hs +259/−0
- gen/Amazonka/ApiGatewayV2/Types/TlsConfig.hs +79/−0
- gen/Amazonka/ApiGatewayV2/Types/TlsConfigInput.hs +83/−0
- gen/Amazonka/ApiGatewayV2/Types/VpcLink.hs +177/−0
- gen/Amazonka/ApiGatewayV2/Types/VpcLinkStatus.hs +87/−0
- gen/Amazonka/ApiGatewayV2/Types/VpcLinkVersion.hs +67/−0
- gen/Amazonka/ApiGatewayV2/UntagResource.hs +141/−0
- gen/Amazonka/ApiGatewayV2/UpdateApi.hs +624/−0
- gen/Amazonka/ApiGatewayV2/UpdateApiMapping.hs +269/−0
- gen/Amazonka/ApiGatewayV2/UpdateAuthorizer.hs +740/−0
- gen/Amazonka/ApiGatewayV2/UpdateDeployment.hs +262/−0
- gen/Amazonka/ApiGatewayV2/UpdateDomainName.hs +252/−0
- gen/Amazonka/ApiGatewayV2/UpdateIntegration.hs +1357/−0
- gen/Amazonka/ApiGatewayV2/UpdateIntegrationResponse.hs +503/−0
- gen/Amazonka/ApiGatewayV2/UpdateModel.hs +293/−0
- gen/Amazonka/ApiGatewayV2/UpdateRoute.hs +568/−0
- gen/Amazonka/ApiGatewayV2/UpdateRouteResponse.hs +323/−0
- gen/Amazonka/ApiGatewayV2/UpdateStage.hs +497/−0
- gen/Amazonka/ApiGatewayV2/UpdateVpcLink.hs +283/−0
- gen/Amazonka/ApiGatewayV2/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/ApiGatewayV2.hs +20/−0
- test/Test/Amazonka/ApiGatewayV2/Internal.hs +8/−0
- test/Test/Amazonka/Gen/ApiGatewayV2.hs +1478/−0
+ 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)