amazonka-appmesh (empty) → 2.0
raw patch · 288 files changed
+32674/−0 lines, 288 filesdep +amazonka-appmeshdep +amazonka-coredep +amazonka-test
Dependencies added: amazonka-appmesh, amazonka-core, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-appmesh.cabal +283/−0
- fixture/CreateGatewayRoute.yaml +10/−0
- fixture/CreateGatewayRouteResponse.proto +0/−0
- fixture/CreateMesh.yaml +10/−0
- fixture/CreateMeshResponse.proto +0/−0
- fixture/CreateRoute.yaml +10/−0
- fixture/CreateRouteResponse.proto +0/−0
- fixture/CreateVirtualGateway.yaml +10/−0
- fixture/CreateVirtualGatewayResponse.proto +0/−0
- fixture/CreateVirtualNode.yaml +10/−0
- fixture/CreateVirtualNodeResponse.proto +0/−0
- fixture/CreateVirtualRouter.yaml +10/−0
- fixture/CreateVirtualRouterResponse.proto +0/−0
- fixture/CreateVirtualService.yaml +10/−0
- fixture/CreateVirtualServiceResponse.proto +0/−0
- fixture/DeleteGatewayRoute.yaml +10/−0
- fixture/DeleteGatewayRouteResponse.proto +0/−0
- fixture/DeleteMesh.yaml +10/−0
- fixture/DeleteMeshResponse.proto +0/−0
- fixture/DeleteRoute.yaml +10/−0
- fixture/DeleteRouteResponse.proto +0/−0
- fixture/DeleteVirtualGateway.yaml +10/−0
- fixture/DeleteVirtualGatewayResponse.proto +0/−0
- fixture/DeleteVirtualNode.yaml +10/−0
- fixture/DeleteVirtualNodeResponse.proto +0/−0
- fixture/DeleteVirtualRouter.yaml +10/−0
- fixture/DeleteVirtualRouterResponse.proto +0/−0
- fixture/DeleteVirtualService.yaml +10/−0
- fixture/DeleteVirtualServiceResponse.proto +0/−0
- fixture/DescribeGatewayRoute.yaml +10/−0
- fixture/DescribeGatewayRouteResponse.proto +0/−0
- fixture/DescribeMesh.yaml +10/−0
- fixture/DescribeMeshResponse.proto +0/−0
- fixture/DescribeRoute.yaml +10/−0
- fixture/DescribeRouteResponse.proto +0/−0
- fixture/DescribeVirtualGateway.yaml +10/−0
- fixture/DescribeVirtualGatewayResponse.proto +0/−0
- fixture/DescribeVirtualNode.yaml +10/−0
- fixture/DescribeVirtualNodeResponse.proto +0/−0
- fixture/DescribeVirtualRouter.yaml +10/−0
- fixture/DescribeVirtualRouterResponse.proto +0/−0
- fixture/DescribeVirtualService.yaml +10/−0
- fixture/DescribeVirtualServiceResponse.proto +0/−0
- fixture/ListGatewayRoutes.yaml +10/−0
- fixture/ListGatewayRoutesResponse.proto +0/−0
- fixture/ListMeshes.yaml +10/−0
- fixture/ListMeshesResponse.proto +0/−0
- fixture/ListRoutes.yaml +10/−0
- fixture/ListRoutesResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/ListVirtualGateways.yaml +10/−0
- fixture/ListVirtualGatewaysResponse.proto +0/−0
- fixture/ListVirtualNodes.yaml +10/−0
- fixture/ListVirtualNodesResponse.proto +0/−0
- fixture/ListVirtualRouters.yaml +10/−0
- fixture/ListVirtualRoutersResponse.proto +0/−0
- fixture/ListVirtualServices.yaml +10/−0
- fixture/ListVirtualServicesResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateGatewayRoute.yaml +10/−0
- fixture/UpdateGatewayRouteResponse.proto +0/−0
- fixture/UpdateMesh.yaml +10/−0
- fixture/UpdateMeshResponse.proto +0/−0
- fixture/UpdateRoute.yaml +10/−0
- fixture/UpdateRouteResponse.proto +0/−0
- fixture/UpdateVirtualGateway.yaml +10/−0
- fixture/UpdateVirtualGatewayResponse.proto +0/−0
- fixture/UpdateVirtualNode.yaml +10/−0
- fixture/UpdateVirtualNodeResponse.proto +0/−0
- fixture/UpdateVirtualRouter.yaml +10/−0
- fixture/UpdateVirtualRouterResponse.proto +0/−0
- fixture/UpdateVirtualService.yaml +10/−0
- fixture/UpdateVirtualServiceResponse.proto +0/−0
- gen/Amazonka/AppMesh.hs +1002/−0
- gen/Amazonka/AppMesh/CreateGatewayRoute.hs +310/−0
- gen/Amazonka/AppMesh/CreateMesh.hs +238/−0
- gen/Amazonka/AppMesh/CreateRoute.hs +307/−0
- gen/Amazonka/AppMesh/CreateVirtualGateway.hs +291/−0
- gen/Amazonka/AppMesh/CreateVirtualNode.hs +314/−0
- gen/Amazonka/AppMesh/CreateVirtualRouter.hs +294/−0
- gen/Amazonka/AppMesh/CreateVirtualService.hs +295/−0
- gen/Amazonka/AppMesh/DeleteGatewayRoute.hs +226/−0
- gen/Amazonka/AppMesh/DeleteMesh.hs +166/−0
- gen/Amazonka/AppMesh/DeleteRoute.hs +225/−0
- gen/Amazonka/AppMesh/DeleteVirtualGateway.hs +210/−0
- gen/Amazonka/AppMesh/DeleteVirtualNode.hs +214/−0
- gen/Amazonka/AppMesh/DeleteVirtualRouter.hs +214/−0
- gen/Amazonka/AppMesh/DeleteVirtualService.hs +213/−0
- gen/Amazonka/AppMesh/DescribeGatewayRoute.hs +229/−0
- gen/Amazonka/AppMesh/DescribeMesh.hs +188/−0
- gen/Amazonka/AppMesh/DescribeRoute.hs +227/−0
- gen/Amazonka/AppMesh/DescribeVirtualGateway.hs +213/−0
- gen/Amazonka/AppMesh/DescribeVirtualNode.hs +211/−0
- gen/Amazonka/AppMesh/DescribeVirtualRouter.hs +213/−0
- gen/Amazonka/AppMesh/DescribeVirtualService.hs +217/−0
- gen/Amazonka/AppMesh/Lens.hs +1185/−0
- gen/Amazonka/AppMesh/ListGatewayRoutes.hs +308/−0
- gen/Amazonka/AppMesh/ListMeshes.hs +256/−0
- gen/Amazonka/AppMesh/ListRoutes.hs +304/−0
- gen/Amazonka/AppMesh/ListTagsForResource.hs +269/−0
- gen/Amazonka/AppMesh/ListVirtualGateways.hs +293/−0
- gen/Amazonka/AppMesh/ListVirtualNodes.hs +292/−0
- gen/Amazonka/AppMesh/ListVirtualRouters.hs +297/−0
- gen/Amazonka/AppMesh/ListVirtualServices.hs +297/−0
- gen/Amazonka/AppMesh/TagResource.hs +176/−0
- gen/Amazonka/AppMesh/Types.hs +1379/−0
- gen/Amazonka/AppMesh/Types/AccessLog.hs +73/−0
- gen/Amazonka/AppMesh/Types/AwsCloudMapInstanceAttribute.hs +108/−0
- gen/Amazonka/AppMesh/Types/AwsCloudMapServiceDiscovery.hs +146/−0
- gen/Amazonka/AppMesh/Types/Backend.hs +78/−0
- gen/Amazonka/AppMesh/Types/BackendDefaults.hs +76/−0
- gen/Amazonka/AppMesh/Types/ClientPolicy.hs +74/−0
- gen/Amazonka/AppMesh/Types/ClientPolicyTls.hs +127/−0
- gen/Amazonka/AppMesh/Types/ClientTlsCertificate.hs +106/−0
- gen/Amazonka/AppMesh/Types/DefaultGatewayRouteRewrite.hs +71/−0
- gen/Amazonka/AppMesh/Types/DnsResponseType.hs +71/−0
- gen/Amazonka/AppMesh/Types/DnsServiceDiscovery.hs +118/−0
- gen/Amazonka/AppMesh/Types/Duration.hs +93/−0
- gen/Amazonka/AppMesh/Types/DurationUnit.hs +71/−0
- gen/Amazonka/AppMesh/Types/EgressFilter.hs +87/−0
- gen/Amazonka/AppMesh/Types/EgressFilterType.hs +71/−0
- gen/Amazonka/AppMesh/Types/FileAccessLog.hs +116/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteData.hs +154/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteHostnameMatch.hs +92/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteHostnameRewrite.hs +82/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteRef.hs +222/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteSpec.hs +122/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteStatus.hs +70/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteStatusCode.hs +76/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteTarget.hs +97/−0
- gen/Amazonka/AppMesh/Types/GatewayRouteVirtualService.hs +83/−0
- gen/Amazonka/AppMesh/Types/GrpcGatewayRoute.hs +98/−0
- gen/Amazonka/AppMesh/Types/GrpcGatewayRouteAction.hs +100/−0
- gen/Amazonka/AppMesh/Types/GrpcGatewayRouteMatch.hs +124/−0
- gen/Amazonka/AppMesh/Types/GrpcGatewayRouteMetadata.hs +112/−0
- gen/Amazonka/AppMesh/Types/GrpcGatewayRouteRewrite.hs +80/−0
- gen/Amazonka/AppMesh/Types/GrpcMetadataMatchMethod.hs +135/−0
- gen/Amazonka/AppMesh/Types/GrpcRetryPolicy.hs +181/−0
- gen/Amazonka/AppMesh/Types/GrpcRetryPolicyEvent.hs +86/−0
- gen/Amazonka/AppMesh/Types/GrpcRoute.hs +127/−0
- gen/Amazonka/AppMesh/Types/GrpcRouteAction.hs +87/−0
- gen/Amazonka/AppMesh/Types/GrpcRouteMatch.hs +126/−0
- gen/Amazonka/AppMesh/Types/GrpcRouteMetadata.hs +112/−0
- gen/Amazonka/AppMesh/Types/GrpcRouteMetadataMatchMethod.hs +138/−0
- gen/Amazonka/AppMesh/Types/GrpcTimeout.hs +112/−0
- gen/Amazonka/AppMesh/Types/HeaderMatchMethod.hs +134/−0
- gen/Amazonka/AppMesh/Types/HealthCheckPolicy.hs +202/−0
- gen/Amazonka/AppMesh/Types/HttpGatewayRoute.hs +98/−0
- gen/Amazonka/AppMesh/Types/HttpGatewayRouteAction.hs +100/−0
- gen/Amazonka/AppMesh/Types/HttpGatewayRouteHeader.hs +115/−0
- gen/Amazonka/AppMesh/Types/HttpGatewayRouteMatch.hs +179/−0
- gen/Amazonka/AppMesh/Types/HttpGatewayRoutePathRewrite.hs +79/−0
- gen/Amazonka/AppMesh/Types/HttpGatewayRoutePrefixRewrite.hs +101/−0
- gen/Amazonka/AppMesh/Types/HttpGatewayRouteRewrite.hs +110/−0
- gen/Amazonka/AppMesh/Types/HttpMethod.hs +106/−0
- gen/Amazonka/AppMesh/Types/HttpPathMatch.hs +92/−0
- gen/Amazonka/AppMesh/Types/HttpQueryParameter.hs +95/−0
- gen/Amazonka/AppMesh/Types/HttpRetryPolicy.hs +166/−0
- gen/Amazonka/AppMesh/Types/HttpRoute.hs +127/−0
- gen/Amazonka/AppMesh/Types/HttpRouteAction.hs +87/−0
- gen/Amazonka/AppMesh/Types/HttpRouteHeader.hs +115/−0
- gen/Amazonka/AppMesh/Types/HttpRouteMatch.hs +183/−0
- gen/Amazonka/AppMesh/Types/HttpScheme.hs +71/−0
- gen/Amazonka/AppMesh/Types/HttpTimeout.hs +112/−0
- gen/Amazonka/AppMesh/Types/IpPreference.hs +81/−0
- gen/Amazonka/AppMesh/Types/JsonFormatRef.hs +93/−0
- gen/Amazonka/AppMesh/Types/Listener.hs +158/−0
- gen/Amazonka/AppMesh/Types/ListenerTimeout.hs +122/−0
- gen/Amazonka/AppMesh/Types/ListenerTls.hs +141/−0
- gen/Amazonka/AppMesh/Types/ListenerTlsAcmCertificate.hs +92/−0
- gen/Amazonka/AppMesh/Types/ListenerTlsCertificate.hs +116/−0
- gen/Amazonka/AppMesh/Types/ListenerTlsFileCertificate.hs +107/−0
- gen/Amazonka/AppMesh/Types/ListenerTlsMode.hs +76/−0
- gen/Amazonka/AppMesh/Types/ListenerTlsSdsCertificate.hs +94/−0
- gen/Amazonka/AppMesh/Types/ListenerTlsValidationContext.hs +109/−0
- gen/Amazonka/AppMesh/Types/ListenerTlsValidationContextTrust.hs +116/−0
- gen/Amazonka/AppMesh/Types/Logging.hs +74/−0
- gen/Amazonka/AppMesh/Types/LoggingFormat.hs +89/−0
- gen/Amazonka/AppMesh/Types/MatchRange.hs +96/−0
- gen/Amazonka/AppMesh/Types/MeshData.hs +120/−0
- gen/Amazonka/AppMesh/Types/MeshRef.hs +192/−0
- gen/Amazonka/AppMesh/Types/MeshServiceDiscovery.hs +81/−0
- gen/Amazonka/AppMesh/Types/MeshSpec.hs +95/−0
- gen/Amazonka/AppMesh/Types/MeshStatus.hs +67/−0
- gen/Amazonka/AppMesh/Types/MeshStatusCode.hs +76/−0
- gen/Amazonka/AppMesh/Types/OutlierDetection.hs +145/−0
- gen/Amazonka/AppMesh/Types/PortMapping.hs +94/−0
- gen/Amazonka/AppMesh/Types/PortProtocol.hs +81/−0
- gen/Amazonka/AppMesh/Types/QueryParameterMatch.hs +75/−0
- gen/Amazonka/AppMesh/Types/ResourceMetadata.hs +192/−0
- gen/Amazonka/AppMesh/Types/RouteData.hs +153/−0
- gen/Amazonka/AppMesh/Types/RouteRef.hs +222/−0
- gen/Amazonka/AppMesh/Types/RouteSpec.hs +138/−0
- gen/Amazonka/AppMesh/Types/RouteStatus.hs +70/−0
- gen/Amazonka/AppMesh/Types/RouteStatusCode.hs +76/−0
- gen/Amazonka/AppMesh/Types/ServiceDiscovery.hs +96/−0
- gen/Amazonka/AppMesh/Types/SubjectAlternativeNameMatchers.hs +89/−0
- gen/Amazonka/AppMesh/Types/SubjectAlternativeNames.hs +79/−0
- gen/Amazonka/AppMesh/Types/TagRef.hs +103/−0
- gen/Amazonka/AppMesh/Types/TcpRetryPolicyEvent.hs +66/−0
- gen/Amazonka/AppMesh/Types/TcpRoute.hs +111/−0
- gen/Amazonka/AppMesh/Types/TcpRouteAction.hs +86/−0
- gen/Amazonka/AppMesh/Types/TcpRouteMatch.hs +74/−0
- gen/Amazonka/AppMesh/Types/TcpTimeout.hs +75/−0
- gen/Amazonka/AppMesh/Types/TlsValidationContext.hs +127/−0
- gen/Amazonka/AppMesh/Types/TlsValidationContextAcmTrust.hs +92/−0
- gen/Amazonka/AppMesh/Types/TlsValidationContextFileTrust.hs +90/−0
- gen/Amazonka/AppMesh/Types/TlsValidationContextSdsTrust.hs +94/−0
- gen/Amazonka/AppMesh/Types/TlsValidationContextTrust.hs +119/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayAccessLog.hs +76/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayBackendDefaults.hs +83/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayClientPolicy.hs +77/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayClientPolicyTls.hs +137/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayClientTlsCertificate.hs +125/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayConnectionPool.hs +119/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayData.hs +138/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayFileAccessLog.hs +111/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayGrpcConnectionPool.hs +95/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayHealthCheckPolicy.hs +214/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayHttp2ConnectionPool.hs +98/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayHttpConnectionPool.hs +115/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListener.hs +130/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTls.hs +139/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsAcmCertificate.hs +107/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsCertificate.hs +131/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsFileCertificate.hs +121/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsMode.hs +76/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsSdsCertificate.hs +109/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsValidationContext.hs +121/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsValidationContextTrust.hs +121/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayLogging.hs +77/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayPortMapping.hs +97/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayPortProtocol.hs +76/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayRef.hs +208/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewaySpec.hs +113/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayStatus.hs +71/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayStatusCode.hs +76/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContext.hs +123/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContextAcmTrust.hs +104/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContextFileTrust.hs +103/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContextSdsTrust.hs +108/−0
- gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContextTrust.hs +134/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeConnectionPool.hs +129/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeData.hs +139/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeGrpcConnectionPool.hs +87/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeHttp2ConnectionPool.hs +92/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeHttpConnectionPool.hs +107/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeRef.hs +207/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeServiceProvider.hs +83/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeSpec.hs +157/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeStatus.hs +70/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeStatusCode.hs +76/−0
- gen/Amazonka/AppMesh/Types/VirtualNodeTcpConnectionPool.hs +89/−0
- gen/Amazonka/AppMesh/Types/VirtualRouterData.hs +139/−0
- gen/Amazonka/AppMesh/Types/VirtualRouterListener.hs +78/−0
- gen/Amazonka/AppMesh/Types/VirtualRouterRef.hs +207/−0
- gen/Amazonka/AppMesh/Types/VirtualRouterServiceProvider.hs +86/−0
- gen/Amazonka/AppMesh/Types/VirtualRouterSpec.hs +79/−0
- gen/Amazonka/AppMesh/Types/VirtualRouterStatus.hs +71/−0
- gen/Amazonka/AppMesh/Types/VirtualRouterStatusCode.hs +76/−0
- gen/Amazonka/AppMesh/Types/VirtualServiceBackend.hs +104/−0
- gen/Amazonka/AppMesh/Types/VirtualServiceData.hs +138/−0
- gen/Amazonka/AppMesh/Types/VirtualServiceProvider.hs +96/−0
- gen/Amazonka/AppMesh/Types/VirtualServiceRef.hs +208/−0
- gen/Amazonka/AppMesh/Types/VirtualServiceSpec.hs +79/−0
- gen/Amazonka/AppMesh/Types/VirtualServiceStatus.hs +71/−0
- gen/Amazonka/AppMesh/Types/VirtualServiceStatusCode.hs +76/−0
- gen/Amazonka/AppMesh/Types/WeightedTarget.hs +114/−0
- gen/Amazonka/AppMesh/UntagResource.hs +170/−0
- gen/Amazonka/AppMesh/UpdateGatewayRoute.hs +275/−0
- gen/Amazonka/AppMesh/UpdateMesh.hs +204/−0
- gen/Amazonka/AppMesh/UpdateRoute.hs +268/−0
- gen/Amazonka/AppMesh/UpdateVirtualGateway.hs +255/−0
- gen/Amazonka/AppMesh/UpdateVirtualNode.hs +258/−0
- gen/Amazonka/AppMesh/UpdateVirtualRouter.hs +258/−0
- gen/Amazonka/AppMesh/UpdateVirtualService.hs +259/−0
- gen/Amazonka/AppMesh/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/AppMesh.hs +20/−0
- test/Test/Amazonka/AppMesh/Internal.hs +8/−0
- test/Test/Amazonka/Gen/AppMesh.hs +798/−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 App Mesh SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-01-25@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-appmesh)+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.AppMesh](http://hackage.haskell.org/package/amazonka-appmesh/docs/Amazonka-AppMesh.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-appmesh` 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-appmesh.cabal view
@@ -0,0 +1,283 @@+cabal-version: 2.2+name: amazonka-appmesh+version: 2.0+synopsis: Amazon App Mesh 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 @2019-01-25@ of the AWS service descriptions, licensed under Apache 2.0.+ .+ The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+ which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+ .+ It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+ .+ Generated lenses can be found in "Amazonka.AppMesh.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.AppMesh" 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-appmesh++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.AppMesh+ Amazonka.AppMesh.CreateGatewayRoute+ Amazonka.AppMesh.CreateMesh+ Amazonka.AppMesh.CreateRoute+ Amazonka.AppMesh.CreateVirtualGateway+ Amazonka.AppMesh.CreateVirtualNode+ Amazonka.AppMesh.CreateVirtualRouter+ Amazonka.AppMesh.CreateVirtualService+ Amazonka.AppMesh.DeleteGatewayRoute+ Amazonka.AppMesh.DeleteMesh+ Amazonka.AppMesh.DeleteRoute+ Amazonka.AppMesh.DeleteVirtualGateway+ Amazonka.AppMesh.DeleteVirtualNode+ Amazonka.AppMesh.DeleteVirtualRouter+ Amazonka.AppMesh.DeleteVirtualService+ Amazonka.AppMesh.DescribeGatewayRoute+ Amazonka.AppMesh.DescribeMesh+ Amazonka.AppMesh.DescribeRoute+ Amazonka.AppMesh.DescribeVirtualGateway+ Amazonka.AppMesh.DescribeVirtualNode+ Amazonka.AppMesh.DescribeVirtualRouter+ Amazonka.AppMesh.DescribeVirtualService+ Amazonka.AppMesh.Lens+ Amazonka.AppMesh.ListGatewayRoutes+ Amazonka.AppMesh.ListMeshes+ Amazonka.AppMesh.ListRoutes+ Amazonka.AppMesh.ListTagsForResource+ Amazonka.AppMesh.ListVirtualGateways+ Amazonka.AppMesh.ListVirtualNodes+ Amazonka.AppMesh.ListVirtualRouters+ Amazonka.AppMesh.ListVirtualServices+ Amazonka.AppMesh.TagResource+ Amazonka.AppMesh.Types+ Amazonka.AppMesh.Types.AccessLog+ Amazonka.AppMesh.Types.AwsCloudMapInstanceAttribute+ Amazonka.AppMesh.Types.AwsCloudMapServiceDiscovery+ Amazonka.AppMesh.Types.Backend+ Amazonka.AppMesh.Types.BackendDefaults+ Amazonka.AppMesh.Types.ClientPolicy+ Amazonka.AppMesh.Types.ClientPolicyTls+ Amazonka.AppMesh.Types.ClientTlsCertificate+ Amazonka.AppMesh.Types.DefaultGatewayRouteRewrite+ Amazonka.AppMesh.Types.DnsResponseType+ Amazonka.AppMesh.Types.DnsServiceDiscovery+ Amazonka.AppMesh.Types.Duration+ Amazonka.AppMesh.Types.DurationUnit+ Amazonka.AppMesh.Types.EgressFilter+ Amazonka.AppMesh.Types.EgressFilterType+ Amazonka.AppMesh.Types.FileAccessLog+ Amazonka.AppMesh.Types.GatewayRouteData+ Amazonka.AppMesh.Types.GatewayRouteHostnameMatch+ Amazonka.AppMesh.Types.GatewayRouteHostnameRewrite+ Amazonka.AppMesh.Types.GatewayRouteRef+ Amazonka.AppMesh.Types.GatewayRouteSpec+ Amazonka.AppMesh.Types.GatewayRouteStatus+ Amazonka.AppMesh.Types.GatewayRouteStatusCode+ Amazonka.AppMesh.Types.GatewayRouteTarget+ Amazonka.AppMesh.Types.GatewayRouteVirtualService+ Amazonka.AppMesh.Types.GrpcGatewayRoute+ Amazonka.AppMesh.Types.GrpcGatewayRouteAction+ Amazonka.AppMesh.Types.GrpcGatewayRouteMatch+ Amazonka.AppMesh.Types.GrpcGatewayRouteMetadata+ Amazonka.AppMesh.Types.GrpcGatewayRouteRewrite+ Amazonka.AppMesh.Types.GrpcMetadataMatchMethod+ Amazonka.AppMesh.Types.GrpcRetryPolicy+ Amazonka.AppMesh.Types.GrpcRetryPolicyEvent+ Amazonka.AppMesh.Types.GrpcRoute+ Amazonka.AppMesh.Types.GrpcRouteAction+ Amazonka.AppMesh.Types.GrpcRouteMatch+ Amazonka.AppMesh.Types.GrpcRouteMetadata+ Amazonka.AppMesh.Types.GrpcRouteMetadataMatchMethod+ Amazonka.AppMesh.Types.GrpcTimeout+ Amazonka.AppMesh.Types.HeaderMatchMethod+ Amazonka.AppMesh.Types.HealthCheckPolicy+ Amazonka.AppMesh.Types.HttpGatewayRoute+ Amazonka.AppMesh.Types.HttpGatewayRouteAction+ Amazonka.AppMesh.Types.HttpGatewayRouteHeader+ Amazonka.AppMesh.Types.HttpGatewayRouteMatch+ Amazonka.AppMesh.Types.HttpGatewayRoutePathRewrite+ Amazonka.AppMesh.Types.HttpGatewayRoutePrefixRewrite+ Amazonka.AppMesh.Types.HttpGatewayRouteRewrite+ Amazonka.AppMesh.Types.HttpMethod+ Amazonka.AppMesh.Types.HttpPathMatch+ Amazonka.AppMesh.Types.HttpQueryParameter+ Amazonka.AppMesh.Types.HttpRetryPolicy+ Amazonka.AppMesh.Types.HttpRoute+ Amazonka.AppMesh.Types.HttpRouteAction+ Amazonka.AppMesh.Types.HttpRouteHeader+ Amazonka.AppMesh.Types.HttpRouteMatch+ Amazonka.AppMesh.Types.HttpScheme+ Amazonka.AppMesh.Types.HttpTimeout+ Amazonka.AppMesh.Types.IpPreference+ Amazonka.AppMesh.Types.JsonFormatRef+ Amazonka.AppMesh.Types.Listener+ Amazonka.AppMesh.Types.ListenerTimeout+ Amazonka.AppMesh.Types.ListenerTls+ Amazonka.AppMesh.Types.ListenerTlsAcmCertificate+ Amazonka.AppMesh.Types.ListenerTlsCertificate+ Amazonka.AppMesh.Types.ListenerTlsFileCertificate+ Amazonka.AppMesh.Types.ListenerTlsMode+ Amazonka.AppMesh.Types.ListenerTlsSdsCertificate+ Amazonka.AppMesh.Types.ListenerTlsValidationContext+ Amazonka.AppMesh.Types.ListenerTlsValidationContextTrust+ Amazonka.AppMesh.Types.Logging+ Amazonka.AppMesh.Types.LoggingFormat+ Amazonka.AppMesh.Types.MatchRange+ Amazonka.AppMesh.Types.MeshData+ Amazonka.AppMesh.Types.MeshRef+ Amazonka.AppMesh.Types.MeshServiceDiscovery+ Amazonka.AppMesh.Types.MeshSpec+ Amazonka.AppMesh.Types.MeshStatus+ Amazonka.AppMesh.Types.MeshStatusCode+ Amazonka.AppMesh.Types.OutlierDetection+ Amazonka.AppMesh.Types.PortMapping+ Amazonka.AppMesh.Types.PortProtocol+ Amazonka.AppMesh.Types.QueryParameterMatch+ Amazonka.AppMesh.Types.ResourceMetadata+ Amazonka.AppMesh.Types.RouteData+ Amazonka.AppMesh.Types.RouteRef+ Amazonka.AppMesh.Types.RouteSpec+ Amazonka.AppMesh.Types.RouteStatus+ Amazonka.AppMesh.Types.RouteStatusCode+ Amazonka.AppMesh.Types.ServiceDiscovery+ Amazonka.AppMesh.Types.SubjectAlternativeNameMatchers+ Amazonka.AppMesh.Types.SubjectAlternativeNames+ Amazonka.AppMesh.Types.TagRef+ Amazonka.AppMesh.Types.TcpRetryPolicyEvent+ Amazonka.AppMesh.Types.TcpRoute+ Amazonka.AppMesh.Types.TcpRouteAction+ Amazonka.AppMesh.Types.TcpRouteMatch+ Amazonka.AppMesh.Types.TcpTimeout+ Amazonka.AppMesh.Types.TlsValidationContext+ Amazonka.AppMesh.Types.TlsValidationContextAcmTrust+ Amazonka.AppMesh.Types.TlsValidationContextFileTrust+ Amazonka.AppMesh.Types.TlsValidationContextSdsTrust+ Amazonka.AppMesh.Types.TlsValidationContextTrust+ Amazonka.AppMesh.Types.VirtualGatewayAccessLog+ Amazonka.AppMesh.Types.VirtualGatewayBackendDefaults+ Amazonka.AppMesh.Types.VirtualGatewayClientPolicy+ Amazonka.AppMesh.Types.VirtualGatewayClientPolicyTls+ Amazonka.AppMesh.Types.VirtualGatewayClientTlsCertificate+ Amazonka.AppMesh.Types.VirtualGatewayConnectionPool+ Amazonka.AppMesh.Types.VirtualGatewayData+ Amazonka.AppMesh.Types.VirtualGatewayFileAccessLog+ Amazonka.AppMesh.Types.VirtualGatewayGrpcConnectionPool+ Amazonka.AppMesh.Types.VirtualGatewayHealthCheckPolicy+ Amazonka.AppMesh.Types.VirtualGatewayHttp2ConnectionPool+ Amazonka.AppMesh.Types.VirtualGatewayHttpConnectionPool+ Amazonka.AppMesh.Types.VirtualGatewayListener+ Amazonka.AppMesh.Types.VirtualGatewayListenerTls+ Amazonka.AppMesh.Types.VirtualGatewayListenerTlsAcmCertificate+ Amazonka.AppMesh.Types.VirtualGatewayListenerTlsCertificate+ Amazonka.AppMesh.Types.VirtualGatewayListenerTlsFileCertificate+ Amazonka.AppMesh.Types.VirtualGatewayListenerTlsMode+ Amazonka.AppMesh.Types.VirtualGatewayListenerTlsSdsCertificate+ Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContext+ Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContextTrust+ Amazonka.AppMesh.Types.VirtualGatewayLogging+ Amazonka.AppMesh.Types.VirtualGatewayPortMapping+ Amazonka.AppMesh.Types.VirtualGatewayPortProtocol+ Amazonka.AppMesh.Types.VirtualGatewayRef+ Amazonka.AppMesh.Types.VirtualGatewaySpec+ Amazonka.AppMesh.Types.VirtualGatewayStatus+ Amazonka.AppMesh.Types.VirtualGatewayStatusCode+ Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContext+ Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextAcmTrust+ Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextFileTrust+ Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextSdsTrust+ Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextTrust+ Amazonka.AppMesh.Types.VirtualNodeConnectionPool+ Amazonka.AppMesh.Types.VirtualNodeData+ Amazonka.AppMesh.Types.VirtualNodeGrpcConnectionPool+ Amazonka.AppMesh.Types.VirtualNodeHttp2ConnectionPool+ Amazonka.AppMesh.Types.VirtualNodeHttpConnectionPool+ Amazonka.AppMesh.Types.VirtualNodeRef+ Amazonka.AppMesh.Types.VirtualNodeServiceProvider+ Amazonka.AppMesh.Types.VirtualNodeSpec+ Amazonka.AppMesh.Types.VirtualNodeStatus+ Amazonka.AppMesh.Types.VirtualNodeStatusCode+ Amazonka.AppMesh.Types.VirtualNodeTcpConnectionPool+ Amazonka.AppMesh.Types.VirtualRouterData+ Amazonka.AppMesh.Types.VirtualRouterListener+ Amazonka.AppMesh.Types.VirtualRouterRef+ Amazonka.AppMesh.Types.VirtualRouterServiceProvider+ Amazonka.AppMesh.Types.VirtualRouterSpec+ Amazonka.AppMesh.Types.VirtualRouterStatus+ Amazonka.AppMesh.Types.VirtualRouterStatusCode+ Amazonka.AppMesh.Types.VirtualServiceBackend+ Amazonka.AppMesh.Types.VirtualServiceData+ Amazonka.AppMesh.Types.VirtualServiceProvider+ Amazonka.AppMesh.Types.VirtualServiceRef+ Amazonka.AppMesh.Types.VirtualServiceSpec+ Amazonka.AppMesh.Types.VirtualServiceStatus+ Amazonka.AppMesh.Types.VirtualServiceStatusCode+ Amazonka.AppMesh.Types.WeightedTarget+ Amazonka.AppMesh.UntagResource+ Amazonka.AppMesh.UpdateGatewayRoute+ Amazonka.AppMesh.UpdateMesh+ Amazonka.AppMesh.UpdateRoute+ Amazonka.AppMesh.UpdateVirtualGateway+ Amazonka.AppMesh.UpdateVirtualNode+ Amazonka.AppMesh.UpdateVirtualRouter+ Amazonka.AppMesh.UpdateVirtualService+ Amazonka.AppMesh.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-appmesh-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.AppMesh+ Test.Amazonka.AppMesh.Internal+ Test.Amazonka.Gen.AppMesh++ build-depends:+ , amazonka-appmesh+ , amazonka-core >=2.0 && <2.1+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/CreateGatewayRoute.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/CreateGatewayRouteResponse.proto view
+ fixture/CreateMesh.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/CreateMeshResponse.proto view
+ fixture/CreateRoute.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/CreateVirtualGateway.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/CreateVirtualGatewayResponse.proto view
+ fixture/CreateVirtualNode.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/CreateVirtualNodeResponse.proto view
+ fixture/CreateVirtualRouter.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/CreateVirtualRouterResponse.proto view
+ fixture/CreateVirtualService.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/CreateVirtualServiceResponse.proto view
+ fixture/DeleteGatewayRoute.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DeleteGatewayRouteResponse.proto view
+ fixture/DeleteMesh.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DeleteMeshResponse.proto view
+ fixture/DeleteRoute.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DeleteRouteResponse.proto view
+ fixture/DeleteVirtualGateway.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DeleteVirtualGatewayResponse.proto view
+ fixture/DeleteVirtualNode.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DeleteVirtualNodeResponse.proto view
+ fixture/DeleteVirtualRouter.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DeleteVirtualRouterResponse.proto view
+ fixture/DeleteVirtualService.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DeleteVirtualServiceResponse.proto view
+ fixture/DescribeGatewayRoute.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DescribeGatewayRouteResponse.proto view
+ fixture/DescribeMesh.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DescribeMeshResponse.proto view
+ fixture/DescribeRoute.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DescribeRouteResponse.proto view
+ fixture/DescribeVirtualGateway.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DescribeVirtualGatewayResponse.proto view
+ fixture/DescribeVirtualNode.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DescribeVirtualNodeResponse.proto view
+ fixture/DescribeVirtualRouter.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DescribeVirtualRouterResponse.proto view
+ fixture/DescribeVirtualService.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/DescribeVirtualServiceResponse.proto view
+ fixture/ListGatewayRoutes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/ListGatewayRoutesResponse.proto view
+ fixture/ListMeshes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/ListMeshesResponse.proto view
+ fixture/ListRoutes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/ListRoutesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/ListVirtualGateways.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/ListVirtualGatewaysResponse.proto view
+ fixture/ListVirtualNodes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/ListVirtualNodesResponse.proto view
+ fixture/ListVirtualRouters.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/ListVirtualRoutersResponse.proto view
+ fixture/ListVirtualServices.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/ListVirtualServicesResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/UpdateGatewayRoute.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/UpdateGatewayRouteResponse.proto view
+ fixture/UpdateMesh.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/UpdateMeshResponse.proto view
+ fixture/UpdateRoute.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/UpdateVirtualGateway.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/UpdateVirtualGatewayResponse.proto view
+ fixture/UpdateVirtualNode.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/UpdateVirtualNodeResponse.proto view
+ fixture/UpdateVirtualRouter.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/UpdateVirtualRouterResponse.proto view
+ fixture/UpdateVirtualService.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/appmesh/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: appmesh.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/UpdateVirtualServiceResponse.proto view
+ gen/Amazonka/AppMesh.hs view
@@ -0,0 +1,1002 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.AppMesh+-- 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 @2019-01-25@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- App Mesh is a service mesh based on the Envoy proxy that makes it easy+-- to monitor and control microservices. App Mesh standardizes how your+-- microservices communicate, giving you end-to-end visibility and helping+-- to ensure high availability for your applications.+--+-- App Mesh gives you consistent visibility and network traffic controls+-- for every microservice in an application. You can use App Mesh with+-- Amazon Web Services Fargate, Amazon ECS, Amazon EKS, Kubernetes on+-- Amazon Web Services, and Amazon EC2.+--+-- App Mesh supports microservice applications that use service discovery+-- naming for their components. For more information about service+-- discovery on Amazon ECS, see+-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html Service Discovery>+-- in the /Amazon Elastic Container Service Developer Guide/. Kubernetes+-- @kube-dns@ and @coredns@ are supported. For more information, see+-- <https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/ DNS for Services and Pods>+-- in the Kubernetes documentation.+module Amazonka.AppMesh+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** BadRequestException+ _BadRequestException,++ -- ** ConflictException+ _ConflictException,++ -- ** ForbiddenException+ _ForbiddenException,++ -- ** InternalServerErrorException+ _InternalServerErrorException,++ -- ** LimitExceededException+ _LimitExceededException,++ -- ** NotFoundException+ _NotFoundException,++ -- ** ResourceInUseException+ _ResourceInUseException,++ -- ** ServiceUnavailableException+ _ServiceUnavailableException,++ -- ** TooManyRequestsException+ _TooManyRequestsException,++ -- ** TooManyTagsException+ _TooManyTagsException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** CreateGatewayRoute+ CreateGatewayRoute (CreateGatewayRoute'),+ newCreateGatewayRoute,+ CreateGatewayRouteResponse (CreateGatewayRouteResponse'),+ newCreateGatewayRouteResponse,++ -- ** CreateMesh+ CreateMesh (CreateMesh'),+ newCreateMesh,+ CreateMeshResponse (CreateMeshResponse'),+ newCreateMeshResponse,++ -- ** CreateRoute+ CreateRoute (CreateRoute'),+ newCreateRoute,+ CreateRouteResponse (CreateRouteResponse'),+ newCreateRouteResponse,++ -- ** CreateVirtualGateway+ CreateVirtualGateway (CreateVirtualGateway'),+ newCreateVirtualGateway,+ CreateVirtualGatewayResponse (CreateVirtualGatewayResponse'),+ newCreateVirtualGatewayResponse,++ -- ** CreateVirtualNode+ CreateVirtualNode (CreateVirtualNode'),+ newCreateVirtualNode,+ CreateVirtualNodeResponse (CreateVirtualNodeResponse'),+ newCreateVirtualNodeResponse,++ -- ** CreateVirtualRouter+ CreateVirtualRouter (CreateVirtualRouter'),+ newCreateVirtualRouter,+ CreateVirtualRouterResponse (CreateVirtualRouterResponse'),+ newCreateVirtualRouterResponse,++ -- ** CreateVirtualService+ CreateVirtualService (CreateVirtualService'),+ newCreateVirtualService,+ CreateVirtualServiceResponse (CreateVirtualServiceResponse'),+ newCreateVirtualServiceResponse,++ -- ** DeleteGatewayRoute+ DeleteGatewayRoute (DeleteGatewayRoute'),+ newDeleteGatewayRoute,+ DeleteGatewayRouteResponse (DeleteGatewayRouteResponse'),+ newDeleteGatewayRouteResponse,++ -- ** DeleteMesh+ DeleteMesh (DeleteMesh'),+ newDeleteMesh,+ DeleteMeshResponse (DeleteMeshResponse'),+ newDeleteMeshResponse,++ -- ** DeleteRoute+ DeleteRoute (DeleteRoute'),+ newDeleteRoute,+ DeleteRouteResponse (DeleteRouteResponse'),+ newDeleteRouteResponse,++ -- ** DeleteVirtualGateway+ DeleteVirtualGateway (DeleteVirtualGateway'),+ newDeleteVirtualGateway,+ DeleteVirtualGatewayResponse (DeleteVirtualGatewayResponse'),+ newDeleteVirtualGatewayResponse,++ -- ** DeleteVirtualNode+ DeleteVirtualNode (DeleteVirtualNode'),+ newDeleteVirtualNode,+ DeleteVirtualNodeResponse (DeleteVirtualNodeResponse'),+ newDeleteVirtualNodeResponse,++ -- ** DeleteVirtualRouter+ DeleteVirtualRouter (DeleteVirtualRouter'),+ newDeleteVirtualRouter,+ DeleteVirtualRouterResponse (DeleteVirtualRouterResponse'),+ newDeleteVirtualRouterResponse,++ -- ** DeleteVirtualService+ DeleteVirtualService (DeleteVirtualService'),+ newDeleteVirtualService,+ DeleteVirtualServiceResponse (DeleteVirtualServiceResponse'),+ newDeleteVirtualServiceResponse,++ -- ** DescribeGatewayRoute+ DescribeGatewayRoute (DescribeGatewayRoute'),+ newDescribeGatewayRoute,+ DescribeGatewayRouteResponse (DescribeGatewayRouteResponse'),+ newDescribeGatewayRouteResponse,++ -- ** DescribeMesh+ DescribeMesh (DescribeMesh'),+ newDescribeMesh,+ DescribeMeshResponse (DescribeMeshResponse'),+ newDescribeMeshResponse,++ -- ** DescribeRoute+ DescribeRoute (DescribeRoute'),+ newDescribeRoute,+ DescribeRouteResponse (DescribeRouteResponse'),+ newDescribeRouteResponse,++ -- ** DescribeVirtualGateway+ DescribeVirtualGateway (DescribeVirtualGateway'),+ newDescribeVirtualGateway,+ DescribeVirtualGatewayResponse (DescribeVirtualGatewayResponse'),+ newDescribeVirtualGatewayResponse,++ -- ** DescribeVirtualNode+ DescribeVirtualNode (DescribeVirtualNode'),+ newDescribeVirtualNode,+ DescribeVirtualNodeResponse (DescribeVirtualNodeResponse'),+ newDescribeVirtualNodeResponse,++ -- ** DescribeVirtualRouter+ DescribeVirtualRouter (DescribeVirtualRouter'),+ newDescribeVirtualRouter,+ DescribeVirtualRouterResponse (DescribeVirtualRouterResponse'),+ newDescribeVirtualRouterResponse,++ -- ** DescribeVirtualService+ DescribeVirtualService (DescribeVirtualService'),+ newDescribeVirtualService,+ DescribeVirtualServiceResponse (DescribeVirtualServiceResponse'),+ newDescribeVirtualServiceResponse,++ -- ** ListGatewayRoutes (Paginated)+ ListGatewayRoutes (ListGatewayRoutes'),+ newListGatewayRoutes,+ ListGatewayRoutesResponse (ListGatewayRoutesResponse'),+ newListGatewayRoutesResponse,++ -- ** ListMeshes (Paginated)+ ListMeshes (ListMeshes'),+ newListMeshes,+ ListMeshesResponse (ListMeshesResponse'),+ newListMeshesResponse,++ -- ** ListRoutes (Paginated)+ ListRoutes (ListRoutes'),+ newListRoutes,+ ListRoutesResponse (ListRoutesResponse'),+ newListRoutesResponse,++ -- ** ListTagsForResource (Paginated)+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** ListVirtualGateways (Paginated)+ ListVirtualGateways (ListVirtualGateways'),+ newListVirtualGateways,+ ListVirtualGatewaysResponse (ListVirtualGatewaysResponse'),+ newListVirtualGatewaysResponse,++ -- ** ListVirtualNodes (Paginated)+ ListVirtualNodes (ListVirtualNodes'),+ newListVirtualNodes,+ ListVirtualNodesResponse (ListVirtualNodesResponse'),+ newListVirtualNodesResponse,++ -- ** ListVirtualRouters (Paginated)+ ListVirtualRouters (ListVirtualRouters'),+ newListVirtualRouters,+ ListVirtualRoutersResponse (ListVirtualRoutersResponse'),+ newListVirtualRoutersResponse,++ -- ** ListVirtualServices (Paginated)+ ListVirtualServices (ListVirtualServices'),+ newListVirtualServices,+ ListVirtualServicesResponse (ListVirtualServicesResponse'),+ newListVirtualServicesResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateGatewayRoute+ UpdateGatewayRoute (UpdateGatewayRoute'),+ newUpdateGatewayRoute,+ UpdateGatewayRouteResponse (UpdateGatewayRouteResponse'),+ newUpdateGatewayRouteResponse,++ -- ** UpdateMesh+ UpdateMesh (UpdateMesh'),+ newUpdateMesh,+ UpdateMeshResponse (UpdateMeshResponse'),+ newUpdateMeshResponse,++ -- ** UpdateRoute+ UpdateRoute (UpdateRoute'),+ newUpdateRoute,+ UpdateRouteResponse (UpdateRouteResponse'),+ newUpdateRouteResponse,++ -- ** UpdateVirtualGateway+ UpdateVirtualGateway (UpdateVirtualGateway'),+ newUpdateVirtualGateway,+ UpdateVirtualGatewayResponse (UpdateVirtualGatewayResponse'),+ newUpdateVirtualGatewayResponse,++ -- ** UpdateVirtualNode+ UpdateVirtualNode (UpdateVirtualNode'),+ newUpdateVirtualNode,+ UpdateVirtualNodeResponse (UpdateVirtualNodeResponse'),+ newUpdateVirtualNodeResponse,++ -- ** UpdateVirtualRouter+ UpdateVirtualRouter (UpdateVirtualRouter'),+ newUpdateVirtualRouter,+ UpdateVirtualRouterResponse (UpdateVirtualRouterResponse'),+ newUpdateVirtualRouterResponse,++ -- ** UpdateVirtualService+ UpdateVirtualService (UpdateVirtualService'),+ newUpdateVirtualService,+ UpdateVirtualServiceResponse (UpdateVirtualServiceResponse'),+ newUpdateVirtualServiceResponse,++ -- * Types++ -- ** DefaultGatewayRouteRewrite+ DefaultGatewayRouteRewrite (..),++ -- ** DnsResponseType+ DnsResponseType (..),++ -- ** DurationUnit+ DurationUnit (..),++ -- ** EgressFilterType+ EgressFilterType (..),++ -- ** GatewayRouteStatusCode+ GatewayRouteStatusCode (..),++ -- ** GrpcRetryPolicyEvent+ GrpcRetryPolicyEvent (..),++ -- ** HttpMethod+ HttpMethod (..),++ -- ** HttpScheme+ HttpScheme (..),++ -- ** IpPreference+ IpPreference (..),++ -- ** ListenerTlsMode+ ListenerTlsMode (..),++ -- ** MeshStatusCode+ MeshStatusCode (..),++ -- ** PortProtocol+ PortProtocol (..),++ -- ** RouteStatusCode+ RouteStatusCode (..),++ -- ** TcpRetryPolicyEvent+ TcpRetryPolicyEvent (..),++ -- ** VirtualGatewayListenerTlsMode+ VirtualGatewayListenerTlsMode (..),++ -- ** VirtualGatewayPortProtocol+ VirtualGatewayPortProtocol (..),++ -- ** VirtualGatewayStatusCode+ VirtualGatewayStatusCode (..),++ -- ** VirtualNodeStatusCode+ VirtualNodeStatusCode (..),++ -- ** VirtualRouterStatusCode+ VirtualRouterStatusCode (..),++ -- ** VirtualServiceStatusCode+ VirtualServiceStatusCode (..),++ -- ** AccessLog+ AccessLog (AccessLog'),+ newAccessLog,++ -- ** AwsCloudMapInstanceAttribute+ AwsCloudMapInstanceAttribute (AwsCloudMapInstanceAttribute'),+ newAwsCloudMapInstanceAttribute,++ -- ** AwsCloudMapServiceDiscovery+ AwsCloudMapServiceDiscovery (AwsCloudMapServiceDiscovery'),+ newAwsCloudMapServiceDiscovery,++ -- ** Backend+ Backend (Backend'),+ newBackend,++ -- ** BackendDefaults+ BackendDefaults (BackendDefaults'),+ newBackendDefaults,++ -- ** ClientPolicy+ ClientPolicy (ClientPolicy'),+ newClientPolicy,++ -- ** ClientPolicyTls+ ClientPolicyTls (ClientPolicyTls'),+ newClientPolicyTls,++ -- ** ClientTlsCertificate+ ClientTlsCertificate (ClientTlsCertificate'),+ newClientTlsCertificate,++ -- ** DnsServiceDiscovery+ DnsServiceDiscovery (DnsServiceDiscovery'),+ newDnsServiceDiscovery,++ -- ** Duration+ Duration (Duration'),+ newDuration,++ -- ** EgressFilter+ EgressFilter (EgressFilter'),+ newEgressFilter,++ -- ** FileAccessLog+ FileAccessLog (FileAccessLog'),+ newFileAccessLog,++ -- ** GatewayRouteData+ GatewayRouteData (GatewayRouteData'),+ newGatewayRouteData,++ -- ** GatewayRouteHostnameMatch+ GatewayRouteHostnameMatch (GatewayRouteHostnameMatch'),+ newGatewayRouteHostnameMatch,++ -- ** GatewayRouteHostnameRewrite+ GatewayRouteHostnameRewrite (GatewayRouteHostnameRewrite'),+ newGatewayRouteHostnameRewrite,++ -- ** GatewayRouteRef+ GatewayRouteRef (GatewayRouteRef'),+ newGatewayRouteRef,++ -- ** GatewayRouteSpec+ GatewayRouteSpec (GatewayRouteSpec'),+ newGatewayRouteSpec,++ -- ** GatewayRouteStatus+ GatewayRouteStatus (GatewayRouteStatus'),+ newGatewayRouteStatus,++ -- ** GatewayRouteTarget+ GatewayRouteTarget (GatewayRouteTarget'),+ newGatewayRouteTarget,++ -- ** GatewayRouteVirtualService+ GatewayRouteVirtualService (GatewayRouteVirtualService'),+ newGatewayRouteVirtualService,++ -- ** GrpcGatewayRoute+ GrpcGatewayRoute (GrpcGatewayRoute'),+ newGrpcGatewayRoute,++ -- ** GrpcGatewayRouteAction+ GrpcGatewayRouteAction (GrpcGatewayRouteAction'),+ newGrpcGatewayRouteAction,++ -- ** GrpcGatewayRouteMatch+ GrpcGatewayRouteMatch (GrpcGatewayRouteMatch'),+ newGrpcGatewayRouteMatch,++ -- ** GrpcGatewayRouteMetadata+ GrpcGatewayRouteMetadata (GrpcGatewayRouteMetadata'),+ newGrpcGatewayRouteMetadata,++ -- ** GrpcGatewayRouteRewrite+ GrpcGatewayRouteRewrite (GrpcGatewayRouteRewrite'),+ newGrpcGatewayRouteRewrite,++ -- ** GrpcMetadataMatchMethod+ GrpcMetadataMatchMethod (GrpcMetadataMatchMethod'),+ newGrpcMetadataMatchMethod,++ -- ** GrpcRetryPolicy+ GrpcRetryPolicy (GrpcRetryPolicy'),+ newGrpcRetryPolicy,++ -- ** GrpcRoute+ GrpcRoute (GrpcRoute'),+ newGrpcRoute,++ -- ** GrpcRouteAction+ GrpcRouteAction (GrpcRouteAction'),+ newGrpcRouteAction,++ -- ** GrpcRouteMatch+ GrpcRouteMatch (GrpcRouteMatch'),+ newGrpcRouteMatch,++ -- ** GrpcRouteMetadata+ GrpcRouteMetadata (GrpcRouteMetadata'),+ newGrpcRouteMetadata,++ -- ** GrpcRouteMetadataMatchMethod+ GrpcRouteMetadataMatchMethod (GrpcRouteMetadataMatchMethod'),+ newGrpcRouteMetadataMatchMethod,++ -- ** GrpcTimeout+ GrpcTimeout (GrpcTimeout'),+ newGrpcTimeout,++ -- ** HeaderMatchMethod+ HeaderMatchMethod (HeaderMatchMethod'),+ newHeaderMatchMethod,++ -- ** HealthCheckPolicy+ HealthCheckPolicy (HealthCheckPolicy'),+ newHealthCheckPolicy,++ -- ** HttpGatewayRoute+ HttpGatewayRoute (HttpGatewayRoute'),+ newHttpGatewayRoute,++ -- ** HttpGatewayRouteAction+ HttpGatewayRouteAction (HttpGatewayRouteAction'),+ newHttpGatewayRouteAction,++ -- ** HttpGatewayRouteHeader+ HttpGatewayRouteHeader (HttpGatewayRouteHeader'),+ newHttpGatewayRouteHeader,++ -- ** HttpGatewayRouteMatch+ HttpGatewayRouteMatch (HttpGatewayRouteMatch'),+ newHttpGatewayRouteMatch,++ -- ** HttpGatewayRoutePathRewrite+ HttpGatewayRoutePathRewrite (HttpGatewayRoutePathRewrite'),+ newHttpGatewayRoutePathRewrite,++ -- ** HttpGatewayRoutePrefixRewrite+ HttpGatewayRoutePrefixRewrite (HttpGatewayRoutePrefixRewrite'),+ newHttpGatewayRoutePrefixRewrite,++ -- ** HttpGatewayRouteRewrite+ HttpGatewayRouteRewrite (HttpGatewayRouteRewrite'),+ newHttpGatewayRouteRewrite,++ -- ** HttpPathMatch+ HttpPathMatch (HttpPathMatch'),+ newHttpPathMatch,++ -- ** HttpQueryParameter+ HttpQueryParameter (HttpQueryParameter'),+ newHttpQueryParameter,++ -- ** HttpRetryPolicy+ HttpRetryPolicy (HttpRetryPolicy'),+ newHttpRetryPolicy,++ -- ** HttpRoute+ HttpRoute (HttpRoute'),+ newHttpRoute,++ -- ** HttpRouteAction+ HttpRouteAction (HttpRouteAction'),+ newHttpRouteAction,++ -- ** HttpRouteHeader+ HttpRouteHeader (HttpRouteHeader'),+ newHttpRouteHeader,++ -- ** HttpRouteMatch+ HttpRouteMatch (HttpRouteMatch'),+ newHttpRouteMatch,++ -- ** HttpTimeout+ HttpTimeout (HttpTimeout'),+ newHttpTimeout,++ -- ** JsonFormatRef+ JsonFormatRef (JsonFormatRef'),+ newJsonFormatRef,++ -- ** Listener+ Listener (Listener'),+ newListener,++ -- ** ListenerTimeout+ ListenerTimeout (ListenerTimeout'),+ newListenerTimeout,++ -- ** ListenerTls+ ListenerTls (ListenerTls'),+ newListenerTls,++ -- ** ListenerTlsAcmCertificate+ ListenerTlsAcmCertificate (ListenerTlsAcmCertificate'),+ newListenerTlsAcmCertificate,++ -- ** ListenerTlsCertificate+ ListenerTlsCertificate (ListenerTlsCertificate'),+ newListenerTlsCertificate,++ -- ** ListenerTlsFileCertificate+ ListenerTlsFileCertificate (ListenerTlsFileCertificate'),+ newListenerTlsFileCertificate,++ -- ** ListenerTlsSdsCertificate+ ListenerTlsSdsCertificate (ListenerTlsSdsCertificate'),+ newListenerTlsSdsCertificate,++ -- ** ListenerTlsValidationContext+ ListenerTlsValidationContext (ListenerTlsValidationContext'),+ newListenerTlsValidationContext,++ -- ** ListenerTlsValidationContextTrust+ ListenerTlsValidationContextTrust (ListenerTlsValidationContextTrust'),+ newListenerTlsValidationContextTrust,++ -- ** Logging+ Logging (Logging'),+ newLogging,++ -- ** LoggingFormat+ LoggingFormat (LoggingFormat'),+ newLoggingFormat,++ -- ** MatchRange+ MatchRange (MatchRange'),+ newMatchRange,++ -- ** MeshData+ MeshData (MeshData'),+ newMeshData,++ -- ** MeshRef+ MeshRef (MeshRef'),+ newMeshRef,++ -- ** MeshServiceDiscovery+ MeshServiceDiscovery (MeshServiceDiscovery'),+ newMeshServiceDiscovery,++ -- ** MeshSpec+ MeshSpec (MeshSpec'),+ newMeshSpec,++ -- ** MeshStatus+ MeshStatus (MeshStatus'),+ newMeshStatus,++ -- ** OutlierDetection+ OutlierDetection (OutlierDetection'),+ newOutlierDetection,++ -- ** PortMapping+ PortMapping (PortMapping'),+ newPortMapping,++ -- ** QueryParameterMatch+ QueryParameterMatch (QueryParameterMatch'),+ newQueryParameterMatch,++ -- ** ResourceMetadata+ ResourceMetadata (ResourceMetadata'),+ newResourceMetadata,++ -- ** RouteData+ RouteData (RouteData'),+ newRouteData,++ -- ** RouteRef+ RouteRef (RouteRef'),+ newRouteRef,++ -- ** RouteSpec+ RouteSpec (RouteSpec'),+ newRouteSpec,++ -- ** RouteStatus+ RouteStatus (RouteStatus'),+ newRouteStatus,++ -- ** ServiceDiscovery+ ServiceDiscovery (ServiceDiscovery'),+ newServiceDiscovery,++ -- ** SubjectAlternativeNameMatchers+ SubjectAlternativeNameMatchers (SubjectAlternativeNameMatchers'),+ newSubjectAlternativeNameMatchers,++ -- ** SubjectAlternativeNames+ SubjectAlternativeNames (SubjectAlternativeNames'),+ newSubjectAlternativeNames,++ -- ** TagRef+ TagRef (TagRef'),+ newTagRef,++ -- ** TcpRoute+ TcpRoute (TcpRoute'),+ newTcpRoute,++ -- ** TcpRouteAction+ TcpRouteAction (TcpRouteAction'),+ newTcpRouteAction,++ -- ** TcpRouteMatch+ TcpRouteMatch (TcpRouteMatch'),+ newTcpRouteMatch,++ -- ** TcpTimeout+ TcpTimeout (TcpTimeout'),+ newTcpTimeout,++ -- ** TlsValidationContext+ TlsValidationContext (TlsValidationContext'),+ newTlsValidationContext,++ -- ** TlsValidationContextAcmTrust+ TlsValidationContextAcmTrust (TlsValidationContextAcmTrust'),+ newTlsValidationContextAcmTrust,++ -- ** TlsValidationContextFileTrust+ TlsValidationContextFileTrust (TlsValidationContextFileTrust'),+ newTlsValidationContextFileTrust,++ -- ** TlsValidationContextSdsTrust+ TlsValidationContextSdsTrust (TlsValidationContextSdsTrust'),+ newTlsValidationContextSdsTrust,++ -- ** TlsValidationContextTrust+ TlsValidationContextTrust (TlsValidationContextTrust'),+ newTlsValidationContextTrust,++ -- ** VirtualGatewayAccessLog+ VirtualGatewayAccessLog (VirtualGatewayAccessLog'),+ newVirtualGatewayAccessLog,++ -- ** VirtualGatewayBackendDefaults+ VirtualGatewayBackendDefaults (VirtualGatewayBackendDefaults'),+ newVirtualGatewayBackendDefaults,++ -- ** VirtualGatewayClientPolicy+ VirtualGatewayClientPolicy (VirtualGatewayClientPolicy'),+ newVirtualGatewayClientPolicy,++ -- ** VirtualGatewayClientPolicyTls+ VirtualGatewayClientPolicyTls (VirtualGatewayClientPolicyTls'),+ newVirtualGatewayClientPolicyTls,++ -- ** VirtualGatewayClientTlsCertificate+ VirtualGatewayClientTlsCertificate (VirtualGatewayClientTlsCertificate'),+ newVirtualGatewayClientTlsCertificate,++ -- ** VirtualGatewayConnectionPool+ VirtualGatewayConnectionPool (VirtualGatewayConnectionPool'),+ newVirtualGatewayConnectionPool,++ -- ** VirtualGatewayData+ VirtualGatewayData (VirtualGatewayData'),+ newVirtualGatewayData,++ -- ** VirtualGatewayFileAccessLog+ VirtualGatewayFileAccessLog (VirtualGatewayFileAccessLog'),+ newVirtualGatewayFileAccessLog,++ -- ** VirtualGatewayGrpcConnectionPool+ VirtualGatewayGrpcConnectionPool (VirtualGatewayGrpcConnectionPool'),+ newVirtualGatewayGrpcConnectionPool,++ -- ** VirtualGatewayHealthCheckPolicy+ VirtualGatewayHealthCheckPolicy (VirtualGatewayHealthCheckPolicy'),+ newVirtualGatewayHealthCheckPolicy,++ -- ** VirtualGatewayHttp2ConnectionPool+ VirtualGatewayHttp2ConnectionPool (VirtualGatewayHttp2ConnectionPool'),+ newVirtualGatewayHttp2ConnectionPool,++ -- ** VirtualGatewayHttpConnectionPool+ VirtualGatewayHttpConnectionPool (VirtualGatewayHttpConnectionPool'),+ newVirtualGatewayHttpConnectionPool,++ -- ** VirtualGatewayListener+ VirtualGatewayListener (VirtualGatewayListener'),+ newVirtualGatewayListener,++ -- ** VirtualGatewayListenerTls+ VirtualGatewayListenerTls (VirtualGatewayListenerTls'),+ newVirtualGatewayListenerTls,++ -- ** VirtualGatewayListenerTlsAcmCertificate+ VirtualGatewayListenerTlsAcmCertificate (VirtualGatewayListenerTlsAcmCertificate'),+ newVirtualGatewayListenerTlsAcmCertificate,++ -- ** VirtualGatewayListenerTlsCertificate+ VirtualGatewayListenerTlsCertificate (VirtualGatewayListenerTlsCertificate'),+ newVirtualGatewayListenerTlsCertificate,++ -- ** VirtualGatewayListenerTlsFileCertificate+ VirtualGatewayListenerTlsFileCertificate (VirtualGatewayListenerTlsFileCertificate'),+ newVirtualGatewayListenerTlsFileCertificate,++ -- ** VirtualGatewayListenerTlsSdsCertificate+ VirtualGatewayListenerTlsSdsCertificate (VirtualGatewayListenerTlsSdsCertificate'),+ newVirtualGatewayListenerTlsSdsCertificate,++ -- ** VirtualGatewayListenerTlsValidationContext+ VirtualGatewayListenerTlsValidationContext (VirtualGatewayListenerTlsValidationContext'),+ newVirtualGatewayListenerTlsValidationContext,++ -- ** VirtualGatewayListenerTlsValidationContextTrust+ VirtualGatewayListenerTlsValidationContextTrust (VirtualGatewayListenerTlsValidationContextTrust'),+ newVirtualGatewayListenerTlsValidationContextTrust,++ -- ** VirtualGatewayLogging+ VirtualGatewayLogging (VirtualGatewayLogging'),+ newVirtualGatewayLogging,++ -- ** VirtualGatewayPortMapping+ VirtualGatewayPortMapping (VirtualGatewayPortMapping'),+ newVirtualGatewayPortMapping,++ -- ** VirtualGatewayRef+ VirtualGatewayRef (VirtualGatewayRef'),+ newVirtualGatewayRef,++ -- ** VirtualGatewaySpec+ VirtualGatewaySpec (VirtualGatewaySpec'),+ newVirtualGatewaySpec,++ -- ** VirtualGatewayStatus+ VirtualGatewayStatus (VirtualGatewayStatus'),+ newVirtualGatewayStatus,++ -- ** VirtualGatewayTlsValidationContext+ VirtualGatewayTlsValidationContext (VirtualGatewayTlsValidationContext'),+ newVirtualGatewayTlsValidationContext,++ -- ** VirtualGatewayTlsValidationContextAcmTrust+ VirtualGatewayTlsValidationContextAcmTrust (VirtualGatewayTlsValidationContextAcmTrust'),+ newVirtualGatewayTlsValidationContextAcmTrust,++ -- ** VirtualGatewayTlsValidationContextFileTrust+ VirtualGatewayTlsValidationContextFileTrust (VirtualGatewayTlsValidationContextFileTrust'),+ newVirtualGatewayTlsValidationContextFileTrust,++ -- ** VirtualGatewayTlsValidationContextSdsTrust+ VirtualGatewayTlsValidationContextSdsTrust (VirtualGatewayTlsValidationContextSdsTrust'),+ newVirtualGatewayTlsValidationContextSdsTrust,++ -- ** VirtualGatewayTlsValidationContextTrust+ VirtualGatewayTlsValidationContextTrust (VirtualGatewayTlsValidationContextTrust'),+ newVirtualGatewayTlsValidationContextTrust,++ -- ** VirtualNodeConnectionPool+ VirtualNodeConnectionPool (VirtualNodeConnectionPool'),+ newVirtualNodeConnectionPool,++ -- ** VirtualNodeData+ VirtualNodeData (VirtualNodeData'),+ newVirtualNodeData,++ -- ** VirtualNodeGrpcConnectionPool+ VirtualNodeGrpcConnectionPool (VirtualNodeGrpcConnectionPool'),+ newVirtualNodeGrpcConnectionPool,++ -- ** VirtualNodeHttp2ConnectionPool+ VirtualNodeHttp2ConnectionPool (VirtualNodeHttp2ConnectionPool'),+ newVirtualNodeHttp2ConnectionPool,++ -- ** VirtualNodeHttpConnectionPool+ VirtualNodeHttpConnectionPool (VirtualNodeHttpConnectionPool'),+ newVirtualNodeHttpConnectionPool,++ -- ** VirtualNodeRef+ VirtualNodeRef (VirtualNodeRef'),+ newVirtualNodeRef,++ -- ** VirtualNodeServiceProvider+ VirtualNodeServiceProvider (VirtualNodeServiceProvider'),+ newVirtualNodeServiceProvider,++ -- ** VirtualNodeSpec+ VirtualNodeSpec (VirtualNodeSpec'),+ newVirtualNodeSpec,++ -- ** VirtualNodeStatus+ VirtualNodeStatus (VirtualNodeStatus'),+ newVirtualNodeStatus,++ -- ** VirtualNodeTcpConnectionPool+ VirtualNodeTcpConnectionPool (VirtualNodeTcpConnectionPool'),+ newVirtualNodeTcpConnectionPool,++ -- ** VirtualRouterData+ VirtualRouterData (VirtualRouterData'),+ newVirtualRouterData,++ -- ** VirtualRouterListener+ VirtualRouterListener (VirtualRouterListener'),+ newVirtualRouterListener,++ -- ** VirtualRouterRef+ VirtualRouterRef (VirtualRouterRef'),+ newVirtualRouterRef,++ -- ** VirtualRouterServiceProvider+ VirtualRouterServiceProvider (VirtualRouterServiceProvider'),+ newVirtualRouterServiceProvider,++ -- ** VirtualRouterSpec+ VirtualRouterSpec (VirtualRouterSpec'),+ newVirtualRouterSpec,++ -- ** VirtualRouterStatus+ VirtualRouterStatus (VirtualRouterStatus'),+ newVirtualRouterStatus,++ -- ** VirtualServiceBackend+ VirtualServiceBackend (VirtualServiceBackend'),+ newVirtualServiceBackend,++ -- ** VirtualServiceData+ VirtualServiceData (VirtualServiceData'),+ newVirtualServiceData,++ -- ** VirtualServiceProvider+ VirtualServiceProvider (VirtualServiceProvider'),+ newVirtualServiceProvider,++ -- ** VirtualServiceRef+ VirtualServiceRef (VirtualServiceRef'),+ newVirtualServiceRef,++ -- ** VirtualServiceSpec+ VirtualServiceSpec (VirtualServiceSpec'),+ newVirtualServiceSpec,++ -- ** VirtualServiceStatus+ VirtualServiceStatus (VirtualServiceStatus'),+ newVirtualServiceStatus,++ -- ** WeightedTarget+ WeightedTarget (WeightedTarget'),+ newWeightedTarget,+ )+where++import Amazonka.AppMesh.CreateGatewayRoute+import Amazonka.AppMesh.CreateMesh+import Amazonka.AppMesh.CreateRoute+import Amazonka.AppMesh.CreateVirtualGateway+import Amazonka.AppMesh.CreateVirtualNode+import Amazonka.AppMesh.CreateVirtualRouter+import Amazonka.AppMesh.CreateVirtualService+import Amazonka.AppMesh.DeleteGatewayRoute+import Amazonka.AppMesh.DeleteMesh+import Amazonka.AppMesh.DeleteRoute+import Amazonka.AppMesh.DeleteVirtualGateway+import Amazonka.AppMesh.DeleteVirtualNode+import Amazonka.AppMesh.DeleteVirtualRouter+import Amazonka.AppMesh.DeleteVirtualService+import Amazonka.AppMesh.DescribeGatewayRoute+import Amazonka.AppMesh.DescribeMesh+import Amazonka.AppMesh.DescribeRoute+import Amazonka.AppMesh.DescribeVirtualGateway+import Amazonka.AppMesh.DescribeVirtualNode+import Amazonka.AppMesh.DescribeVirtualRouter+import Amazonka.AppMesh.DescribeVirtualService+import Amazonka.AppMesh.Lens+import Amazonka.AppMesh.ListGatewayRoutes+import Amazonka.AppMesh.ListMeshes+import Amazonka.AppMesh.ListRoutes+import Amazonka.AppMesh.ListTagsForResource+import Amazonka.AppMesh.ListVirtualGateways+import Amazonka.AppMesh.ListVirtualNodes+import Amazonka.AppMesh.ListVirtualRouters+import Amazonka.AppMesh.ListVirtualServices+import Amazonka.AppMesh.TagResource+import Amazonka.AppMesh.Types+import Amazonka.AppMesh.UntagResource+import Amazonka.AppMesh.UpdateGatewayRoute+import Amazonka.AppMesh.UpdateMesh+import Amazonka.AppMesh.UpdateRoute+import Amazonka.AppMesh.UpdateVirtualGateway+import Amazonka.AppMesh.UpdateVirtualNode+import Amazonka.AppMesh.UpdateVirtualRouter+import Amazonka.AppMesh.UpdateVirtualService+import Amazonka.AppMesh.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 'AppMesh'.++-- $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/AppMesh/CreateGatewayRoute.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.AppMesh.CreateGatewayRoute+-- 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 gateway route.+--+-- A gateway route is attached to a virtual gateway and routes traffic to+-- an existing virtual service. If a route matches a request, it can+-- distribute traffic to a target virtual service.+--+-- For more information about gateway routes, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html Gateway routes>.+module Amazonka.AppMesh.CreateGatewayRoute+ ( -- * Creating a Request+ CreateGatewayRoute (..),+ newCreateGatewayRoute,++ -- * Request Lenses+ createGatewayRoute_clientToken,+ createGatewayRoute_meshOwner,+ createGatewayRoute_tags,+ createGatewayRoute_gatewayRouteName,+ createGatewayRoute_meshName,+ createGatewayRoute_spec,+ createGatewayRoute_virtualGatewayName,++ -- * Destructuring the Response+ CreateGatewayRouteResponse (..),+ newCreateGatewayRouteResponse,++ -- * Response Lenses+ createGatewayRouteResponse_httpStatus,+ createGatewayRouteResponse_gatewayRoute,+ )+where++import Amazonka.AppMesh.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:/ 'newCreateGatewayRoute' smart constructor.+data CreateGatewayRoute = CreateGatewayRoute'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then the account that you specify must share+ -- the mesh with your account before you can create the resource in the+ -- service mesh. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | Optional metadata that you can apply to the gateway route to assist with+ -- categorization and organization. Each tag consists of a key and an+ -- optional value, both of which you define. Tag keys can have a maximum+ -- character length of 128 characters, and tag values can have a maximum+ -- length of 256 characters.+ tags :: Prelude.Maybe [TagRef],+ -- | The name to use for the gateway route.+ gatewayRouteName :: Prelude.Text,+ -- | The name of the service mesh to create the gateway route in.+ meshName :: Prelude.Text,+ -- | The gateway route specification to apply.+ spec :: GatewayRouteSpec,+ -- | The name of the virtual gateway to associate the gateway route with. If+ -- the virtual gateway is in a shared mesh, then you must be the owner of+ -- the virtual gateway resource.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateGatewayRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createGatewayRoute_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'createGatewayRoute_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'tags', 'createGatewayRoute_tags' - Optional metadata that you can apply to the gateway route to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+--+-- 'gatewayRouteName', 'createGatewayRoute_gatewayRouteName' - The name to use for the gateway route.+--+-- 'meshName', 'createGatewayRoute_meshName' - The name of the service mesh to create the gateway route in.+--+-- 'spec', 'createGatewayRoute_spec' - The gateway route specification to apply.+--+-- 'virtualGatewayName', 'createGatewayRoute_virtualGatewayName' - The name of the virtual gateway to associate the gateway route with. If+-- the virtual gateway is in a shared mesh, then you must be the owner of+-- the virtual gateway resource.+newCreateGatewayRoute ::+ -- | 'gatewayRouteName'+ Prelude.Text ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ GatewayRouteSpec ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ CreateGatewayRoute+newCreateGatewayRoute+ pGatewayRouteName_+ pMeshName_+ pSpec_+ pVirtualGatewayName_ =+ CreateGatewayRoute'+ { clientToken = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ tags = Prelude.Nothing,+ gatewayRouteName = pGatewayRouteName_,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+createGatewayRoute_clientToken :: Lens.Lens' CreateGatewayRoute (Prelude.Maybe Prelude.Text)+createGatewayRoute_clientToken = Lens.lens (\CreateGatewayRoute' {clientToken} -> clientToken) (\s@CreateGatewayRoute' {} a -> s {clientToken = a} :: CreateGatewayRoute)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+createGatewayRoute_meshOwner :: Lens.Lens' CreateGatewayRoute (Prelude.Maybe Prelude.Text)+createGatewayRoute_meshOwner = Lens.lens (\CreateGatewayRoute' {meshOwner} -> meshOwner) (\s@CreateGatewayRoute' {} a -> s {meshOwner = a} :: CreateGatewayRoute)++-- | Optional metadata that you can apply to the gateway route to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+createGatewayRoute_tags :: Lens.Lens' CreateGatewayRoute (Prelude.Maybe [TagRef])+createGatewayRoute_tags = Lens.lens (\CreateGatewayRoute' {tags} -> tags) (\s@CreateGatewayRoute' {} a -> s {tags = a} :: CreateGatewayRoute) Prelude.. Lens.mapping Lens.coerced++-- | The name to use for the gateway route.+createGatewayRoute_gatewayRouteName :: Lens.Lens' CreateGatewayRoute Prelude.Text+createGatewayRoute_gatewayRouteName = Lens.lens (\CreateGatewayRoute' {gatewayRouteName} -> gatewayRouteName) (\s@CreateGatewayRoute' {} a -> s {gatewayRouteName = a} :: CreateGatewayRoute)++-- | The name of the service mesh to create the gateway route in.+createGatewayRoute_meshName :: Lens.Lens' CreateGatewayRoute Prelude.Text+createGatewayRoute_meshName = Lens.lens (\CreateGatewayRoute' {meshName} -> meshName) (\s@CreateGatewayRoute' {} a -> s {meshName = a} :: CreateGatewayRoute)++-- | The gateway route specification to apply.+createGatewayRoute_spec :: Lens.Lens' CreateGatewayRoute GatewayRouteSpec+createGatewayRoute_spec = Lens.lens (\CreateGatewayRoute' {spec} -> spec) (\s@CreateGatewayRoute' {} a -> s {spec = a} :: CreateGatewayRoute)++-- | The name of the virtual gateway to associate the gateway route with. If+-- the virtual gateway is in a shared mesh, then you must be the owner of+-- the virtual gateway resource.+createGatewayRoute_virtualGatewayName :: Lens.Lens' CreateGatewayRoute Prelude.Text+createGatewayRoute_virtualGatewayName = Lens.lens (\CreateGatewayRoute' {virtualGatewayName} -> virtualGatewayName) (\s@CreateGatewayRoute' {} a -> s {virtualGatewayName = a} :: CreateGatewayRoute)++instance Core.AWSRequest CreateGatewayRoute where+ type+ AWSResponse CreateGatewayRoute =+ CreateGatewayRouteResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateGatewayRouteResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable CreateGatewayRoute where+ hashWithSalt _salt CreateGatewayRoute' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` gatewayRouteName+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData CreateGatewayRoute where+ rnf CreateGatewayRoute' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf gatewayRouteName+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders CreateGatewayRoute where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateGatewayRoute where+ toJSON CreateGatewayRoute' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("gatewayRouteName" Data..= gatewayRouteName),+ Prelude.Just ("spec" Data..= spec)+ ]+ )++instance Data.ToPath CreateGatewayRoute where+ toPath CreateGatewayRoute' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateway/",+ Data.toBS virtualGatewayName,+ "/gatewayRoutes"+ ]++instance Data.ToQuery CreateGatewayRoute where+ toQuery CreateGatewayRoute' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- | /See:/ 'newCreateGatewayRouteResponse' smart constructor.+data CreateGatewayRouteResponse = CreateGatewayRouteResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your gateway route following the create call.+ gatewayRoute :: GatewayRouteData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateGatewayRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createGatewayRouteResponse_httpStatus' - The response's http status code.+--+-- 'gatewayRoute', 'createGatewayRouteResponse_gatewayRoute' - The full description of your gateway route following the create call.+newCreateGatewayRouteResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'gatewayRoute'+ GatewayRouteData ->+ CreateGatewayRouteResponse+newCreateGatewayRouteResponse+ pHttpStatus_+ pGatewayRoute_ =+ CreateGatewayRouteResponse'+ { httpStatus =+ pHttpStatus_,+ gatewayRoute = pGatewayRoute_+ }++-- | The response's http status code.+createGatewayRouteResponse_httpStatus :: Lens.Lens' CreateGatewayRouteResponse Prelude.Int+createGatewayRouteResponse_httpStatus = Lens.lens (\CreateGatewayRouteResponse' {httpStatus} -> httpStatus) (\s@CreateGatewayRouteResponse' {} a -> s {httpStatus = a} :: CreateGatewayRouteResponse)++-- | The full description of your gateway route following the create call.+createGatewayRouteResponse_gatewayRoute :: Lens.Lens' CreateGatewayRouteResponse GatewayRouteData+createGatewayRouteResponse_gatewayRoute = Lens.lens (\CreateGatewayRouteResponse' {gatewayRoute} -> gatewayRoute) (\s@CreateGatewayRouteResponse' {} a -> s {gatewayRoute = a} :: CreateGatewayRouteResponse)++instance Prelude.NFData CreateGatewayRouteResponse where+ rnf CreateGatewayRouteResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf gatewayRoute
+ gen/Amazonka/AppMesh/CreateMesh.hs view
@@ -0,0 +1,238 @@+{-# 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.AppMesh.CreateMesh+-- 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 service mesh.+--+-- A service mesh is a logical boundary for network traffic between+-- services that are represented by resources within the mesh. After you+-- create your service mesh, you can create virtual services, virtual+-- nodes, virtual routers, and routes to distribute traffic between the+-- applications in your mesh.+--+-- For more information about service meshes, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/meshes.html Service meshes>.+module Amazonka.AppMesh.CreateMesh+ ( -- * Creating a Request+ CreateMesh (..),+ newCreateMesh,++ -- * Request Lenses+ createMesh_clientToken,+ createMesh_spec,+ createMesh_tags,+ createMesh_meshName,++ -- * Destructuring the Response+ CreateMeshResponse (..),+ newCreateMeshResponse,++ -- * Response Lenses+ createMeshResponse_httpStatus,+ createMeshResponse_mesh,+ )+where++import Amazonka.AppMesh.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:/ 'newCreateMesh' smart constructor.+data CreateMesh = CreateMesh'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The service mesh specification to apply.+ spec :: Prelude.Maybe MeshSpec,+ -- | Optional metadata that you can apply to the service mesh to assist with+ -- categorization and organization. Each tag consists of a key and an+ -- optional value, both of which you define. Tag keys can have a maximum+ -- character length of 128 characters, and tag values can have a maximum+ -- length of 256 characters.+ tags :: Prelude.Maybe [TagRef],+ -- | The name to use for the service mesh.+ meshName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateMesh' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createMesh_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'spec', 'createMesh_spec' - The service mesh specification to apply.+--+-- 'tags', 'createMesh_tags' - Optional metadata that you can apply to the service mesh to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+--+-- 'meshName', 'createMesh_meshName' - The name to use for the service mesh.+newCreateMesh ::+ -- | 'meshName'+ Prelude.Text ->+ CreateMesh+newCreateMesh pMeshName_ =+ CreateMesh'+ { clientToken = Prelude.Nothing,+ spec = Prelude.Nothing,+ tags = Prelude.Nothing,+ meshName = pMeshName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+createMesh_clientToken :: Lens.Lens' CreateMesh (Prelude.Maybe Prelude.Text)+createMesh_clientToken = Lens.lens (\CreateMesh' {clientToken} -> clientToken) (\s@CreateMesh' {} a -> s {clientToken = a} :: CreateMesh)++-- | The service mesh specification to apply.+createMesh_spec :: Lens.Lens' CreateMesh (Prelude.Maybe MeshSpec)+createMesh_spec = Lens.lens (\CreateMesh' {spec} -> spec) (\s@CreateMesh' {} a -> s {spec = a} :: CreateMesh)++-- | Optional metadata that you can apply to the service mesh to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+createMesh_tags :: Lens.Lens' CreateMesh (Prelude.Maybe [TagRef])+createMesh_tags = Lens.lens (\CreateMesh' {tags} -> tags) (\s@CreateMesh' {} a -> s {tags = a} :: CreateMesh) Prelude.. Lens.mapping Lens.coerced++-- | The name to use for the service mesh.+createMesh_meshName :: Lens.Lens' CreateMesh Prelude.Text+createMesh_meshName = Lens.lens (\CreateMesh' {meshName} -> meshName) (\s@CreateMesh' {} a -> s {meshName = a} :: CreateMesh)++instance Core.AWSRequest CreateMesh where+ type AWSResponse CreateMesh = CreateMeshResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateMeshResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable CreateMesh where+ hashWithSalt _salt CreateMesh' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` meshName++instance Prelude.NFData CreateMesh where+ rnf CreateMesh' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf meshName++instance Data.ToHeaders CreateMesh where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateMesh where+ toJSON CreateMesh' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("spec" Data..=) Prelude.<$> spec,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("meshName" Data..= meshName)+ ]+ )++instance Data.ToPath CreateMesh where+ toPath = Prelude.const "/v20190125/meshes"++instance Data.ToQuery CreateMesh where+ toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newCreateMeshResponse' smart constructor.+data CreateMeshResponse = CreateMeshResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your service mesh following the create call.+ mesh :: MeshData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateMeshResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createMeshResponse_httpStatus' - The response's http status code.+--+-- 'mesh', 'createMeshResponse_mesh' - The full description of your service mesh following the create call.+newCreateMeshResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'mesh'+ MeshData ->+ CreateMeshResponse+newCreateMeshResponse pHttpStatus_ pMesh_ =+ CreateMeshResponse'+ { httpStatus = pHttpStatus_,+ mesh = pMesh_+ }++-- | The response's http status code.+createMeshResponse_httpStatus :: Lens.Lens' CreateMeshResponse Prelude.Int+createMeshResponse_httpStatus = Lens.lens (\CreateMeshResponse' {httpStatus} -> httpStatus) (\s@CreateMeshResponse' {} a -> s {httpStatus = a} :: CreateMeshResponse)++-- | The full description of your service mesh following the create call.+createMeshResponse_mesh :: Lens.Lens' CreateMeshResponse MeshData+createMeshResponse_mesh = Lens.lens (\CreateMeshResponse' {mesh} -> mesh) (\s@CreateMeshResponse' {} a -> s {mesh = a} :: CreateMeshResponse)++instance Prelude.NFData CreateMeshResponse where+ rnf CreateMeshResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf mesh
+ gen/Amazonka/AppMesh/CreateRoute.hs view
@@ -0,0 +1,307 @@+{-# 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.AppMesh.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 that is associated with a virtual router.+--+-- You can route several different protocols and define a retry policy for+-- a route. Traffic can be routed to one or more virtual nodes.+--+-- For more information about routes, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/routes.html Routes>.+module Amazonka.AppMesh.CreateRoute+ ( -- * Creating a Request+ CreateRoute (..),+ newCreateRoute,++ -- * Request Lenses+ createRoute_clientToken,+ createRoute_meshOwner,+ createRoute_tags,+ createRoute_meshName,+ createRoute_routeName,+ createRoute_spec,+ createRoute_virtualRouterName,++ -- * Destructuring the Response+ CreateRouteResponse (..),+ newCreateRouteResponse,++ -- * Response Lenses+ createRouteResponse_httpStatus,+ createRouteResponse_route,+ )+where++import Amazonka.AppMesh.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:/ 'newCreateRoute' smart constructor.+data CreateRoute = CreateRoute'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then the account that you specify must share+ -- the mesh with your account before you can create the resource in the+ -- service mesh. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | Optional metadata that you can apply to the route to assist with+ -- categorization and organization. Each tag consists of a key and an+ -- optional value, both of which you define. Tag keys can have a maximum+ -- character length of 128 characters, and tag values can have a maximum+ -- length of 256 characters.+ tags :: Prelude.Maybe [TagRef],+ -- | The name of the service mesh to create the route in.+ meshName :: Prelude.Text,+ -- | The name to use for the route.+ routeName :: Prelude.Text,+ -- | The route specification to apply.+ spec :: RouteSpec,+ -- | The name of the virtual router in which to create the route. If the+ -- virtual router is in a shared mesh, then you must be the owner of the+ -- virtual router resource.+ virtualRouterName :: 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:+--+-- 'clientToken', 'createRoute_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'createRoute_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'tags', 'createRoute_tags' - Optional metadata that you can apply to the route to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+--+-- 'meshName', 'createRoute_meshName' - The name of the service mesh to create the route in.+--+-- 'routeName', 'createRoute_routeName' - The name to use for the route.+--+-- 'spec', 'createRoute_spec' - The route specification to apply.+--+-- 'virtualRouterName', 'createRoute_virtualRouterName' - The name of the virtual router in which to create the route. If the+-- virtual router is in a shared mesh, then you must be the owner of the+-- virtual router resource.+newCreateRoute ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'routeName'+ Prelude.Text ->+ -- | 'spec'+ RouteSpec ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ CreateRoute+newCreateRoute+ pMeshName_+ pRouteName_+ pSpec_+ pVirtualRouterName_ =+ CreateRoute'+ { clientToken = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ tags = Prelude.Nothing,+ meshName = pMeshName_,+ routeName = pRouteName_,+ spec = pSpec_,+ virtualRouterName = pVirtualRouterName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+createRoute_clientToken :: Lens.Lens' CreateRoute (Prelude.Maybe Prelude.Text)+createRoute_clientToken = Lens.lens (\CreateRoute' {clientToken} -> clientToken) (\s@CreateRoute' {} a -> s {clientToken = a} :: CreateRoute)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+createRoute_meshOwner :: Lens.Lens' CreateRoute (Prelude.Maybe Prelude.Text)+createRoute_meshOwner = Lens.lens (\CreateRoute' {meshOwner} -> meshOwner) (\s@CreateRoute' {} a -> s {meshOwner = a} :: CreateRoute)++-- | Optional metadata that you can apply to the route to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+createRoute_tags :: Lens.Lens' CreateRoute (Prelude.Maybe [TagRef])+createRoute_tags = Lens.lens (\CreateRoute' {tags} -> tags) (\s@CreateRoute' {} a -> s {tags = a} :: CreateRoute) Prelude.. Lens.mapping Lens.coerced++-- | The name of the service mesh to create the route in.+createRoute_meshName :: Lens.Lens' CreateRoute Prelude.Text+createRoute_meshName = Lens.lens (\CreateRoute' {meshName} -> meshName) (\s@CreateRoute' {} a -> s {meshName = a} :: CreateRoute)++-- | The name to use for the route.+createRoute_routeName :: Lens.Lens' CreateRoute Prelude.Text+createRoute_routeName = Lens.lens (\CreateRoute' {routeName} -> routeName) (\s@CreateRoute' {} a -> s {routeName = a} :: CreateRoute)++-- | The route specification to apply.+createRoute_spec :: Lens.Lens' CreateRoute RouteSpec+createRoute_spec = Lens.lens (\CreateRoute' {spec} -> spec) (\s@CreateRoute' {} a -> s {spec = a} :: CreateRoute)++-- | The name of the virtual router in which to create the route. If the+-- virtual router is in a shared mesh, then you must be the owner of the+-- virtual router resource.+createRoute_virtualRouterName :: Lens.Lens' CreateRoute Prelude.Text+createRoute_virtualRouterName = Lens.lens (\CreateRoute' {virtualRouterName} -> virtualRouterName) (\s@CreateRoute' {} a -> s {virtualRouterName = a} :: CreateRoute)++instance Core.AWSRequest CreateRoute where+ type AWSResponse CreateRoute = CreateRouteResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateRouteResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable CreateRoute where+ hashWithSalt _salt CreateRoute' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` routeName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData CreateRoute where+ rnf CreateRoute' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf routeName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualRouterName++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+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("routeName" Data..= routeName),+ Prelude.Just ("spec" Data..= spec)+ ]+ )++instance Data.ToPath CreateRoute where+ toPath CreateRoute' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouter/",+ Data.toBS virtualRouterName,+ "/routes"+ ]++instance Data.ToQuery CreateRoute where+ toQuery CreateRoute' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newCreateRouteResponse' smart constructor.+data CreateRouteResponse = CreateRouteResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your mesh following the create call.+ route :: RouteData+ }+ 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:+--+-- 'httpStatus', 'createRouteResponse_httpStatus' - The response's http status code.+--+-- 'route', 'createRouteResponse_route' - The full description of your mesh following the create call.+newCreateRouteResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'route'+ RouteData ->+ CreateRouteResponse+newCreateRouteResponse pHttpStatus_ pRoute_ =+ CreateRouteResponse'+ { httpStatus = pHttpStatus_,+ route = pRoute_+ }++-- | 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)++-- | The full description of your mesh following the create call.+createRouteResponse_route :: Lens.Lens' CreateRouteResponse RouteData+createRouteResponse_route = Lens.lens (\CreateRouteResponse' {route} -> route) (\s@CreateRouteResponse' {} a -> s {route = a} :: CreateRouteResponse)++instance Prelude.NFData CreateRouteResponse where+ rnf CreateRouteResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf route
+ gen/Amazonka/AppMesh/CreateVirtualGateway.hs view
@@ -0,0 +1,291 @@+{-# 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.AppMesh.CreateVirtualGateway+-- 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 virtual gateway.+--+-- A virtual gateway allows resources outside your mesh to communicate to+-- resources that are inside your mesh. The virtual gateway represents an+-- Envoy proxy running in an Amazon ECS task, in a Kubernetes service, or+-- on an Amazon EC2 instance. Unlike a virtual node, which represents an+-- Envoy running with an application, a virtual gateway represents Envoy+-- deployed by itself.+--+-- For more information about virtual gateways, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html Virtual gateways>.+module Amazonka.AppMesh.CreateVirtualGateway+ ( -- * Creating a Request+ CreateVirtualGateway (..),+ newCreateVirtualGateway,++ -- * Request Lenses+ createVirtualGateway_clientToken,+ createVirtualGateway_meshOwner,+ createVirtualGateway_tags,+ createVirtualGateway_meshName,+ createVirtualGateway_spec,+ createVirtualGateway_virtualGatewayName,++ -- * Destructuring the Response+ CreateVirtualGatewayResponse (..),+ newCreateVirtualGatewayResponse,++ -- * Response Lenses+ createVirtualGatewayResponse_httpStatus,+ createVirtualGatewayResponse_virtualGateway,+ )+where++import Amazonka.AppMesh.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:/ 'newCreateVirtualGateway' smart constructor.+data CreateVirtualGateway = CreateVirtualGateway'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then the account that you specify must share+ -- the mesh with your account before you can create the resource in the+ -- service mesh. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | Optional metadata that you can apply to the virtual gateway to assist+ -- with categorization and organization. Each tag consists of a key and an+ -- optional value, both of which you define. Tag keys can have a maximum+ -- character length of 128 characters, and tag values can have a maximum+ -- length of 256 characters.+ tags :: Prelude.Maybe [TagRef],+ -- | The name of the service mesh to create the virtual gateway in.+ meshName :: Prelude.Text,+ -- | The virtual gateway specification to apply.+ spec :: VirtualGatewaySpec,+ -- | The name to use for the virtual gateway.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualGateway' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createVirtualGateway_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'createVirtualGateway_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'tags', 'createVirtualGateway_tags' - Optional metadata that you can apply to the virtual gateway to assist+-- with categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+--+-- 'meshName', 'createVirtualGateway_meshName' - The name of the service mesh to create the virtual gateway in.+--+-- 'spec', 'createVirtualGateway_spec' - The virtual gateway specification to apply.+--+-- 'virtualGatewayName', 'createVirtualGateway_virtualGatewayName' - The name to use for the virtual gateway.+newCreateVirtualGateway ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ VirtualGatewaySpec ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ CreateVirtualGateway+newCreateVirtualGateway+ pMeshName_+ pSpec_+ pVirtualGatewayName_ =+ CreateVirtualGateway'+ { clientToken =+ Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ tags = Prelude.Nothing,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+createVirtualGateway_clientToken :: Lens.Lens' CreateVirtualGateway (Prelude.Maybe Prelude.Text)+createVirtualGateway_clientToken = Lens.lens (\CreateVirtualGateway' {clientToken} -> clientToken) (\s@CreateVirtualGateway' {} a -> s {clientToken = a} :: CreateVirtualGateway)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+createVirtualGateway_meshOwner :: Lens.Lens' CreateVirtualGateway (Prelude.Maybe Prelude.Text)+createVirtualGateway_meshOwner = Lens.lens (\CreateVirtualGateway' {meshOwner} -> meshOwner) (\s@CreateVirtualGateway' {} a -> s {meshOwner = a} :: CreateVirtualGateway)++-- | Optional metadata that you can apply to the virtual gateway to assist+-- with categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+createVirtualGateway_tags :: Lens.Lens' CreateVirtualGateway (Prelude.Maybe [TagRef])+createVirtualGateway_tags = Lens.lens (\CreateVirtualGateway' {tags} -> tags) (\s@CreateVirtualGateway' {} a -> s {tags = a} :: CreateVirtualGateway) Prelude.. Lens.mapping Lens.coerced++-- | The name of the service mesh to create the virtual gateway in.+createVirtualGateway_meshName :: Lens.Lens' CreateVirtualGateway Prelude.Text+createVirtualGateway_meshName = Lens.lens (\CreateVirtualGateway' {meshName} -> meshName) (\s@CreateVirtualGateway' {} a -> s {meshName = a} :: CreateVirtualGateway)++-- | The virtual gateway specification to apply.+createVirtualGateway_spec :: Lens.Lens' CreateVirtualGateway VirtualGatewaySpec+createVirtualGateway_spec = Lens.lens (\CreateVirtualGateway' {spec} -> spec) (\s@CreateVirtualGateway' {} a -> s {spec = a} :: CreateVirtualGateway)++-- | The name to use for the virtual gateway.+createVirtualGateway_virtualGatewayName :: Lens.Lens' CreateVirtualGateway Prelude.Text+createVirtualGateway_virtualGatewayName = Lens.lens (\CreateVirtualGateway' {virtualGatewayName} -> virtualGatewayName) (\s@CreateVirtualGateway' {} a -> s {virtualGatewayName = a} :: CreateVirtualGateway)++instance Core.AWSRequest CreateVirtualGateway where+ type+ AWSResponse CreateVirtualGateway =+ CreateVirtualGatewayResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateVirtualGatewayResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable CreateVirtualGateway where+ hashWithSalt _salt CreateVirtualGateway' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData CreateVirtualGateway where+ rnf CreateVirtualGateway' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders CreateVirtualGateway where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateVirtualGateway where+ toJSON CreateVirtualGateway' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("spec" Data..= spec),+ Prelude.Just+ ("virtualGatewayName" Data..= virtualGatewayName)+ ]+ )++instance Data.ToPath CreateVirtualGateway where+ toPath CreateVirtualGateway' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateways"+ ]++instance Data.ToQuery CreateVirtualGateway where+ toQuery CreateVirtualGateway' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- | /See:/ 'newCreateVirtualGatewayResponse' smart constructor.+data CreateVirtualGatewayResponse = CreateVirtualGatewayResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your virtual gateway following the create call.+ virtualGateway :: VirtualGatewayData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualGatewayResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVirtualGatewayResponse_httpStatus' - The response's http status code.+--+-- 'virtualGateway', 'createVirtualGatewayResponse_virtualGateway' - The full description of your virtual gateway following the create call.+newCreateVirtualGatewayResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualGateway'+ VirtualGatewayData ->+ CreateVirtualGatewayResponse+newCreateVirtualGatewayResponse+ pHttpStatus_+ pVirtualGateway_ =+ CreateVirtualGatewayResponse'+ { httpStatus =+ pHttpStatus_,+ virtualGateway = pVirtualGateway_+ }++-- | The response's http status code.+createVirtualGatewayResponse_httpStatus :: Lens.Lens' CreateVirtualGatewayResponse Prelude.Int+createVirtualGatewayResponse_httpStatus = Lens.lens (\CreateVirtualGatewayResponse' {httpStatus} -> httpStatus) (\s@CreateVirtualGatewayResponse' {} a -> s {httpStatus = a} :: CreateVirtualGatewayResponse)++-- | The full description of your virtual gateway following the create call.+createVirtualGatewayResponse_virtualGateway :: Lens.Lens' CreateVirtualGatewayResponse VirtualGatewayData+createVirtualGatewayResponse_virtualGateway = Lens.lens (\CreateVirtualGatewayResponse' {virtualGateway} -> virtualGateway) (\s@CreateVirtualGatewayResponse' {} a -> s {virtualGateway = a} :: CreateVirtualGatewayResponse)++instance Prelude.NFData CreateVirtualGatewayResponse where+ rnf CreateVirtualGatewayResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualGateway
+ gen/Amazonka/AppMesh/CreateVirtualNode.hs view
@@ -0,0 +1,314 @@+{-# 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.AppMesh.CreateVirtualNode+-- 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 virtual node within a service mesh.+--+-- A virtual node acts as a logical pointer to a particular task group,+-- such as an Amazon ECS service or a Kubernetes deployment. When you+-- create a virtual node, you can specify the service discovery information+-- for your task group, and whether the proxy running in a task group will+-- communicate with other proxies using Transport Layer Security (TLS).+--+-- You define a @listener@ for any inbound traffic that your virtual node+-- expects. Any virtual service that your virtual node expects to+-- communicate to is specified as a @backend@.+--+-- The response metadata for your new virtual node contains the @arn@ that+-- is associated with the virtual node. Set this value to the full ARN; for+-- example,+-- @arn:aws:appmesh:us-west-2:123456789012:myMesh\/default\/virtualNode\/myApp@)+-- as the @APPMESH_RESOURCE_ARN@ environment variable for your task+-- group\'s Envoy proxy container in your task definition or pod spec. This+-- is then mapped to the @node.id@ and @node.cluster@ Envoy parameters.+--+-- By default, App Mesh uses the name of the resource you specified in+-- @APPMESH_RESOURCE_ARN@ when Envoy is referring to itself in metrics and+-- traces. You can override this behavior by setting the+-- @APPMESH_RESOURCE_CLUSTER@ environment variable with your own name.+--+-- For more information about virtual nodes, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html Virtual nodes>.+-- You must be using @1.15.0@ or later of the Envoy image when setting+-- these variables. For more information aboutApp Mesh Envoy variables, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html Envoy image>+-- in the App Mesh User Guide.+module Amazonka.AppMesh.CreateVirtualNode+ ( -- * Creating a Request+ CreateVirtualNode (..),+ newCreateVirtualNode,++ -- * Request Lenses+ createVirtualNode_clientToken,+ createVirtualNode_meshOwner,+ createVirtualNode_tags,+ createVirtualNode_meshName,+ createVirtualNode_spec,+ createVirtualNode_virtualNodeName,++ -- * Destructuring the Response+ CreateVirtualNodeResponse (..),+ newCreateVirtualNodeResponse,++ -- * Response Lenses+ createVirtualNodeResponse_httpStatus,+ createVirtualNodeResponse_virtualNode,+ )+where++import Amazonka.AppMesh.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:/ 'newCreateVirtualNode' smart constructor.+data CreateVirtualNode = CreateVirtualNode'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then the account that you specify must share+ -- the mesh with your account before you can create the resource in the+ -- service mesh. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | Optional metadata that you can apply to the virtual node to assist with+ -- categorization and organization. Each tag consists of a key and an+ -- optional value, both of which you define. Tag keys can have a maximum+ -- character length of 128 characters, and tag values can have a maximum+ -- length of 256 characters.+ tags :: Prelude.Maybe [TagRef],+ -- | The name of the service mesh to create the virtual node in.+ meshName :: Prelude.Text,+ -- | The virtual node specification to apply.+ spec :: VirtualNodeSpec,+ -- | The name to use for the virtual node.+ virtualNodeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualNode' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createVirtualNode_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'createVirtualNode_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'tags', 'createVirtualNode_tags' - Optional metadata that you can apply to the virtual node to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+--+-- 'meshName', 'createVirtualNode_meshName' - The name of the service mesh to create the virtual node in.+--+-- 'spec', 'createVirtualNode_spec' - The virtual node specification to apply.+--+-- 'virtualNodeName', 'createVirtualNode_virtualNodeName' - The name to use for the virtual node.+newCreateVirtualNode ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ VirtualNodeSpec ->+ -- | 'virtualNodeName'+ Prelude.Text ->+ CreateVirtualNode+newCreateVirtualNode+ pMeshName_+ pSpec_+ pVirtualNodeName_ =+ CreateVirtualNode'+ { clientToken = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ tags = Prelude.Nothing,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualNodeName = pVirtualNodeName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+createVirtualNode_clientToken :: Lens.Lens' CreateVirtualNode (Prelude.Maybe Prelude.Text)+createVirtualNode_clientToken = Lens.lens (\CreateVirtualNode' {clientToken} -> clientToken) (\s@CreateVirtualNode' {} a -> s {clientToken = a} :: CreateVirtualNode)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+createVirtualNode_meshOwner :: Lens.Lens' CreateVirtualNode (Prelude.Maybe Prelude.Text)+createVirtualNode_meshOwner = Lens.lens (\CreateVirtualNode' {meshOwner} -> meshOwner) (\s@CreateVirtualNode' {} a -> s {meshOwner = a} :: CreateVirtualNode)++-- | Optional metadata that you can apply to the virtual node to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+createVirtualNode_tags :: Lens.Lens' CreateVirtualNode (Prelude.Maybe [TagRef])+createVirtualNode_tags = Lens.lens (\CreateVirtualNode' {tags} -> tags) (\s@CreateVirtualNode' {} a -> s {tags = a} :: CreateVirtualNode) Prelude.. Lens.mapping Lens.coerced++-- | The name of the service mesh to create the virtual node in.+createVirtualNode_meshName :: Lens.Lens' CreateVirtualNode Prelude.Text+createVirtualNode_meshName = Lens.lens (\CreateVirtualNode' {meshName} -> meshName) (\s@CreateVirtualNode' {} a -> s {meshName = a} :: CreateVirtualNode)++-- | The virtual node specification to apply.+createVirtualNode_spec :: Lens.Lens' CreateVirtualNode VirtualNodeSpec+createVirtualNode_spec = Lens.lens (\CreateVirtualNode' {spec} -> spec) (\s@CreateVirtualNode' {} a -> s {spec = a} :: CreateVirtualNode)++-- | The name to use for the virtual node.+createVirtualNode_virtualNodeName :: Lens.Lens' CreateVirtualNode Prelude.Text+createVirtualNode_virtualNodeName = Lens.lens (\CreateVirtualNode' {virtualNodeName} -> virtualNodeName) (\s@CreateVirtualNode' {} a -> s {virtualNodeName = a} :: CreateVirtualNode)++instance Core.AWSRequest CreateVirtualNode where+ type+ AWSResponse CreateVirtualNode =+ CreateVirtualNodeResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateVirtualNodeResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable CreateVirtualNode where+ hashWithSalt _salt CreateVirtualNode' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualNodeName++instance Prelude.NFData CreateVirtualNode where+ rnf CreateVirtualNode' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualNodeName++instance Data.ToHeaders CreateVirtualNode where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateVirtualNode where+ toJSON CreateVirtualNode' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("spec" Data..= spec),+ Prelude.Just+ ("virtualNodeName" Data..= virtualNodeName)+ ]+ )++instance Data.ToPath CreateVirtualNode where+ toPath CreateVirtualNode' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualNodes"+ ]++instance Data.ToQuery CreateVirtualNode where+ toQuery CreateVirtualNode' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newCreateVirtualNodeResponse' smart constructor.+data CreateVirtualNodeResponse = CreateVirtualNodeResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your virtual node following the create call.+ virtualNode :: VirtualNodeData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualNodeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVirtualNodeResponse_httpStatus' - The response's http status code.+--+-- 'virtualNode', 'createVirtualNodeResponse_virtualNode' - The full description of your virtual node following the create call.+newCreateVirtualNodeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualNode'+ VirtualNodeData ->+ CreateVirtualNodeResponse+newCreateVirtualNodeResponse+ pHttpStatus_+ pVirtualNode_ =+ CreateVirtualNodeResponse'+ { httpStatus =+ pHttpStatus_,+ virtualNode = pVirtualNode_+ }++-- | The response's http status code.+createVirtualNodeResponse_httpStatus :: Lens.Lens' CreateVirtualNodeResponse Prelude.Int+createVirtualNodeResponse_httpStatus = Lens.lens (\CreateVirtualNodeResponse' {httpStatus} -> httpStatus) (\s@CreateVirtualNodeResponse' {} a -> s {httpStatus = a} :: CreateVirtualNodeResponse)++-- | The full description of your virtual node following the create call.+createVirtualNodeResponse_virtualNode :: Lens.Lens' CreateVirtualNodeResponse VirtualNodeData+createVirtualNodeResponse_virtualNode = Lens.lens (\CreateVirtualNodeResponse' {virtualNode} -> virtualNode) (\s@CreateVirtualNodeResponse' {} a -> s {virtualNode = a} :: CreateVirtualNodeResponse)++instance Prelude.NFData CreateVirtualNodeResponse where+ rnf CreateVirtualNodeResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualNode
+ gen/Amazonka/AppMesh/CreateVirtualRouter.hs view
@@ -0,0 +1,294 @@+{-# 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.AppMesh.CreateVirtualRouter+-- 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 virtual router within a service mesh.+--+-- Specify a @listener@ for any inbound traffic that your virtual router+-- receives. Create a virtual router for each protocol and port that you+-- need to route. Virtual routers handle traffic for one or more virtual+-- services within your mesh. After you create your virtual router, create+-- and associate routes for your virtual router that direct incoming+-- requests to different virtual nodes.+--+-- For more information about virtual routers, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_routers.html Virtual routers>.+module Amazonka.AppMesh.CreateVirtualRouter+ ( -- * Creating a Request+ CreateVirtualRouter (..),+ newCreateVirtualRouter,++ -- * Request Lenses+ createVirtualRouter_clientToken,+ createVirtualRouter_meshOwner,+ createVirtualRouter_tags,+ createVirtualRouter_meshName,+ createVirtualRouter_spec,+ createVirtualRouter_virtualRouterName,++ -- * Destructuring the Response+ CreateVirtualRouterResponse (..),+ newCreateVirtualRouterResponse,++ -- * Response Lenses+ createVirtualRouterResponse_httpStatus,+ createVirtualRouterResponse_virtualRouter,+ )+where++import Amazonka.AppMesh.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:/ 'newCreateVirtualRouter' smart constructor.+data CreateVirtualRouter = CreateVirtualRouter'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then the account that you specify must share+ -- the mesh with your account before you can create the resource in the+ -- service mesh. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | Optional metadata that you can apply to the virtual router to assist+ -- with categorization and organization. Each tag consists of a key and an+ -- optional value, both of which you define. Tag keys can have a maximum+ -- character length of 128 characters, and tag values can have a maximum+ -- length of 256 characters.+ tags :: Prelude.Maybe [TagRef],+ -- | The name of the service mesh to create the virtual router in.+ meshName :: Prelude.Text,+ -- | The virtual router specification to apply.+ spec :: VirtualRouterSpec,+ -- | The name to use for the virtual router.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualRouter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createVirtualRouter_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'createVirtualRouter_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'tags', 'createVirtualRouter_tags' - Optional metadata that you can apply to the virtual router to assist+-- with categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+--+-- 'meshName', 'createVirtualRouter_meshName' - The name of the service mesh to create the virtual router in.+--+-- 'spec', 'createVirtualRouter_spec' - The virtual router specification to apply.+--+-- 'virtualRouterName', 'createVirtualRouter_virtualRouterName' - The name to use for the virtual router.+newCreateVirtualRouter ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ VirtualRouterSpec ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ CreateVirtualRouter+newCreateVirtualRouter+ pMeshName_+ pSpec_+ pVirtualRouterName_ =+ CreateVirtualRouter'+ { clientToken = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ tags = Prelude.Nothing,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualRouterName = pVirtualRouterName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+createVirtualRouter_clientToken :: Lens.Lens' CreateVirtualRouter (Prelude.Maybe Prelude.Text)+createVirtualRouter_clientToken = Lens.lens (\CreateVirtualRouter' {clientToken} -> clientToken) (\s@CreateVirtualRouter' {} a -> s {clientToken = a} :: CreateVirtualRouter)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+createVirtualRouter_meshOwner :: Lens.Lens' CreateVirtualRouter (Prelude.Maybe Prelude.Text)+createVirtualRouter_meshOwner = Lens.lens (\CreateVirtualRouter' {meshOwner} -> meshOwner) (\s@CreateVirtualRouter' {} a -> s {meshOwner = a} :: CreateVirtualRouter)++-- | Optional metadata that you can apply to the virtual router to assist+-- with categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+createVirtualRouter_tags :: Lens.Lens' CreateVirtualRouter (Prelude.Maybe [TagRef])+createVirtualRouter_tags = Lens.lens (\CreateVirtualRouter' {tags} -> tags) (\s@CreateVirtualRouter' {} a -> s {tags = a} :: CreateVirtualRouter) Prelude.. Lens.mapping Lens.coerced++-- | The name of the service mesh to create the virtual router in.+createVirtualRouter_meshName :: Lens.Lens' CreateVirtualRouter Prelude.Text+createVirtualRouter_meshName = Lens.lens (\CreateVirtualRouter' {meshName} -> meshName) (\s@CreateVirtualRouter' {} a -> s {meshName = a} :: CreateVirtualRouter)++-- | The virtual router specification to apply.+createVirtualRouter_spec :: Lens.Lens' CreateVirtualRouter VirtualRouterSpec+createVirtualRouter_spec = Lens.lens (\CreateVirtualRouter' {spec} -> spec) (\s@CreateVirtualRouter' {} a -> s {spec = a} :: CreateVirtualRouter)++-- | The name to use for the virtual router.+createVirtualRouter_virtualRouterName :: Lens.Lens' CreateVirtualRouter Prelude.Text+createVirtualRouter_virtualRouterName = Lens.lens (\CreateVirtualRouter' {virtualRouterName} -> virtualRouterName) (\s@CreateVirtualRouter' {} a -> s {virtualRouterName = a} :: CreateVirtualRouter)++instance Core.AWSRequest CreateVirtualRouter where+ type+ AWSResponse CreateVirtualRouter =+ CreateVirtualRouterResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateVirtualRouterResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable CreateVirtualRouter where+ hashWithSalt _salt CreateVirtualRouter' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData CreateVirtualRouter where+ rnf CreateVirtualRouter' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualRouterName++instance Data.ToHeaders CreateVirtualRouter where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateVirtualRouter where+ toJSON CreateVirtualRouter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("spec" Data..= spec),+ Prelude.Just+ ("virtualRouterName" Data..= virtualRouterName)+ ]+ )++instance Data.ToPath CreateVirtualRouter where+ toPath CreateVirtualRouter' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouters"+ ]++instance Data.ToQuery CreateVirtualRouter where+ toQuery CreateVirtualRouter' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newCreateVirtualRouterResponse' smart constructor.+data CreateVirtualRouterResponse = CreateVirtualRouterResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your virtual router following the create call.+ virtualRouter :: VirtualRouterData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualRouterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVirtualRouterResponse_httpStatus' - The response's http status code.+--+-- 'virtualRouter', 'createVirtualRouterResponse_virtualRouter' - The full description of your virtual router following the create call.+newCreateVirtualRouterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualRouter'+ VirtualRouterData ->+ CreateVirtualRouterResponse+newCreateVirtualRouterResponse+ pHttpStatus_+ pVirtualRouter_ =+ CreateVirtualRouterResponse'+ { httpStatus =+ pHttpStatus_,+ virtualRouter = pVirtualRouter_+ }++-- | The response's http status code.+createVirtualRouterResponse_httpStatus :: Lens.Lens' CreateVirtualRouterResponse Prelude.Int+createVirtualRouterResponse_httpStatus = Lens.lens (\CreateVirtualRouterResponse' {httpStatus} -> httpStatus) (\s@CreateVirtualRouterResponse' {} a -> s {httpStatus = a} :: CreateVirtualRouterResponse)++-- | The full description of your virtual router following the create call.+createVirtualRouterResponse_virtualRouter :: Lens.Lens' CreateVirtualRouterResponse VirtualRouterData+createVirtualRouterResponse_virtualRouter = Lens.lens (\CreateVirtualRouterResponse' {virtualRouter} -> virtualRouter) (\s@CreateVirtualRouterResponse' {} a -> s {virtualRouter = a} :: CreateVirtualRouterResponse)++instance Prelude.NFData CreateVirtualRouterResponse where+ rnf CreateVirtualRouterResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualRouter
+ gen/Amazonka/AppMesh/CreateVirtualService.hs view
@@ -0,0 +1,295 @@+{-# 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.AppMesh.CreateVirtualService+-- 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 virtual service within a service mesh.+--+-- A virtual service is an abstraction of a real service that is provided+-- by a virtual node directly or indirectly by means of a virtual router.+-- Dependent services call your virtual service by its+-- @virtualServiceName@, and those requests are routed to the virtual node+-- or virtual router that is specified as the provider for the virtual+-- service.+--+-- For more information about virtual services, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_services.html Virtual services>.+module Amazonka.AppMesh.CreateVirtualService+ ( -- * Creating a Request+ CreateVirtualService (..),+ newCreateVirtualService,++ -- * Request Lenses+ createVirtualService_clientToken,+ createVirtualService_meshOwner,+ createVirtualService_tags,+ createVirtualService_meshName,+ createVirtualService_spec,+ createVirtualService_virtualServiceName,++ -- * Destructuring the Response+ CreateVirtualServiceResponse (..),+ newCreateVirtualServiceResponse,++ -- * Response Lenses+ createVirtualServiceResponse_httpStatus,+ createVirtualServiceResponse_virtualService,+ )+where++import Amazonka.AppMesh.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:/ 'newCreateVirtualService' smart constructor.+data CreateVirtualService = CreateVirtualService'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then the account that you specify must share+ -- the mesh with your account before you can create the resource in the+ -- service mesh. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | Optional metadata that you can apply to the virtual service to assist+ -- with categorization and organization. Each tag consists of a key and an+ -- optional value, both of which you define. Tag keys can have a maximum+ -- character length of 128 characters, and tag values can have a maximum+ -- length of 256 characters.+ tags :: Prelude.Maybe [TagRef],+ -- | The name of the service mesh to create the virtual service in.+ meshName :: Prelude.Text,+ -- | The virtual service specification to apply.+ spec :: VirtualServiceSpec,+ -- | The name to use for the virtual service.+ virtualServiceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualService' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createVirtualService_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'createVirtualService_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'tags', 'createVirtualService_tags' - Optional metadata that you can apply to the virtual service to assist+-- with categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+--+-- 'meshName', 'createVirtualService_meshName' - The name of the service mesh to create the virtual service in.+--+-- 'spec', 'createVirtualService_spec' - The virtual service specification to apply.+--+-- 'virtualServiceName', 'createVirtualService_virtualServiceName' - The name to use for the virtual service.+newCreateVirtualService ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ VirtualServiceSpec ->+ -- | 'virtualServiceName'+ Prelude.Text ->+ CreateVirtualService+newCreateVirtualService+ pMeshName_+ pSpec_+ pVirtualServiceName_ =+ CreateVirtualService'+ { clientToken =+ Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ tags = Prelude.Nothing,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualServiceName = pVirtualServiceName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+createVirtualService_clientToken :: Lens.Lens' CreateVirtualService (Prelude.Maybe Prelude.Text)+createVirtualService_clientToken = Lens.lens (\CreateVirtualService' {clientToken} -> clientToken) (\s@CreateVirtualService' {} a -> s {clientToken = a} :: CreateVirtualService)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then the account that you specify must share+-- the mesh with your account before you can create the resource in the+-- service mesh. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+createVirtualService_meshOwner :: Lens.Lens' CreateVirtualService (Prelude.Maybe Prelude.Text)+createVirtualService_meshOwner = Lens.lens (\CreateVirtualService' {meshOwner} -> meshOwner) (\s@CreateVirtualService' {} a -> s {meshOwner = a} :: CreateVirtualService)++-- | Optional metadata that you can apply to the virtual service to assist+-- with categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+createVirtualService_tags :: Lens.Lens' CreateVirtualService (Prelude.Maybe [TagRef])+createVirtualService_tags = Lens.lens (\CreateVirtualService' {tags} -> tags) (\s@CreateVirtualService' {} a -> s {tags = a} :: CreateVirtualService) Prelude.. Lens.mapping Lens.coerced++-- | The name of the service mesh to create the virtual service in.+createVirtualService_meshName :: Lens.Lens' CreateVirtualService Prelude.Text+createVirtualService_meshName = Lens.lens (\CreateVirtualService' {meshName} -> meshName) (\s@CreateVirtualService' {} a -> s {meshName = a} :: CreateVirtualService)++-- | The virtual service specification to apply.+createVirtualService_spec :: Lens.Lens' CreateVirtualService VirtualServiceSpec+createVirtualService_spec = Lens.lens (\CreateVirtualService' {spec} -> spec) (\s@CreateVirtualService' {} a -> s {spec = a} :: CreateVirtualService)++-- | The name to use for the virtual service.+createVirtualService_virtualServiceName :: Lens.Lens' CreateVirtualService Prelude.Text+createVirtualService_virtualServiceName = Lens.lens (\CreateVirtualService' {virtualServiceName} -> virtualServiceName) (\s@CreateVirtualService' {} a -> s {virtualServiceName = a} :: CreateVirtualService)++instance Core.AWSRequest CreateVirtualService where+ type+ AWSResponse CreateVirtualService =+ CreateVirtualServiceResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateVirtualServiceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable CreateVirtualService where+ hashWithSalt _salt CreateVirtualService' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualServiceName++instance Prelude.NFData CreateVirtualService where+ rnf CreateVirtualService' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualServiceName++instance Data.ToHeaders CreateVirtualService where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateVirtualService where+ toJSON CreateVirtualService' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("spec" Data..= spec),+ Prelude.Just+ ("virtualServiceName" Data..= virtualServiceName)+ ]+ )++instance Data.ToPath CreateVirtualService where+ toPath CreateVirtualService' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualServices"+ ]++instance Data.ToQuery CreateVirtualService where+ toQuery CreateVirtualService' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newCreateVirtualServiceResponse' smart constructor.+data CreateVirtualServiceResponse = CreateVirtualServiceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your virtual service following the create call.+ virtualService :: VirtualServiceData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualServiceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVirtualServiceResponse_httpStatus' - The response's http status code.+--+-- 'virtualService', 'createVirtualServiceResponse_virtualService' - The full description of your virtual service following the create call.+newCreateVirtualServiceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualService'+ VirtualServiceData ->+ CreateVirtualServiceResponse+newCreateVirtualServiceResponse+ pHttpStatus_+ pVirtualService_ =+ CreateVirtualServiceResponse'+ { httpStatus =+ pHttpStatus_,+ virtualService = pVirtualService_+ }++-- | The response's http status code.+createVirtualServiceResponse_httpStatus :: Lens.Lens' CreateVirtualServiceResponse Prelude.Int+createVirtualServiceResponse_httpStatus = Lens.lens (\CreateVirtualServiceResponse' {httpStatus} -> httpStatus) (\s@CreateVirtualServiceResponse' {} a -> s {httpStatus = a} :: CreateVirtualServiceResponse)++-- | The full description of your virtual service following the create call.+createVirtualServiceResponse_virtualService :: Lens.Lens' CreateVirtualServiceResponse VirtualServiceData+createVirtualServiceResponse_virtualService = Lens.lens (\CreateVirtualServiceResponse' {virtualService} -> virtualService) (\s@CreateVirtualServiceResponse' {} a -> s {virtualService = a} :: CreateVirtualServiceResponse)++instance Prelude.NFData CreateVirtualServiceResponse where+ rnf CreateVirtualServiceResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualService
+ gen/Amazonka/AppMesh/DeleteGatewayRoute.hs view
@@ -0,0 +1,226 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.DeleteGatewayRoute+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing gateway route.+module Amazonka.AppMesh.DeleteGatewayRoute+ ( -- * Creating a Request+ DeleteGatewayRoute (..),+ newDeleteGatewayRoute,++ -- * Request Lenses+ deleteGatewayRoute_meshOwner,+ deleteGatewayRoute_gatewayRouteName,+ deleteGatewayRoute_meshName,+ deleteGatewayRoute_virtualGatewayName,++ -- * Destructuring the Response+ DeleteGatewayRouteResponse (..),+ newDeleteGatewayRouteResponse,++ -- * Response Lenses+ deleteGatewayRouteResponse_httpStatus,+ deleteGatewayRouteResponse_gatewayRoute,+ )+where++import Amazonka.AppMesh.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:/ 'newDeleteGatewayRoute' smart constructor.+data DeleteGatewayRoute = DeleteGatewayRoute'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the gateway route to delete.+ gatewayRouteName :: Prelude.Text,+ -- | The name of the service mesh to delete the gateway route from.+ meshName :: Prelude.Text,+ -- | The name of the virtual gateway to delete the route from.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteGatewayRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'deleteGatewayRoute_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'gatewayRouteName', 'deleteGatewayRoute_gatewayRouteName' - The name of the gateway route to delete.+--+-- 'meshName', 'deleteGatewayRoute_meshName' - The name of the service mesh to delete the gateway route from.+--+-- 'virtualGatewayName', 'deleteGatewayRoute_virtualGatewayName' - The name of the virtual gateway to delete the route from.+newDeleteGatewayRoute ::+ -- | 'gatewayRouteName'+ Prelude.Text ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ DeleteGatewayRoute+newDeleteGatewayRoute+ pGatewayRouteName_+ pMeshName_+ pVirtualGatewayName_ =+ DeleteGatewayRoute'+ { meshOwner = Prelude.Nothing,+ gatewayRouteName = pGatewayRouteName_,+ meshName = pMeshName_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+deleteGatewayRoute_meshOwner :: Lens.Lens' DeleteGatewayRoute (Prelude.Maybe Prelude.Text)+deleteGatewayRoute_meshOwner = Lens.lens (\DeleteGatewayRoute' {meshOwner} -> meshOwner) (\s@DeleteGatewayRoute' {} a -> s {meshOwner = a} :: DeleteGatewayRoute)++-- | The name of the gateway route to delete.+deleteGatewayRoute_gatewayRouteName :: Lens.Lens' DeleteGatewayRoute Prelude.Text+deleteGatewayRoute_gatewayRouteName = Lens.lens (\DeleteGatewayRoute' {gatewayRouteName} -> gatewayRouteName) (\s@DeleteGatewayRoute' {} a -> s {gatewayRouteName = a} :: DeleteGatewayRoute)++-- | The name of the service mesh to delete the gateway route from.+deleteGatewayRoute_meshName :: Lens.Lens' DeleteGatewayRoute Prelude.Text+deleteGatewayRoute_meshName = Lens.lens (\DeleteGatewayRoute' {meshName} -> meshName) (\s@DeleteGatewayRoute' {} a -> s {meshName = a} :: DeleteGatewayRoute)++-- | The name of the virtual gateway to delete the route from.+deleteGatewayRoute_virtualGatewayName :: Lens.Lens' DeleteGatewayRoute Prelude.Text+deleteGatewayRoute_virtualGatewayName = Lens.lens (\DeleteGatewayRoute' {virtualGatewayName} -> virtualGatewayName) (\s@DeleteGatewayRoute' {} a -> s {virtualGatewayName = a} :: DeleteGatewayRoute)++instance Core.AWSRequest DeleteGatewayRoute where+ type+ AWSResponse DeleteGatewayRoute =+ DeleteGatewayRouteResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteGatewayRouteResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DeleteGatewayRoute where+ hashWithSalt _salt DeleteGatewayRoute' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` gatewayRouteName+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData DeleteGatewayRoute where+ rnf DeleteGatewayRoute' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf gatewayRouteName+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders DeleteGatewayRoute where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteGatewayRoute where+ toPath DeleteGatewayRoute' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateway/",+ Data.toBS virtualGatewayName,+ "/gatewayRoutes/",+ Data.toBS gatewayRouteName+ ]++instance Data.ToQuery DeleteGatewayRoute where+ toQuery DeleteGatewayRoute' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- | /See:/ 'newDeleteGatewayRouteResponse' smart constructor.+data DeleteGatewayRouteResponse = DeleteGatewayRouteResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The gateway route that was deleted.+ gatewayRoute :: GatewayRouteData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteGatewayRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteGatewayRouteResponse_httpStatus' - The response's http status code.+--+-- 'gatewayRoute', 'deleteGatewayRouteResponse_gatewayRoute' - The gateway route that was deleted.+newDeleteGatewayRouteResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'gatewayRoute'+ GatewayRouteData ->+ DeleteGatewayRouteResponse+newDeleteGatewayRouteResponse+ pHttpStatus_+ pGatewayRoute_ =+ DeleteGatewayRouteResponse'+ { httpStatus =+ pHttpStatus_,+ gatewayRoute = pGatewayRoute_+ }++-- | The response's http status code.+deleteGatewayRouteResponse_httpStatus :: Lens.Lens' DeleteGatewayRouteResponse Prelude.Int+deleteGatewayRouteResponse_httpStatus = Lens.lens (\DeleteGatewayRouteResponse' {httpStatus} -> httpStatus) (\s@DeleteGatewayRouteResponse' {} a -> s {httpStatus = a} :: DeleteGatewayRouteResponse)++-- | The gateway route that was deleted.+deleteGatewayRouteResponse_gatewayRoute :: Lens.Lens' DeleteGatewayRouteResponse GatewayRouteData+deleteGatewayRouteResponse_gatewayRoute = Lens.lens (\DeleteGatewayRouteResponse' {gatewayRoute} -> gatewayRoute) (\s@DeleteGatewayRouteResponse' {} a -> s {gatewayRoute = a} :: DeleteGatewayRouteResponse)++instance Prelude.NFData DeleteGatewayRouteResponse where+ rnf DeleteGatewayRouteResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf gatewayRoute
+ gen/Amazonka/AppMesh/DeleteMesh.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.AppMesh.DeleteMesh+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing service mesh.+--+-- You must delete all resources (virtual services, routes, virtual+-- routers, and virtual nodes) in the service mesh before you can delete+-- the mesh itself.+module Amazonka.AppMesh.DeleteMesh+ ( -- * Creating a Request+ DeleteMesh (..),+ newDeleteMesh,++ -- * Request Lenses+ deleteMesh_meshName,++ -- * Destructuring the Response+ DeleteMeshResponse (..),+ newDeleteMeshResponse,++ -- * Response Lenses+ deleteMeshResponse_httpStatus,+ deleteMeshResponse_mesh,+ )+where++import Amazonka.AppMesh.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:/ 'newDeleteMesh' smart constructor.+data DeleteMesh = DeleteMesh'+ { -- | The name of the service mesh to delete.+ meshName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMesh' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshName', 'deleteMesh_meshName' - The name of the service mesh to delete.+newDeleteMesh ::+ -- | 'meshName'+ Prelude.Text ->+ DeleteMesh+newDeleteMesh pMeshName_ =+ DeleteMesh' {meshName = pMeshName_}++-- | The name of the service mesh to delete.+deleteMesh_meshName :: Lens.Lens' DeleteMesh Prelude.Text+deleteMesh_meshName = Lens.lens (\DeleteMesh' {meshName} -> meshName) (\s@DeleteMesh' {} a -> s {meshName = a} :: DeleteMesh)++instance Core.AWSRequest DeleteMesh where+ type AWSResponse DeleteMesh = DeleteMeshResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteMeshResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DeleteMesh where+ hashWithSalt _salt DeleteMesh' {..} =+ _salt `Prelude.hashWithSalt` meshName++instance Prelude.NFData DeleteMesh where+ rnf DeleteMesh' {..} = Prelude.rnf meshName++instance Data.ToHeaders DeleteMesh where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteMesh where+ toPath DeleteMesh' {..} =+ Prelude.mconcat+ ["/v20190125/meshes/", Data.toBS meshName]++instance Data.ToQuery DeleteMesh where+ toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newDeleteMeshResponse' smart constructor.+data DeleteMeshResponse = DeleteMeshResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The service mesh that was deleted.+ mesh :: MeshData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMeshResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteMeshResponse_httpStatus' - The response's http status code.+--+-- 'mesh', 'deleteMeshResponse_mesh' - The service mesh that was deleted.+newDeleteMeshResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'mesh'+ MeshData ->+ DeleteMeshResponse+newDeleteMeshResponse pHttpStatus_ pMesh_ =+ DeleteMeshResponse'+ { httpStatus = pHttpStatus_,+ mesh = pMesh_+ }++-- | The response's http status code.+deleteMeshResponse_httpStatus :: Lens.Lens' DeleteMeshResponse Prelude.Int+deleteMeshResponse_httpStatus = Lens.lens (\DeleteMeshResponse' {httpStatus} -> httpStatus) (\s@DeleteMeshResponse' {} a -> s {httpStatus = a} :: DeleteMeshResponse)++-- | The service mesh that was deleted.+deleteMeshResponse_mesh :: Lens.Lens' DeleteMeshResponse MeshData+deleteMeshResponse_mesh = Lens.lens (\DeleteMeshResponse' {mesh} -> mesh) (\s@DeleteMeshResponse' {} a -> s {mesh = a} :: DeleteMeshResponse)++instance Prelude.NFData DeleteMeshResponse where+ rnf DeleteMeshResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf mesh
+ gen/Amazonka/AppMesh/DeleteRoute.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.AppMesh.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 an existing route.+module Amazonka.AppMesh.DeleteRoute+ ( -- * Creating a Request+ DeleteRoute (..),+ newDeleteRoute,++ -- * Request Lenses+ deleteRoute_meshOwner,+ deleteRoute_meshName,+ deleteRoute_routeName,+ deleteRoute_virtualRouterName,++ -- * Destructuring the Response+ DeleteRouteResponse (..),+ newDeleteRouteResponse,++ -- * Response Lenses+ deleteRouteResponse_httpStatus,+ deleteRouteResponse_route,+ )+where++import Amazonka.AppMesh.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 Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to delete the route in.+ meshName :: Prelude.Text,+ -- | The name of the route to delete.+ routeName :: Prelude.Text,+ -- | The name of the virtual router to delete the route in.+ virtualRouterName :: 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:+--+-- 'meshOwner', 'deleteRoute_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'deleteRoute_meshName' - The name of the service mesh to delete the route in.+--+-- 'routeName', 'deleteRoute_routeName' - The name of the route to delete.+--+-- 'virtualRouterName', 'deleteRoute_virtualRouterName' - The name of the virtual router to delete the route in.+newDeleteRoute ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'routeName'+ Prelude.Text ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ DeleteRoute+newDeleteRoute+ pMeshName_+ pRouteName_+ pVirtualRouterName_ =+ DeleteRoute'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ routeName = pRouteName_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+deleteRoute_meshOwner :: Lens.Lens' DeleteRoute (Prelude.Maybe Prelude.Text)+deleteRoute_meshOwner = Lens.lens (\DeleteRoute' {meshOwner} -> meshOwner) (\s@DeleteRoute' {} a -> s {meshOwner = a} :: DeleteRoute)++-- | The name of the service mesh to delete the route in.+deleteRoute_meshName :: Lens.Lens' DeleteRoute Prelude.Text+deleteRoute_meshName = Lens.lens (\DeleteRoute' {meshName} -> meshName) (\s@DeleteRoute' {} a -> s {meshName = a} :: DeleteRoute)++-- | The name of the route to delete.+deleteRoute_routeName :: Lens.Lens' DeleteRoute Prelude.Text+deleteRoute_routeName = Lens.lens (\DeleteRoute' {routeName} -> routeName) (\s@DeleteRoute' {} a -> s {routeName = a} :: DeleteRoute)++-- | The name of the virtual router to delete the route in.+deleteRoute_virtualRouterName :: Lens.Lens' DeleteRoute Prelude.Text+deleteRoute_virtualRouterName = Lens.lens (\DeleteRoute' {virtualRouterName} -> virtualRouterName) (\s@DeleteRoute' {} a -> s {virtualRouterName = a} :: DeleteRoute)++instance Core.AWSRequest DeleteRoute where+ type AWSResponse DeleteRoute = DeleteRouteResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteRouteResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DeleteRoute where+ hashWithSalt _salt DeleteRoute' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` routeName+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData DeleteRoute where+ rnf DeleteRoute' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf routeName+ `Prelude.seq` Prelude.rnf virtualRouterName++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+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouter/",+ Data.toBS virtualRouterName,+ "/routes/",+ Data.toBS routeName+ ]++instance Data.ToQuery DeleteRoute where+ toQuery DeleteRoute' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDeleteRouteResponse' smart constructor.+data DeleteRouteResponse = DeleteRouteResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The route that was deleted.+ route :: RouteData+ }+ 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:+--+-- 'httpStatus', 'deleteRouteResponse_httpStatus' - The response's http status code.+--+-- 'route', 'deleteRouteResponse_route' - The route that was deleted.+newDeleteRouteResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'route'+ RouteData ->+ DeleteRouteResponse+newDeleteRouteResponse pHttpStatus_ pRoute_ =+ DeleteRouteResponse'+ { httpStatus = pHttpStatus_,+ route = pRoute_+ }++-- | The response's http status code.+deleteRouteResponse_httpStatus :: Lens.Lens' DeleteRouteResponse Prelude.Int+deleteRouteResponse_httpStatus = Lens.lens (\DeleteRouteResponse' {httpStatus} -> httpStatus) (\s@DeleteRouteResponse' {} a -> s {httpStatus = a} :: DeleteRouteResponse)++-- | The route that was deleted.+deleteRouteResponse_route :: Lens.Lens' DeleteRouteResponse RouteData+deleteRouteResponse_route = Lens.lens (\DeleteRouteResponse' {route} -> route) (\s@DeleteRouteResponse' {} a -> s {route = a} :: DeleteRouteResponse)++instance Prelude.NFData DeleteRouteResponse where+ rnf DeleteRouteResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf route
+ gen/Amazonka/AppMesh/DeleteVirtualGateway.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.AppMesh.DeleteVirtualGateway+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing virtual gateway. You cannot delete a virtual gateway+-- if any gateway routes are associated to it.+module Amazonka.AppMesh.DeleteVirtualGateway+ ( -- * Creating a Request+ DeleteVirtualGateway (..),+ newDeleteVirtualGateway,++ -- * Request Lenses+ deleteVirtualGateway_meshOwner,+ deleteVirtualGateway_meshName,+ deleteVirtualGateway_virtualGatewayName,++ -- * Destructuring the Response+ DeleteVirtualGatewayResponse (..),+ newDeleteVirtualGatewayResponse,++ -- * Response Lenses+ deleteVirtualGatewayResponse_httpStatus,+ deleteVirtualGatewayResponse_virtualGateway,+ )+where++import Amazonka.AppMesh.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:/ 'newDeleteVirtualGateway' smart constructor.+data DeleteVirtualGateway = DeleteVirtualGateway'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to delete the virtual gateway from.+ meshName :: Prelude.Text,+ -- | The name of the virtual gateway to delete.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualGateway' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'deleteVirtualGateway_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'deleteVirtualGateway_meshName' - The name of the service mesh to delete the virtual gateway from.+--+-- 'virtualGatewayName', 'deleteVirtualGateway_virtualGatewayName' - The name of the virtual gateway to delete.+newDeleteVirtualGateway ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ DeleteVirtualGateway+newDeleteVirtualGateway+ pMeshName_+ pVirtualGatewayName_ =+ DeleteVirtualGateway'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+deleteVirtualGateway_meshOwner :: Lens.Lens' DeleteVirtualGateway (Prelude.Maybe Prelude.Text)+deleteVirtualGateway_meshOwner = Lens.lens (\DeleteVirtualGateway' {meshOwner} -> meshOwner) (\s@DeleteVirtualGateway' {} a -> s {meshOwner = a} :: DeleteVirtualGateway)++-- | The name of the service mesh to delete the virtual gateway from.+deleteVirtualGateway_meshName :: Lens.Lens' DeleteVirtualGateway Prelude.Text+deleteVirtualGateway_meshName = Lens.lens (\DeleteVirtualGateway' {meshName} -> meshName) (\s@DeleteVirtualGateway' {} a -> s {meshName = a} :: DeleteVirtualGateway)++-- | The name of the virtual gateway to delete.+deleteVirtualGateway_virtualGatewayName :: Lens.Lens' DeleteVirtualGateway Prelude.Text+deleteVirtualGateway_virtualGatewayName = Lens.lens (\DeleteVirtualGateway' {virtualGatewayName} -> virtualGatewayName) (\s@DeleteVirtualGateway' {} a -> s {virtualGatewayName = a} :: DeleteVirtualGateway)++instance Core.AWSRequest DeleteVirtualGateway where+ type+ AWSResponse DeleteVirtualGateway =+ DeleteVirtualGatewayResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteVirtualGatewayResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DeleteVirtualGateway where+ hashWithSalt _salt DeleteVirtualGateway' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData DeleteVirtualGateway where+ rnf DeleteVirtualGateway' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders DeleteVirtualGateway where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteVirtualGateway where+ toPath DeleteVirtualGateway' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateways/",+ Data.toBS virtualGatewayName+ ]++instance Data.ToQuery DeleteVirtualGateway where+ toQuery DeleteVirtualGateway' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- | /See:/ 'newDeleteVirtualGatewayResponse' smart constructor.+data DeleteVirtualGatewayResponse = DeleteVirtualGatewayResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The virtual gateway that was deleted.+ virtualGateway :: VirtualGatewayData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualGatewayResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteVirtualGatewayResponse_httpStatus' - The response's http status code.+--+-- 'virtualGateway', 'deleteVirtualGatewayResponse_virtualGateway' - The virtual gateway that was deleted.+newDeleteVirtualGatewayResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualGateway'+ VirtualGatewayData ->+ DeleteVirtualGatewayResponse+newDeleteVirtualGatewayResponse+ pHttpStatus_+ pVirtualGateway_ =+ DeleteVirtualGatewayResponse'+ { httpStatus =+ pHttpStatus_,+ virtualGateway = pVirtualGateway_+ }++-- | The response's http status code.+deleteVirtualGatewayResponse_httpStatus :: Lens.Lens' DeleteVirtualGatewayResponse Prelude.Int+deleteVirtualGatewayResponse_httpStatus = Lens.lens (\DeleteVirtualGatewayResponse' {httpStatus} -> httpStatus) (\s@DeleteVirtualGatewayResponse' {} a -> s {httpStatus = a} :: DeleteVirtualGatewayResponse)++-- | The virtual gateway that was deleted.+deleteVirtualGatewayResponse_virtualGateway :: Lens.Lens' DeleteVirtualGatewayResponse VirtualGatewayData+deleteVirtualGatewayResponse_virtualGateway = Lens.lens (\DeleteVirtualGatewayResponse' {virtualGateway} -> virtualGateway) (\s@DeleteVirtualGatewayResponse' {} a -> s {virtualGateway = a} :: DeleteVirtualGatewayResponse)++instance Prelude.NFData DeleteVirtualGatewayResponse where+ rnf DeleteVirtualGatewayResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualGateway
+ gen/Amazonka/AppMesh/DeleteVirtualNode.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.AppMesh.DeleteVirtualNode+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing virtual node.+--+-- You must delete any virtual services that list a virtual node as a+-- service provider before you can delete the virtual node itself.+module Amazonka.AppMesh.DeleteVirtualNode+ ( -- * Creating a Request+ DeleteVirtualNode (..),+ newDeleteVirtualNode,++ -- * Request Lenses+ deleteVirtualNode_meshOwner,+ deleteVirtualNode_meshName,+ deleteVirtualNode_virtualNodeName,++ -- * Destructuring the Response+ DeleteVirtualNodeResponse (..),+ newDeleteVirtualNodeResponse,++ -- * Response Lenses+ deleteVirtualNodeResponse_httpStatus,+ deleteVirtualNodeResponse_virtualNode,+ )+where++import Amazonka.AppMesh.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++-- | Deletes a virtual node input.+--+-- /See:/ 'newDeleteVirtualNode' smart constructor.+data DeleteVirtualNode = DeleteVirtualNode'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to delete the virtual node in.+ meshName :: Prelude.Text,+ -- | The name of the virtual node to delete.+ virtualNodeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualNode' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'deleteVirtualNode_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'deleteVirtualNode_meshName' - The name of the service mesh to delete the virtual node in.+--+-- 'virtualNodeName', 'deleteVirtualNode_virtualNodeName' - The name of the virtual node to delete.+newDeleteVirtualNode ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualNodeName'+ Prelude.Text ->+ DeleteVirtualNode+newDeleteVirtualNode pMeshName_ pVirtualNodeName_ =+ DeleteVirtualNode'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ virtualNodeName = pVirtualNodeName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+deleteVirtualNode_meshOwner :: Lens.Lens' DeleteVirtualNode (Prelude.Maybe Prelude.Text)+deleteVirtualNode_meshOwner = Lens.lens (\DeleteVirtualNode' {meshOwner} -> meshOwner) (\s@DeleteVirtualNode' {} a -> s {meshOwner = a} :: DeleteVirtualNode)++-- | The name of the service mesh to delete the virtual node in.+deleteVirtualNode_meshName :: Lens.Lens' DeleteVirtualNode Prelude.Text+deleteVirtualNode_meshName = Lens.lens (\DeleteVirtualNode' {meshName} -> meshName) (\s@DeleteVirtualNode' {} a -> s {meshName = a} :: DeleteVirtualNode)++-- | The name of the virtual node to delete.+deleteVirtualNode_virtualNodeName :: Lens.Lens' DeleteVirtualNode Prelude.Text+deleteVirtualNode_virtualNodeName = Lens.lens (\DeleteVirtualNode' {virtualNodeName} -> virtualNodeName) (\s@DeleteVirtualNode' {} a -> s {virtualNodeName = a} :: DeleteVirtualNode)++instance Core.AWSRequest DeleteVirtualNode where+ type+ AWSResponse DeleteVirtualNode =+ DeleteVirtualNodeResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteVirtualNodeResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DeleteVirtualNode where+ hashWithSalt _salt DeleteVirtualNode' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualNodeName++instance Prelude.NFData DeleteVirtualNode where+ rnf DeleteVirtualNode' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualNodeName++instance Data.ToHeaders DeleteVirtualNode where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteVirtualNode where+ toPath DeleteVirtualNode' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualNodes/",+ Data.toBS virtualNodeName+ ]++instance Data.ToQuery DeleteVirtualNode where+ toQuery DeleteVirtualNode' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDeleteVirtualNodeResponse' smart constructor.+data DeleteVirtualNodeResponse = DeleteVirtualNodeResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The virtual node that was deleted.+ virtualNode :: VirtualNodeData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualNodeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteVirtualNodeResponse_httpStatus' - The response's http status code.+--+-- 'virtualNode', 'deleteVirtualNodeResponse_virtualNode' - The virtual node that was deleted.+newDeleteVirtualNodeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualNode'+ VirtualNodeData ->+ DeleteVirtualNodeResponse+newDeleteVirtualNodeResponse+ pHttpStatus_+ pVirtualNode_ =+ DeleteVirtualNodeResponse'+ { httpStatus =+ pHttpStatus_,+ virtualNode = pVirtualNode_+ }++-- | The response's http status code.+deleteVirtualNodeResponse_httpStatus :: Lens.Lens' DeleteVirtualNodeResponse Prelude.Int+deleteVirtualNodeResponse_httpStatus = Lens.lens (\DeleteVirtualNodeResponse' {httpStatus} -> httpStatus) (\s@DeleteVirtualNodeResponse' {} a -> s {httpStatus = a} :: DeleteVirtualNodeResponse)++-- | The virtual node that was deleted.+deleteVirtualNodeResponse_virtualNode :: Lens.Lens' DeleteVirtualNodeResponse VirtualNodeData+deleteVirtualNodeResponse_virtualNode = Lens.lens (\DeleteVirtualNodeResponse' {virtualNode} -> virtualNode) (\s@DeleteVirtualNodeResponse' {} a -> s {virtualNode = a} :: DeleteVirtualNodeResponse)++instance Prelude.NFData DeleteVirtualNodeResponse where+ rnf DeleteVirtualNodeResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualNode
+ gen/Amazonka/AppMesh/DeleteVirtualRouter.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.AppMesh.DeleteVirtualRouter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing virtual router.+--+-- You must delete any routes associated with the virtual router before you+-- can delete the router itself.+module Amazonka.AppMesh.DeleteVirtualRouter+ ( -- * Creating a Request+ DeleteVirtualRouter (..),+ newDeleteVirtualRouter,++ -- * Request Lenses+ deleteVirtualRouter_meshOwner,+ deleteVirtualRouter_meshName,+ deleteVirtualRouter_virtualRouterName,++ -- * Destructuring the Response+ DeleteVirtualRouterResponse (..),+ newDeleteVirtualRouterResponse,++ -- * Response Lenses+ deleteVirtualRouterResponse_httpStatus,+ deleteVirtualRouterResponse_virtualRouter,+ )+where++import Amazonka.AppMesh.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:/ 'newDeleteVirtualRouter' smart constructor.+data DeleteVirtualRouter = DeleteVirtualRouter'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to delete the virtual router in.+ meshName :: Prelude.Text,+ -- | The name of the virtual router to delete.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualRouter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'deleteVirtualRouter_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'deleteVirtualRouter_meshName' - The name of the service mesh to delete the virtual router in.+--+-- 'virtualRouterName', 'deleteVirtualRouter_virtualRouterName' - The name of the virtual router to delete.+newDeleteVirtualRouter ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ DeleteVirtualRouter+newDeleteVirtualRouter pMeshName_ pVirtualRouterName_ =+ DeleteVirtualRouter'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+deleteVirtualRouter_meshOwner :: Lens.Lens' DeleteVirtualRouter (Prelude.Maybe Prelude.Text)+deleteVirtualRouter_meshOwner = Lens.lens (\DeleteVirtualRouter' {meshOwner} -> meshOwner) (\s@DeleteVirtualRouter' {} a -> s {meshOwner = a} :: DeleteVirtualRouter)++-- | The name of the service mesh to delete the virtual router in.+deleteVirtualRouter_meshName :: Lens.Lens' DeleteVirtualRouter Prelude.Text+deleteVirtualRouter_meshName = Lens.lens (\DeleteVirtualRouter' {meshName} -> meshName) (\s@DeleteVirtualRouter' {} a -> s {meshName = a} :: DeleteVirtualRouter)++-- | The name of the virtual router to delete.+deleteVirtualRouter_virtualRouterName :: Lens.Lens' DeleteVirtualRouter Prelude.Text+deleteVirtualRouter_virtualRouterName = Lens.lens (\DeleteVirtualRouter' {virtualRouterName} -> virtualRouterName) (\s@DeleteVirtualRouter' {} a -> s {virtualRouterName = a} :: DeleteVirtualRouter)++instance Core.AWSRequest DeleteVirtualRouter where+ type+ AWSResponse DeleteVirtualRouter =+ DeleteVirtualRouterResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteVirtualRouterResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DeleteVirtualRouter where+ hashWithSalt _salt DeleteVirtualRouter' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData DeleteVirtualRouter where+ rnf DeleteVirtualRouter' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualRouterName++instance Data.ToHeaders DeleteVirtualRouter where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteVirtualRouter where+ toPath DeleteVirtualRouter' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouters/",+ Data.toBS virtualRouterName+ ]++instance Data.ToQuery DeleteVirtualRouter where+ toQuery DeleteVirtualRouter' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDeleteVirtualRouterResponse' smart constructor.+data DeleteVirtualRouterResponse = DeleteVirtualRouterResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The virtual router that was deleted.+ virtualRouter :: VirtualRouterData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualRouterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteVirtualRouterResponse_httpStatus' - The response's http status code.+--+-- 'virtualRouter', 'deleteVirtualRouterResponse_virtualRouter' - The virtual router that was deleted.+newDeleteVirtualRouterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualRouter'+ VirtualRouterData ->+ DeleteVirtualRouterResponse+newDeleteVirtualRouterResponse+ pHttpStatus_+ pVirtualRouter_ =+ DeleteVirtualRouterResponse'+ { httpStatus =+ pHttpStatus_,+ virtualRouter = pVirtualRouter_+ }++-- | The response's http status code.+deleteVirtualRouterResponse_httpStatus :: Lens.Lens' DeleteVirtualRouterResponse Prelude.Int+deleteVirtualRouterResponse_httpStatus = Lens.lens (\DeleteVirtualRouterResponse' {httpStatus} -> httpStatus) (\s@DeleteVirtualRouterResponse' {} a -> s {httpStatus = a} :: DeleteVirtualRouterResponse)++-- | The virtual router that was deleted.+deleteVirtualRouterResponse_virtualRouter :: Lens.Lens' DeleteVirtualRouterResponse VirtualRouterData+deleteVirtualRouterResponse_virtualRouter = Lens.lens (\DeleteVirtualRouterResponse' {virtualRouter} -> virtualRouter) (\s@DeleteVirtualRouterResponse' {} a -> s {virtualRouter = a} :: DeleteVirtualRouterResponse)++instance Prelude.NFData DeleteVirtualRouterResponse where+ rnf DeleteVirtualRouterResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualRouter
+ gen/Amazonka/AppMesh/DeleteVirtualService.hs view
@@ -0,0 +1,213 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.DeleteVirtualService+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing virtual service.+module Amazonka.AppMesh.DeleteVirtualService+ ( -- * Creating a Request+ DeleteVirtualService (..),+ newDeleteVirtualService,++ -- * Request Lenses+ deleteVirtualService_meshOwner,+ deleteVirtualService_meshName,+ deleteVirtualService_virtualServiceName,++ -- * Destructuring the Response+ DeleteVirtualServiceResponse (..),+ newDeleteVirtualServiceResponse,++ -- * Response Lenses+ deleteVirtualServiceResponse_httpStatus,+ deleteVirtualServiceResponse_virtualService,+ )+where++import Amazonka.AppMesh.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:/ 'newDeleteVirtualService' smart constructor.+data DeleteVirtualService = DeleteVirtualService'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to delete the virtual service in.+ meshName :: Prelude.Text,+ -- | The name of the virtual service to delete.+ virtualServiceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualService' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'deleteVirtualService_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'deleteVirtualService_meshName' - The name of the service mesh to delete the virtual service in.+--+-- 'virtualServiceName', 'deleteVirtualService_virtualServiceName' - The name of the virtual service to delete.+newDeleteVirtualService ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualServiceName'+ Prelude.Text ->+ DeleteVirtualService+newDeleteVirtualService+ pMeshName_+ pVirtualServiceName_ =+ DeleteVirtualService'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ virtualServiceName = pVirtualServiceName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+deleteVirtualService_meshOwner :: Lens.Lens' DeleteVirtualService (Prelude.Maybe Prelude.Text)+deleteVirtualService_meshOwner = Lens.lens (\DeleteVirtualService' {meshOwner} -> meshOwner) (\s@DeleteVirtualService' {} a -> s {meshOwner = a} :: DeleteVirtualService)++-- | The name of the service mesh to delete the virtual service in.+deleteVirtualService_meshName :: Lens.Lens' DeleteVirtualService Prelude.Text+deleteVirtualService_meshName = Lens.lens (\DeleteVirtualService' {meshName} -> meshName) (\s@DeleteVirtualService' {} a -> s {meshName = a} :: DeleteVirtualService)++-- | The name of the virtual service to delete.+deleteVirtualService_virtualServiceName :: Lens.Lens' DeleteVirtualService Prelude.Text+deleteVirtualService_virtualServiceName = Lens.lens (\DeleteVirtualService' {virtualServiceName} -> virtualServiceName) (\s@DeleteVirtualService' {} a -> s {virtualServiceName = a} :: DeleteVirtualService)++instance Core.AWSRequest DeleteVirtualService where+ type+ AWSResponse DeleteVirtualService =+ DeleteVirtualServiceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteVirtualServiceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DeleteVirtualService where+ hashWithSalt _salt DeleteVirtualService' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualServiceName++instance Prelude.NFData DeleteVirtualService where+ rnf DeleteVirtualService' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualServiceName++instance Data.ToHeaders DeleteVirtualService where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteVirtualService where+ toPath DeleteVirtualService' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualServices/",+ Data.toBS virtualServiceName+ ]++instance Data.ToQuery DeleteVirtualService where+ toQuery DeleteVirtualService' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDeleteVirtualServiceResponse' smart constructor.+data DeleteVirtualServiceResponse = DeleteVirtualServiceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The virtual service that was deleted.+ virtualService :: VirtualServiceData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualServiceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteVirtualServiceResponse_httpStatus' - The response's http status code.+--+-- 'virtualService', 'deleteVirtualServiceResponse_virtualService' - The virtual service that was deleted.+newDeleteVirtualServiceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualService'+ VirtualServiceData ->+ DeleteVirtualServiceResponse+newDeleteVirtualServiceResponse+ pHttpStatus_+ pVirtualService_ =+ DeleteVirtualServiceResponse'+ { httpStatus =+ pHttpStatus_,+ virtualService = pVirtualService_+ }++-- | The response's http status code.+deleteVirtualServiceResponse_httpStatus :: Lens.Lens' DeleteVirtualServiceResponse Prelude.Int+deleteVirtualServiceResponse_httpStatus = Lens.lens (\DeleteVirtualServiceResponse' {httpStatus} -> httpStatus) (\s@DeleteVirtualServiceResponse' {} a -> s {httpStatus = a} :: DeleteVirtualServiceResponse)++-- | The virtual service that was deleted.+deleteVirtualServiceResponse_virtualService :: Lens.Lens' DeleteVirtualServiceResponse VirtualServiceData+deleteVirtualServiceResponse_virtualService = Lens.lens (\DeleteVirtualServiceResponse' {virtualService} -> virtualService) (\s@DeleteVirtualServiceResponse' {} a -> s {virtualService = a} :: DeleteVirtualServiceResponse)++instance Prelude.NFData DeleteVirtualServiceResponse where+ rnf DeleteVirtualServiceResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualService
+ gen/Amazonka/AppMesh/DescribeGatewayRoute.hs view
@@ -0,0 +1,229 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.DescribeGatewayRoute+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing gateway route.+module Amazonka.AppMesh.DescribeGatewayRoute+ ( -- * Creating a Request+ DescribeGatewayRoute (..),+ newDescribeGatewayRoute,++ -- * Request Lenses+ describeGatewayRoute_meshOwner,+ describeGatewayRoute_gatewayRouteName,+ describeGatewayRoute_meshName,+ describeGatewayRoute_virtualGatewayName,++ -- * Destructuring the Response+ DescribeGatewayRouteResponse (..),+ newDescribeGatewayRouteResponse,++ -- * Response Lenses+ describeGatewayRouteResponse_httpStatus,+ describeGatewayRouteResponse_gatewayRoute,+ )+where++import Amazonka.AppMesh.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:/ 'newDescribeGatewayRoute' smart constructor.+data DescribeGatewayRoute = DescribeGatewayRoute'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the gateway route to describe.+ gatewayRouteName :: Prelude.Text,+ -- | The name of the service mesh that the gateway route resides in.+ meshName :: Prelude.Text,+ -- | The name of the virtual gateway that the gateway route is associated+ -- with.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeGatewayRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'describeGatewayRoute_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'gatewayRouteName', 'describeGatewayRoute_gatewayRouteName' - The name of the gateway route to describe.+--+-- 'meshName', 'describeGatewayRoute_meshName' - The name of the service mesh that the gateway route resides in.+--+-- 'virtualGatewayName', 'describeGatewayRoute_virtualGatewayName' - The name of the virtual gateway that the gateway route is associated+-- with.+newDescribeGatewayRoute ::+ -- | 'gatewayRouteName'+ Prelude.Text ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ DescribeGatewayRoute+newDescribeGatewayRoute+ pGatewayRouteName_+ pMeshName_+ pVirtualGatewayName_ =+ DescribeGatewayRoute'+ { meshOwner = Prelude.Nothing,+ gatewayRouteName = pGatewayRouteName_,+ meshName = pMeshName_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+describeGatewayRoute_meshOwner :: Lens.Lens' DescribeGatewayRoute (Prelude.Maybe Prelude.Text)+describeGatewayRoute_meshOwner = Lens.lens (\DescribeGatewayRoute' {meshOwner} -> meshOwner) (\s@DescribeGatewayRoute' {} a -> s {meshOwner = a} :: DescribeGatewayRoute)++-- | The name of the gateway route to describe.+describeGatewayRoute_gatewayRouteName :: Lens.Lens' DescribeGatewayRoute Prelude.Text+describeGatewayRoute_gatewayRouteName = Lens.lens (\DescribeGatewayRoute' {gatewayRouteName} -> gatewayRouteName) (\s@DescribeGatewayRoute' {} a -> s {gatewayRouteName = a} :: DescribeGatewayRoute)++-- | The name of the service mesh that the gateway route resides in.+describeGatewayRoute_meshName :: Lens.Lens' DescribeGatewayRoute Prelude.Text+describeGatewayRoute_meshName = Lens.lens (\DescribeGatewayRoute' {meshName} -> meshName) (\s@DescribeGatewayRoute' {} a -> s {meshName = a} :: DescribeGatewayRoute)++-- | The name of the virtual gateway that the gateway route is associated+-- with.+describeGatewayRoute_virtualGatewayName :: Lens.Lens' DescribeGatewayRoute Prelude.Text+describeGatewayRoute_virtualGatewayName = Lens.lens (\DescribeGatewayRoute' {virtualGatewayName} -> virtualGatewayName) (\s@DescribeGatewayRoute' {} a -> s {virtualGatewayName = a} :: DescribeGatewayRoute)++instance Core.AWSRequest DescribeGatewayRoute where+ type+ AWSResponse DescribeGatewayRoute =+ DescribeGatewayRouteResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeGatewayRouteResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DescribeGatewayRoute where+ hashWithSalt _salt DescribeGatewayRoute' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` gatewayRouteName+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData DescribeGatewayRoute where+ rnf DescribeGatewayRoute' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf gatewayRouteName+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders DescribeGatewayRoute where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeGatewayRoute where+ toPath DescribeGatewayRoute' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateway/",+ Data.toBS virtualGatewayName,+ "/gatewayRoutes/",+ Data.toBS gatewayRouteName+ ]++instance Data.ToQuery DescribeGatewayRoute where+ toQuery DescribeGatewayRoute' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- | /See:/ 'newDescribeGatewayRouteResponse' smart constructor.+data DescribeGatewayRouteResponse = DescribeGatewayRouteResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your gateway route.+ gatewayRoute :: GatewayRouteData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeGatewayRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeGatewayRouteResponse_httpStatus' - The response's http status code.+--+-- 'gatewayRoute', 'describeGatewayRouteResponse_gatewayRoute' - The full description of your gateway route.+newDescribeGatewayRouteResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'gatewayRoute'+ GatewayRouteData ->+ DescribeGatewayRouteResponse+newDescribeGatewayRouteResponse+ pHttpStatus_+ pGatewayRoute_ =+ DescribeGatewayRouteResponse'+ { httpStatus =+ pHttpStatus_,+ gatewayRoute = pGatewayRoute_+ }++-- | The response's http status code.+describeGatewayRouteResponse_httpStatus :: Lens.Lens' DescribeGatewayRouteResponse Prelude.Int+describeGatewayRouteResponse_httpStatus = Lens.lens (\DescribeGatewayRouteResponse' {httpStatus} -> httpStatus) (\s@DescribeGatewayRouteResponse' {} a -> s {httpStatus = a} :: DescribeGatewayRouteResponse)++-- | The full description of your gateway route.+describeGatewayRouteResponse_gatewayRoute :: Lens.Lens' DescribeGatewayRouteResponse GatewayRouteData+describeGatewayRouteResponse_gatewayRoute = Lens.lens (\DescribeGatewayRouteResponse' {gatewayRoute} -> gatewayRoute) (\s@DescribeGatewayRouteResponse' {} a -> s {gatewayRoute = a} :: DescribeGatewayRouteResponse)++instance Prelude.NFData DescribeGatewayRouteResponse where+ rnf DescribeGatewayRouteResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf gatewayRoute
+ gen/Amazonka/AppMesh/DescribeMesh.hs view
@@ -0,0 +1,188 @@+{-# 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.AppMesh.DescribeMesh+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing service mesh.+module Amazonka.AppMesh.DescribeMesh+ ( -- * Creating a Request+ DescribeMesh (..),+ newDescribeMesh,++ -- * Request Lenses+ describeMesh_meshOwner,+ describeMesh_meshName,++ -- * Destructuring the Response+ DescribeMeshResponse (..),+ newDescribeMeshResponse,++ -- * Response Lenses+ describeMeshResponse_httpStatus,+ describeMeshResponse_mesh,+ )+where++import Amazonka.AppMesh.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:/ 'newDescribeMesh' smart constructor.+data DescribeMesh = DescribeMesh'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to describe.+ meshName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeMesh' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'describeMesh_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'describeMesh_meshName' - The name of the service mesh to describe.+newDescribeMesh ::+ -- | 'meshName'+ Prelude.Text ->+ DescribeMesh+newDescribeMesh pMeshName_ =+ DescribeMesh'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+describeMesh_meshOwner :: Lens.Lens' DescribeMesh (Prelude.Maybe Prelude.Text)+describeMesh_meshOwner = Lens.lens (\DescribeMesh' {meshOwner} -> meshOwner) (\s@DescribeMesh' {} a -> s {meshOwner = a} :: DescribeMesh)++-- | The name of the service mesh to describe.+describeMesh_meshName :: Lens.Lens' DescribeMesh Prelude.Text+describeMesh_meshName = Lens.lens (\DescribeMesh' {meshName} -> meshName) (\s@DescribeMesh' {} a -> s {meshName = a} :: DescribeMesh)++instance Core.AWSRequest DescribeMesh where+ type AWSResponse DescribeMesh = DescribeMeshResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeMeshResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DescribeMesh where+ hashWithSalt _salt DescribeMesh' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName++instance Prelude.NFData DescribeMesh where+ rnf DescribeMesh' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName++instance Data.ToHeaders DescribeMesh where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeMesh where+ toPath DescribeMesh' {..} =+ Prelude.mconcat+ ["/v20190125/meshes/", Data.toBS meshName]++instance Data.ToQuery DescribeMesh where+ toQuery DescribeMesh' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDescribeMeshResponse' smart constructor.+data DescribeMeshResponse = DescribeMeshResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your service mesh.+ mesh :: MeshData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeMeshResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeMeshResponse_httpStatus' - The response's http status code.+--+-- 'mesh', 'describeMeshResponse_mesh' - The full description of your service mesh.+newDescribeMeshResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'mesh'+ MeshData ->+ DescribeMeshResponse+newDescribeMeshResponse pHttpStatus_ pMesh_ =+ DescribeMeshResponse'+ { httpStatus = pHttpStatus_,+ mesh = pMesh_+ }++-- | The response's http status code.+describeMeshResponse_httpStatus :: Lens.Lens' DescribeMeshResponse Prelude.Int+describeMeshResponse_httpStatus = Lens.lens (\DescribeMeshResponse' {httpStatus} -> httpStatus) (\s@DescribeMeshResponse' {} a -> s {httpStatus = a} :: DescribeMeshResponse)++-- | The full description of your service mesh.+describeMeshResponse_mesh :: Lens.Lens' DescribeMeshResponse MeshData+describeMeshResponse_mesh = Lens.lens (\DescribeMeshResponse' {mesh} -> mesh) (\s@DescribeMeshResponse' {} a -> s {mesh = a} :: DescribeMeshResponse)++instance Prelude.NFData DescribeMeshResponse where+ rnf DescribeMeshResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf mesh
+ gen/Amazonka/AppMesh/DescribeRoute.hs view
@@ -0,0 +1,227 @@+{-# 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.AppMesh.DescribeRoute+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing route.+module Amazonka.AppMesh.DescribeRoute+ ( -- * Creating a Request+ DescribeRoute (..),+ newDescribeRoute,++ -- * Request Lenses+ describeRoute_meshOwner,+ describeRoute_meshName,+ describeRoute_routeName,+ describeRoute_virtualRouterName,++ -- * Destructuring the Response+ DescribeRouteResponse (..),+ newDescribeRouteResponse,++ -- * Response Lenses+ describeRouteResponse_httpStatus,+ describeRouteResponse_route,+ )+where++import Amazonka.AppMesh.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:/ 'newDescribeRoute' smart constructor.+data DescribeRoute = DescribeRoute'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the route resides in.+ meshName :: Prelude.Text,+ -- | The name of the route to describe.+ routeName :: Prelude.Text,+ -- | The name of the virtual router that the route is associated with.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'describeRoute_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'describeRoute_meshName' - The name of the service mesh that the route resides in.+--+-- 'routeName', 'describeRoute_routeName' - The name of the route to describe.+--+-- 'virtualRouterName', 'describeRoute_virtualRouterName' - The name of the virtual router that the route is associated with.+newDescribeRoute ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'routeName'+ Prelude.Text ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ DescribeRoute+newDescribeRoute+ pMeshName_+ pRouteName_+ pVirtualRouterName_ =+ DescribeRoute'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ routeName = pRouteName_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+describeRoute_meshOwner :: Lens.Lens' DescribeRoute (Prelude.Maybe Prelude.Text)+describeRoute_meshOwner = Lens.lens (\DescribeRoute' {meshOwner} -> meshOwner) (\s@DescribeRoute' {} a -> s {meshOwner = a} :: DescribeRoute)++-- | The name of the service mesh that the route resides in.+describeRoute_meshName :: Lens.Lens' DescribeRoute Prelude.Text+describeRoute_meshName = Lens.lens (\DescribeRoute' {meshName} -> meshName) (\s@DescribeRoute' {} a -> s {meshName = a} :: DescribeRoute)++-- | The name of the route to describe.+describeRoute_routeName :: Lens.Lens' DescribeRoute Prelude.Text+describeRoute_routeName = Lens.lens (\DescribeRoute' {routeName} -> routeName) (\s@DescribeRoute' {} a -> s {routeName = a} :: DescribeRoute)++-- | The name of the virtual router that the route is associated with.+describeRoute_virtualRouterName :: Lens.Lens' DescribeRoute Prelude.Text+describeRoute_virtualRouterName = Lens.lens (\DescribeRoute' {virtualRouterName} -> virtualRouterName) (\s@DescribeRoute' {} a -> s {virtualRouterName = a} :: DescribeRoute)++instance Core.AWSRequest DescribeRoute where+ type+ AWSResponse DescribeRoute =+ DescribeRouteResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeRouteResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DescribeRoute where+ hashWithSalt _salt DescribeRoute' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` routeName+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData DescribeRoute where+ rnf DescribeRoute' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf routeName+ `Prelude.seq` Prelude.rnf virtualRouterName++instance Data.ToHeaders DescribeRoute where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeRoute where+ toPath DescribeRoute' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouter/",+ Data.toBS virtualRouterName,+ "/routes/",+ Data.toBS routeName+ ]++instance Data.ToQuery DescribeRoute where+ toQuery DescribeRoute' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDescribeRouteResponse' smart constructor.+data DescribeRouteResponse = DescribeRouteResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your route.+ route :: RouteData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeRouteResponse_httpStatus' - The response's http status code.+--+-- 'route', 'describeRouteResponse_route' - The full description of your route.+newDescribeRouteResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'route'+ RouteData ->+ DescribeRouteResponse+newDescribeRouteResponse pHttpStatus_ pRoute_ =+ DescribeRouteResponse'+ { httpStatus = pHttpStatus_,+ route = pRoute_+ }++-- | The response's http status code.+describeRouteResponse_httpStatus :: Lens.Lens' DescribeRouteResponse Prelude.Int+describeRouteResponse_httpStatus = Lens.lens (\DescribeRouteResponse' {httpStatus} -> httpStatus) (\s@DescribeRouteResponse' {} a -> s {httpStatus = a} :: DescribeRouteResponse)++-- | The full description of your route.+describeRouteResponse_route :: Lens.Lens' DescribeRouteResponse RouteData+describeRouteResponse_route = Lens.lens (\DescribeRouteResponse' {route} -> route) (\s@DescribeRouteResponse' {} a -> s {route = a} :: DescribeRouteResponse)++instance Prelude.NFData DescribeRouteResponse where+ rnf DescribeRouteResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf route
+ gen/Amazonka/AppMesh/DescribeVirtualGateway.hs view
@@ -0,0 +1,213 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.DescribeVirtualGateway+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing virtual gateway.+module Amazonka.AppMesh.DescribeVirtualGateway+ ( -- * Creating a Request+ DescribeVirtualGateway (..),+ newDescribeVirtualGateway,++ -- * Request Lenses+ describeVirtualGateway_meshOwner,+ describeVirtualGateway_meshName,+ describeVirtualGateway_virtualGatewayName,++ -- * Destructuring the Response+ DescribeVirtualGatewayResponse (..),+ newDescribeVirtualGatewayResponse,++ -- * Response Lenses+ describeVirtualGatewayResponse_httpStatus,+ describeVirtualGatewayResponse_virtualGateway,+ )+where++import Amazonka.AppMesh.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:/ 'newDescribeVirtualGateway' smart constructor.+data DescribeVirtualGateway = DescribeVirtualGateway'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the gateway route resides in.+ meshName :: Prelude.Text,+ -- | The name of the virtual gateway to describe.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualGateway' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'describeVirtualGateway_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'describeVirtualGateway_meshName' - The name of the service mesh that the gateway route resides in.+--+-- 'virtualGatewayName', 'describeVirtualGateway_virtualGatewayName' - The name of the virtual gateway to describe.+newDescribeVirtualGateway ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ DescribeVirtualGateway+newDescribeVirtualGateway+ pMeshName_+ pVirtualGatewayName_ =+ DescribeVirtualGateway'+ { meshOwner =+ Prelude.Nothing,+ meshName = pMeshName_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+describeVirtualGateway_meshOwner :: Lens.Lens' DescribeVirtualGateway (Prelude.Maybe Prelude.Text)+describeVirtualGateway_meshOwner = Lens.lens (\DescribeVirtualGateway' {meshOwner} -> meshOwner) (\s@DescribeVirtualGateway' {} a -> s {meshOwner = a} :: DescribeVirtualGateway)++-- | The name of the service mesh that the gateway route resides in.+describeVirtualGateway_meshName :: Lens.Lens' DescribeVirtualGateway Prelude.Text+describeVirtualGateway_meshName = Lens.lens (\DescribeVirtualGateway' {meshName} -> meshName) (\s@DescribeVirtualGateway' {} a -> s {meshName = a} :: DescribeVirtualGateway)++-- | The name of the virtual gateway to describe.+describeVirtualGateway_virtualGatewayName :: Lens.Lens' DescribeVirtualGateway Prelude.Text+describeVirtualGateway_virtualGatewayName = Lens.lens (\DescribeVirtualGateway' {virtualGatewayName} -> virtualGatewayName) (\s@DescribeVirtualGateway' {} a -> s {virtualGatewayName = a} :: DescribeVirtualGateway)++instance Core.AWSRequest DescribeVirtualGateway where+ type+ AWSResponse DescribeVirtualGateway =+ DescribeVirtualGatewayResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeVirtualGatewayResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DescribeVirtualGateway where+ hashWithSalt _salt DescribeVirtualGateway' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData DescribeVirtualGateway where+ rnf DescribeVirtualGateway' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders DescribeVirtualGateway where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeVirtualGateway where+ toPath DescribeVirtualGateway' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateways/",+ Data.toBS virtualGatewayName+ ]++instance Data.ToQuery DescribeVirtualGateway where+ toQuery DescribeVirtualGateway' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- | /See:/ 'newDescribeVirtualGatewayResponse' smart constructor.+data DescribeVirtualGatewayResponse = DescribeVirtualGatewayResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your virtual gateway.+ virtualGateway :: VirtualGatewayData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualGatewayResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeVirtualGatewayResponse_httpStatus' - The response's http status code.+--+-- 'virtualGateway', 'describeVirtualGatewayResponse_virtualGateway' - The full description of your virtual gateway.+newDescribeVirtualGatewayResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualGateway'+ VirtualGatewayData ->+ DescribeVirtualGatewayResponse+newDescribeVirtualGatewayResponse+ pHttpStatus_+ pVirtualGateway_ =+ DescribeVirtualGatewayResponse'+ { httpStatus =+ pHttpStatus_,+ virtualGateway = pVirtualGateway_+ }++-- | The response's http status code.+describeVirtualGatewayResponse_httpStatus :: Lens.Lens' DescribeVirtualGatewayResponse Prelude.Int+describeVirtualGatewayResponse_httpStatus = Lens.lens (\DescribeVirtualGatewayResponse' {httpStatus} -> httpStatus) (\s@DescribeVirtualGatewayResponse' {} a -> s {httpStatus = a} :: DescribeVirtualGatewayResponse)++-- | The full description of your virtual gateway.+describeVirtualGatewayResponse_virtualGateway :: Lens.Lens' DescribeVirtualGatewayResponse VirtualGatewayData+describeVirtualGatewayResponse_virtualGateway = Lens.lens (\DescribeVirtualGatewayResponse' {virtualGateway} -> virtualGateway) (\s@DescribeVirtualGatewayResponse' {} a -> s {virtualGateway = a} :: DescribeVirtualGatewayResponse)++instance+ Prelude.NFData+ DescribeVirtualGatewayResponse+ where+ rnf DescribeVirtualGatewayResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualGateway
+ gen/Amazonka/AppMesh/DescribeVirtualNode.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.AppMesh.DescribeVirtualNode+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing virtual node.+module Amazonka.AppMesh.DescribeVirtualNode+ ( -- * Creating a Request+ DescribeVirtualNode (..),+ newDescribeVirtualNode,++ -- * Request Lenses+ describeVirtualNode_meshOwner,+ describeVirtualNode_meshName,+ describeVirtualNode_virtualNodeName,++ -- * Destructuring the Response+ DescribeVirtualNodeResponse (..),+ newDescribeVirtualNodeResponse,++ -- * Response Lenses+ describeVirtualNodeResponse_httpStatus,+ describeVirtualNodeResponse_virtualNode,+ )+where++import Amazonka.AppMesh.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:/ 'newDescribeVirtualNode' smart constructor.+data DescribeVirtualNode = DescribeVirtualNode'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the virtual node resides in.+ meshName :: Prelude.Text,+ -- | The name of the virtual node to describe.+ virtualNodeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualNode' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'describeVirtualNode_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'describeVirtualNode_meshName' - The name of the service mesh that the virtual node resides in.+--+-- 'virtualNodeName', 'describeVirtualNode_virtualNodeName' - The name of the virtual node to describe.+newDescribeVirtualNode ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualNodeName'+ Prelude.Text ->+ DescribeVirtualNode+newDescribeVirtualNode pMeshName_ pVirtualNodeName_ =+ DescribeVirtualNode'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ virtualNodeName = pVirtualNodeName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+describeVirtualNode_meshOwner :: Lens.Lens' DescribeVirtualNode (Prelude.Maybe Prelude.Text)+describeVirtualNode_meshOwner = Lens.lens (\DescribeVirtualNode' {meshOwner} -> meshOwner) (\s@DescribeVirtualNode' {} a -> s {meshOwner = a} :: DescribeVirtualNode)++-- | The name of the service mesh that the virtual node resides in.+describeVirtualNode_meshName :: Lens.Lens' DescribeVirtualNode Prelude.Text+describeVirtualNode_meshName = Lens.lens (\DescribeVirtualNode' {meshName} -> meshName) (\s@DescribeVirtualNode' {} a -> s {meshName = a} :: DescribeVirtualNode)++-- | The name of the virtual node to describe.+describeVirtualNode_virtualNodeName :: Lens.Lens' DescribeVirtualNode Prelude.Text+describeVirtualNode_virtualNodeName = Lens.lens (\DescribeVirtualNode' {virtualNodeName} -> virtualNodeName) (\s@DescribeVirtualNode' {} a -> s {virtualNodeName = a} :: DescribeVirtualNode)++instance Core.AWSRequest DescribeVirtualNode where+ type+ AWSResponse DescribeVirtualNode =+ DescribeVirtualNodeResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeVirtualNodeResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DescribeVirtualNode where+ hashWithSalt _salt DescribeVirtualNode' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualNodeName++instance Prelude.NFData DescribeVirtualNode where+ rnf DescribeVirtualNode' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualNodeName++instance Data.ToHeaders DescribeVirtualNode where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeVirtualNode where+ toPath DescribeVirtualNode' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualNodes/",+ Data.toBS virtualNodeName+ ]++instance Data.ToQuery DescribeVirtualNode where+ toQuery DescribeVirtualNode' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDescribeVirtualNodeResponse' smart constructor.+data DescribeVirtualNodeResponse = DescribeVirtualNodeResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your virtual node.+ virtualNode :: VirtualNodeData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualNodeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeVirtualNodeResponse_httpStatus' - The response's http status code.+--+-- 'virtualNode', 'describeVirtualNodeResponse_virtualNode' - The full description of your virtual node.+newDescribeVirtualNodeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualNode'+ VirtualNodeData ->+ DescribeVirtualNodeResponse+newDescribeVirtualNodeResponse+ pHttpStatus_+ pVirtualNode_ =+ DescribeVirtualNodeResponse'+ { httpStatus =+ pHttpStatus_,+ virtualNode = pVirtualNode_+ }++-- | The response's http status code.+describeVirtualNodeResponse_httpStatus :: Lens.Lens' DescribeVirtualNodeResponse Prelude.Int+describeVirtualNodeResponse_httpStatus = Lens.lens (\DescribeVirtualNodeResponse' {httpStatus} -> httpStatus) (\s@DescribeVirtualNodeResponse' {} a -> s {httpStatus = a} :: DescribeVirtualNodeResponse)++-- | The full description of your virtual node.+describeVirtualNodeResponse_virtualNode :: Lens.Lens' DescribeVirtualNodeResponse VirtualNodeData+describeVirtualNodeResponse_virtualNode = Lens.lens (\DescribeVirtualNodeResponse' {virtualNode} -> virtualNode) (\s@DescribeVirtualNodeResponse' {} a -> s {virtualNode = a} :: DescribeVirtualNodeResponse)++instance Prelude.NFData DescribeVirtualNodeResponse where+ rnf DescribeVirtualNodeResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualNode
+ gen/Amazonka/AppMesh/DescribeVirtualRouter.hs view
@@ -0,0 +1,213 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.DescribeVirtualRouter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing virtual router.+module Amazonka.AppMesh.DescribeVirtualRouter+ ( -- * Creating a Request+ DescribeVirtualRouter (..),+ newDescribeVirtualRouter,++ -- * Request Lenses+ describeVirtualRouter_meshOwner,+ describeVirtualRouter_meshName,+ describeVirtualRouter_virtualRouterName,++ -- * Destructuring the Response+ DescribeVirtualRouterResponse (..),+ newDescribeVirtualRouterResponse,++ -- * Response Lenses+ describeVirtualRouterResponse_httpStatus,+ describeVirtualRouterResponse_virtualRouter,+ )+where++import Amazonka.AppMesh.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:/ 'newDescribeVirtualRouter' smart constructor.+data DescribeVirtualRouter = DescribeVirtualRouter'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the virtual router resides in.+ meshName :: Prelude.Text,+ -- | The name of the virtual router to describe.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualRouter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'describeVirtualRouter_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'describeVirtualRouter_meshName' - The name of the service mesh that the virtual router resides in.+--+-- 'virtualRouterName', 'describeVirtualRouter_virtualRouterName' - The name of the virtual router to describe.+newDescribeVirtualRouter ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ DescribeVirtualRouter+newDescribeVirtualRouter+ pMeshName_+ pVirtualRouterName_ =+ DescribeVirtualRouter'+ { meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+describeVirtualRouter_meshOwner :: Lens.Lens' DescribeVirtualRouter (Prelude.Maybe Prelude.Text)+describeVirtualRouter_meshOwner = Lens.lens (\DescribeVirtualRouter' {meshOwner} -> meshOwner) (\s@DescribeVirtualRouter' {} a -> s {meshOwner = a} :: DescribeVirtualRouter)++-- | The name of the service mesh that the virtual router resides in.+describeVirtualRouter_meshName :: Lens.Lens' DescribeVirtualRouter Prelude.Text+describeVirtualRouter_meshName = Lens.lens (\DescribeVirtualRouter' {meshName} -> meshName) (\s@DescribeVirtualRouter' {} a -> s {meshName = a} :: DescribeVirtualRouter)++-- | The name of the virtual router to describe.+describeVirtualRouter_virtualRouterName :: Lens.Lens' DescribeVirtualRouter Prelude.Text+describeVirtualRouter_virtualRouterName = Lens.lens (\DescribeVirtualRouter' {virtualRouterName} -> virtualRouterName) (\s@DescribeVirtualRouter' {} a -> s {virtualRouterName = a} :: DescribeVirtualRouter)++instance Core.AWSRequest DescribeVirtualRouter where+ type+ AWSResponse DescribeVirtualRouter =+ DescribeVirtualRouterResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeVirtualRouterResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DescribeVirtualRouter where+ hashWithSalt _salt DescribeVirtualRouter' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData DescribeVirtualRouter where+ rnf DescribeVirtualRouter' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualRouterName++instance Data.ToHeaders DescribeVirtualRouter where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeVirtualRouter where+ toPath DescribeVirtualRouter' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouters/",+ Data.toBS virtualRouterName+ ]++instance Data.ToQuery DescribeVirtualRouter where+ toQuery DescribeVirtualRouter' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDescribeVirtualRouterResponse' smart constructor.+data DescribeVirtualRouterResponse = DescribeVirtualRouterResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your virtual router.+ virtualRouter :: VirtualRouterData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualRouterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeVirtualRouterResponse_httpStatus' - The response's http status code.+--+-- 'virtualRouter', 'describeVirtualRouterResponse_virtualRouter' - The full description of your virtual router.+newDescribeVirtualRouterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualRouter'+ VirtualRouterData ->+ DescribeVirtualRouterResponse+newDescribeVirtualRouterResponse+ pHttpStatus_+ pVirtualRouter_ =+ DescribeVirtualRouterResponse'+ { httpStatus =+ pHttpStatus_,+ virtualRouter = pVirtualRouter_+ }++-- | The response's http status code.+describeVirtualRouterResponse_httpStatus :: Lens.Lens' DescribeVirtualRouterResponse Prelude.Int+describeVirtualRouterResponse_httpStatus = Lens.lens (\DescribeVirtualRouterResponse' {httpStatus} -> httpStatus) (\s@DescribeVirtualRouterResponse' {} a -> s {httpStatus = a} :: DescribeVirtualRouterResponse)++-- | The full description of your virtual router.+describeVirtualRouterResponse_virtualRouter :: Lens.Lens' DescribeVirtualRouterResponse VirtualRouterData+describeVirtualRouterResponse_virtualRouter = Lens.lens (\DescribeVirtualRouterResponse' {virtualRouter} -> virtualRouter) (\s@DescribeVirtualRouterResponse' {} a -> s {virtualRouter = a} :: DescribeVirtualRouterResponse)++instance Prelude.NFData DescribeVirtualRouterResponse where+ rnf DescribeVirtualRouterResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualRouter
+ gen/Amazonka/AppMesh/DescribeVirtualService.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.DescribeVirtualService+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing virtual service.+module Amazonka.AppMesh.DescribeVirtualService+ ( -- * Creating a Request+ DescribeVirtualService (..),+ newDescribeVirtualService,++ -- * Request Lenses+ describeVirtualService_meshOwner,+ describeVirtualService_meshName,+ describeVirtualService_virtualServiceName,++ -- * Destructuring the Response+ DescribeVirtualServiceResponse (..),+ newDescribeVirtualServiceResponse,++ -- * Response Lenses+ describeVirtualServiceResponse_httpStatus,+ describeVirtualServiceResponse_virtualService,+ )+where++import Amazonka.AppMesh.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:/ 'newDescribeVirtualService' smart constructor.+data DescribeVirtualService = DescribeVirtualService'+ { -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the virtual service resides in.+ meshName :: Prelude.Text,+ -- | The name of the virtual service to describe.+ virtualServiceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualService' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshOwner', 'describeVirtualService_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'describeVirtualService_meshName' - The name of the service mesh that the virtual service resides in.+--+-- 'virtualServiceName', 'describeVirtualService_virtualServiceName' - The name of the virtual service to describe.+newDescribeVirtualService ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualServiceName'+ Prelude.Text ->+ DescribeVirtualService+newDescribeVirtualService+ pMeshName_+ pVirtualServiceName_ =+ DescribeVirtualService'+ { meshOwner =+ Prelude.Nothing,+ meshName = pMeshName_,+ virtualServiceName = pVirtualServiceName_+ }++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+describeVirtualService_meshOwner :: Lens.Lens' DescribeVirtualService (Prelude.Maybe Prelude.Text)+describeVirtualService_meshOwner = Lens.lens (\DescribeVirtualService' {meshOwner} -> meshOwner) (\s@DescribeVirtualService' {} a -> s {meshOwner = a} :: DescribeVirtualService)++-- | The name of the service mesh that the virtual service resides in.+describeVirtualService_meshName :: Lens.Lens' DescribeVirtualService Prelude.Text+describeVirtualService_meshName = Lens.lens (\DescribeVirtualService' {meshName} -> meshName) (\s@DescribeVirtualService' {} a -> s {meshName = a} :: DescribeVirtualService)++-- | The name of the virtual service to describe.+describeVirtualService_virtualServiceName :: Lens.Lens' DescribeVirtualService Prelude.Text+describeVirtualService_virtualServiceName = Lens.lens (\DescribeVirtualService' {virtualServiceName} -> virtualServiceName) (\s@DescribeVirtualService' {} a -> s {virtualServiceName = a} :: DescribeVirtualService)++instance Core.AWSRequest DescribeVirtualService where+ type+ AWSResponse DescribeVirtualService =+ DescribeVirtualServiceResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeVirtualServiceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable DescribeVirtualService where+ hashWithSalt _salt DescribeVirtualService' {..} =+ _salt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualServiceName++instance Prelude.NFData DescribeVirtualService where+ rnf DescribeVirtualService' {..} =+ Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualServiceName++instance Data.ToHeaders DescribeVirtualService where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeVirtualService where+ toPath DescribeVirtualService' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualServices/",+ Data.toBS virtualServiceName+ ]++instance Data.ToQuery DescribeVirtualService where+ toQuery DescribeVirtualService' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newDescribeVirtualServiceResponse' smart constructor.+data DescribeVirtualServiceResponse = DescribeVirtualServiceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The full description of your virtual service.+ virtualService :: VirtualServiceData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualServiceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeVirtualServiceResponse_httpStatus' - The response's http status code.+--+-- 'virtualService', 'describeVirtualServiceResponse_virtualService' - The full description of your virtual service.+newDescribeVirtualServiceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualService'+ VirtualServiceData ->+ DescribeVirtualServiceResponse+newDescribeVirtualServiceResponse+ pHttpStatus_+ pVirtualService_ =+ DescribeVirtualServiceResponse'+ { httpStatus =+ pHttpStatus_,+ virtualService = pVirtualService_+ }++-- | The response's http status code.+describeVirtualServiceResponse_httpStatus :: Lens.Lens' DescribeVirtualServiceResponse Prelude.Int+describeVirtualServiceResponse_httpStatus = Lens.lens (\DescribeVirtualServiceResponse' {httpStatus} -> httpStatus) (\s@DescribeVirtualServiceResponse' {} a -> s {httpStatus = a} :: DescribeVirtualServiceResponse)++-- | The full description of your virtual service.+describeVirtualServiceResponse_virtualService :: Lens.Lens' DescribeVirtualServiceResponse VirtualServiceData+describeVirtualServiceResponse_virtualService = Lens.lens (\DescribeVirtualServiceResponse' {virtualService} -> virtualService) (\s@DescribeVirtualServiceResponse' {} a -> s {virtualService = a} :: DescribeVirtualServiceResponse)++instance+ Prelude.NFData+ DescribeVirtualServiceResponse+ where+ rnf DescribeVirtualServiceResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualService
+ gen/Amazonka/AppMesh/Lens.hs view
@@ -0,0 +1,1185 @@+{-# 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.AppMesh.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.AppMesh.Lens+ ( -- * Operations++ -- ** CreateGatewayRoute+ createGatewayRoute_clientToken,+ createGatewayRoute_meshOwner,+ createGatewayRoute_tags,+ createGatewayRoute_gatewayRouteName,+ createGatewayRoute_meshName,+ createGatewayRoute_spec,+ createGatewayRoute_virtualGatewayName,+ createGatewayRouteResponse_httpStatus,+ createGatewayRouteResponse_gatewayRoute,++ -- ** CreateMesh+ createMesh_clientToken,+ createMesh_spec,+ createMesh_tags,+ createMesh_meshName,+ createMeshResponse_httpStatus,+ createMeshResponse_mesh,++ -- ** CreateRoute+ createRoute_clientToken,+ createRoute_meshOwner,+ createRoute_tags,+ createRoute_meshName,+ createRoute_routeName,+ createRoute_spec,+ createRoute_virtualRouterName,+ createRouteResponse_httpStatus,+ createRouteResponse_route,++ -- ** CreateVirtualGateway+ createVirtualGateway_clientToken,+ createVirtualGateway_meshOwner,+ createVirtualGateway_tags,+ createVirtualGateway_meshName,+ createVirtualGateway_spec,+ createVirtualGateway_virtualGatewayName,+ createVirtualGatewayResponse_httpStatus,+ createVirtualGatewayResponse_virtualGateway,++ -- ** CreateVirtualNode+ createVirtualNode_clientToken,+ createVirtualNode_meshOwner,+ createVirtualNode_tags,+ createVirtualNode_meshName,+ createVirtualNode_spec,+ createVirtualNode_virtualNodeName,+ createVirtualNodeResponse_httpStatus,+ createVirtualNodeResponse_virtualNode,++ -- ** CreateVirtualRouter+ createVirtualRouter_clientToken,+ createVirtualRouter_meshOwner,+ createVirtualRouter_tags,+ createVirtualRouter_meshName,+ createVirtualRouter_spec,+ createVirtualRouter_virtualRouterName,+ createVirtualRouterResponse_httpStatus,+ createVirtualRouterResponse_virtualRouter,++ -- ** CreateVirtualService+ createVirtualService_clientToken,+ createVirtualService_meshOwner,+ createVirtualService_tags,+ createVirtualService_meshName,+ createVirtualService_spec,+ createVirtualService_virtualServiceName,+ createVirtualServiceResponse_httpStatus,+ createVirtualServiceResponse_virtualService,++ -- ** DeleteGatewayRoute+ deleteGatewayRoute_meshOwner,+ deleteGatewayRoute_gatewayRouteName,+ deleteGatewayRoute_meshName,+ deleteGatewayRoute_virtualGatewayName,+ deleteGatewayRouteResponse_httpStatus,+ deleteGatewayRouteResponse_gatewayRoute,++ -- ** DeleteMesh+ deleteMesh_meshName,+ deleteMeshResponse_httpStatus,+ deleteMeshResponse_mesh,++ -- ** DeleteRoute+ deleteRoute_meshOwner,+ deleteRoute_meshName,+ deleteRoute_routeName,+ deleteRoute_virtualRouterName,+ deleteRouteResponse_httpStatus,+ deleteRouteResponse_route,++ -- ** DeleteVirtualGateway+ deleteVirtualGateway_meshOwner,+ deleteVirtualGateway_meshName,+ deleteVirtualGateway_virtualGatewayName,+ deleteVirtualGatewayResponse_httpStatus,+ deleteVirtualGatewayResponse_virtualGateway,++ -- ** DeleteVirtualNode+ deleteVirtualNode_meshOwner,+ deleteVirtualNode_meshName,+ deleteVirtualNode_virtualNodeName,+ deleteVirtualNodeResponse_httpStatus,+ deleteVirtualNodeResponse_virtualNode,++ -- ** DeleteVirtualRouter+ deleteVirtualRouter_meshOwner,+ deleteVirtualRouter_meshName,+ deleteVirtualRouter_virtualRouterName,+ deleteVirtualRouterResponse_httpStatus,+ deleteVirtualRouterResponse_virtualRouter,++ -- ** DeleteVirtualService+ deleteVirtualService_meshOwner,+ deleteVirtualService_meshName,+ deleteVirtualService_virtualServiceName,+ deleteVirtualServiceResponse_httpStatus,+ deleteVirtualServiceResponse_virtualService,++ -- ** DescribeGatewayRoute+ describeGatewayRoute_meshOwner,+ describeGatewayRoute_gatewayRouteName,+ describeGatewayRoute_meshName,+ describeGatewayRoute_virtualGatewayName,+ describeGatewayRouteResponse_httpStatus,+ describeGatewayRouteResponse_gatewayRoute,++ -- ** DescribeMesh+ describeMesh_meshOwner,+ describeMesh_meshName,+ describeMeshResponse_httpStatus,+ describeMeshResponse_mesh,++ -- ** DescribeRoute+ describeRoute_meshOwner,+ describeRoute_meshName,+ describeRoute_routeName,+ describeRoute_virtualRouterName,+ describeRouteResponse_httpStatus,+ describeRouteResponse_route,++ -- ** DescribeVirtualGateway+ describeVirtualGateway_meshOwner,+ describeVirtualGateway_meshName,+ describeVirtualGateway_virtualGatewayName,+ describeVirtualGatewayResponse_httpStatus,+ describeVirtualGatewayResponse_virtualGateway,++ -- ** DescribeVirtualNode+ describeVirtualNode_meshOwner,+ describeVirtualNode_meshName,+ describeVirtualNode_virtualNodeName,+ describeVirtualNodeResponse_httpStatus,+ describeVirtualNodeResponse_virtualNode,++ -- ** DescribeVirtualRouter+ describeVirtualRouter_meshOwner,+ describeVirtualRouter_meshName,+ describeVirtualRouter_virtualRouterName,+ describeVirtualRouterResponse_httpStatus,+ describeVirtualRouterResponse_virtualRouter,++ -- ** DescribeVirtualService+ describeVirtualService_meshOwner,+ describeVirtualService_meshName,+ describeVirtualService_virtualServiceName,+ describeVirtualServiceResponse_httpStatus,+ describeVirtualServiceResponse_virtualService,++ -- ** ListGatewayRoutes+ listGatewayRoutes_limit,+ listGatewayRoutes_meshOwner,+ listGatewayRoutes_nextToken,+ listGatewayRoutes_meshName,+ listGatewayRoutes_virtualGatewayName,+ listGatewayRoutesResponse_nextToken,+ listGatewayRoutesResponse_httpStatus,+ listGatewayRoutesResponse_gatewayRoutes,++ -- ** ListMeshes+ listMeshes_limit,+ listMeshes_nextToken,+ listMeshesResponse_nextToken,+ listMeshesResponse_httpStatus,+ listMeshesResponse_meshes,++ -- ** ListRoutes+ listRoutes_limit,+ listRoutes_meshOwner,+ listRoutes_nextToken,+ listRoutes_meshName,+ listRoutes_virtualRouterName,+ listRoutesResponse_nextToken,+ listRoutesResponse_httpStatus,+ listRoutesResponse_routes,++ -- ** ListTagsForResource+ listTagsForResource_limit,+ listTagsForResource_nextToken,+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_nextToken,+ listTagsForResourceResponse_httpStatus,+ listTagsForResourceResponse_tags,++ -- ** ListVirtualGateways+ listVirtualGateways_limit,+ listVirtualGateways_meshOwner,+ listVirtualGateways_nextToken,+ listVirtualGateways_meshName,+ listVirtualGatewaysResponse_nextToken,+ listVirtualGatewaysResponse_httpStatus,+ listVirtualGatewaysResponse_virtualGateways,++ -- ** ListVirtualNodes+ listVirtualNodes_limit,+ listVirtualNodes_meshOwner,+ listVirtualNodes_nextToken,+ listVirtualNodes_meshName,+ listVirtualNodesResponse_nextToken,+ listVirtualNodesResponse_httpStatus,+ listVirtualNodesResponse_virtualNodes,++ -- ** ListVirtualRouters+ listVirtualRouters_limit,+ listVirtualRouters_meshOwner,+ listVirtualRouters_nextToken,+ listVirtualRouters_meshName,+ listVirtualRoutersResponse_nextToken,+ listVirtualRoutersResponse_httpStatus,+ listVirtualRoutersResponse_virtualRouters,++ -- ** ListVirtualServices+ listVirtualServices_limit,+ listVirtualServices_meshOwner,+ listVirtualServices_nextToken,+ listVirtualServices_meshName,+ listVirtualServicesResponse_nextToken,+ listVirtualServicesResponse_httpStatus,+ listVirtualServicesResponse_virtualServices,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateGatewayRoute+ updateGatewayRoute_clientToken,+ updateGatewayRoute_meshOwner,+ updateGatewayRoute_gatewayRouteName,+ updateGatewayRoute_meshName,+ updateGatewayRoute_spec,+ updateGatewayRoute_virtualGatewayName,+ updateGatewayRouteResponse_httpStatus,+ updateGatewayRouteResponse_gatewayRoute,++ -- ** UpdateMesh+ updateMesh_clientToken,+ updateMesh_spec,+ updateMesh_meshName,+ updateMeshResponse_httpStatus,+ updateMeshResponse_mesh,++ -- ** UpdateRoute+ updateRoute_clientToken,+ updateRoute_meshOwner,+ updateRoute_meshName,+ updateRoute_routeName,+ updateRoute_spec,+ updateRoute_virtualRouterName,+ updateRouteResponse_httpStatus,+ updateRouteResponse_route,++ -- ** UpdateVirtualGateway+ updateVirtualGateway_clientToken,+ updateVirtualGateway_meshOwner,+ updateVirtualGateway_meshName,+ updateVirtualGateway_spec,+ updateVirtualGateway_virtualGatewayName,+ updateVirtualGatewayResponse_httpStatus,+ updateVirtualGatewayResponse_virtualGateway,++ -- ** UpdateVirtualNode+ updateVirtualNode_clientToken,+ updateVirtualNode_meshOwner,+ updateVirtualNode_meshName,+ updateVirtualNode_spec,+ updateVirtualNode_virtualNodeName,+ updateVirtualNodeResponse_httpStatus,+ updateVirtualNodeResponse_virtualNode,++ -- ** UpdateVirtualRouter+ updateVirtualRouter_clientToken,+ updateVirtualRouter_meshOwner,+ updateVirtualRouter_meshName,+ updateVirtualRouter_spec,+ updateVirtualRouter_virtualRouterName,+ updateVirtualRouterResponse_httpStatus,+ updateVirtualRouterResponse_virtualRouter,++ -- ** UpdateVirtualService+ updateVirtualService_clientToken,+ updateVirtualService_meshOwner,+ updateVirtualService_meshName,+ updateVirtualService_spec,+ updateVirtualService_virtualServiceName,+ updateVirtualServiceResponse_httpStatus,+ updateVirtualServiceResponse_virtualService,++ -- * Types++ -- ** AccessLog+ accessLog_file,++ -- ** AwsCloudMapInstanceAttribute+ awsCloudMapInstanceAttribute_key,+ awsCloudMapInstanceAttribute_value,++ -- ** AwsCloudMapServiceDiscovery+ awsCloudMapServiceDiscovery_attributes,+ awsCloudMapServiceDiscovery_ipPreference,+ awsCloudMapServiceDiscovery_namespaceName,+ awsCloudMapServiceDiscovery_serviceName,++ -- ** Backend+ backend_virtualService,++ -- ** BackendDefaults+ backendDefaults_clientPolicy,++ -- ** ClientPolicy+ clientPolicy_tls,++ -- ** ClientPolicyTls+ clientPolicyTls_certificate,+ clientPolicyTls_enforce,+ clientPolicyTls_ports,+ clientPolicyTls_validation,++ -- ** ClientTlsCertificate+ clientTlsCertificate_file,+ clientTlsCertificate_sds,++ -- ** DnsServiceDiscovery+ dnsServiceDiscovery_ipPreference,+ dnsServiceDiscovery_responseType,+ dnsServiceDiscovery_hostname,++ -- ** Duration+ duration_unit,+ duration_value,++ -- ** EgressFilter+ egressFilter_type,++ -- ** FileAccessLog+ fileAccessLog_format,+ fileAccessLog_path,++ -- ** GatewayRouteData+ gatewayRouteData_gatewayRouteName,+ gatewayRouteData_meshName,+ gatewayRouteData_metadata,+ gatewayRouteData_spec,+ gatewayRouteData_status,+ gatewayRouteData_virtualGatewayName,++ -- ** GatewayRouteHostnameMatch+ gatewayRouteHostnameMatch_exact,+ gatewayRouteHostnameMatch_suffix,++ -- ** GatewayRouteHostnameRewrite+ gatewayRouteHostnameRewrite_defaultTargetHostname,++ -- ** GatewayRouteRef+ gatewayRouteRef_arn,+ gatewayRouteRef_createdAt,+ gatewayRouteRef_gatewayRouteName,+ gatewayRouteRef_lastUpdatedAt,+ gatewayRouteRef_meshName,+ gatewayRouteRef_meshOwner,+ gatewayRouteRef_resourceOwner,+ gatewayRouteRef_version,+ gatewayRouteRef_virtualGatewayName,++ -- ** GatewayRouteSpec+ gatewayRouteSpec_grpcRoute,+ gatewayRouteSpec_http2Route,+ gatewayRouteSpec_httpRoute,+ gatewayRouteSpec_priority,++ -- ** GatewayRouteStatus+ gatewayRouteStatus_status,++ -- ** GatewayRouteTarget+ gatewayRouteTarget_port,+ gatewayRouteTarget_virtualService,++ -- ** GatewayRouteVirtualService+ gatewayRouteVirtualService_virtualServiceName,++ -- ** GrpcGatewayRoute+ grpcGatewayRoute_action,+ grpcGatewayRoute_match,++ -- ** GrpcGatewayRouteAction+ grpcGatewayRouteAction_rewrite,+ grpcGatewayRouteAction_target,++ -- ** GrpcGatewayRouteMatch+ grpcGatewayRouteMatch_hostname,+ grpcGatewayRouteMatch_metadata,+ grpcGatewayRouteMatch_port,+ grpcGatewayRouteMatch_serviceName,++ -- ** GrpcGatewayRouteMetadata+ grpcGatewayRouteMetadata_invert,+ grpcGatewayRouteMetadata_match,+ grpcGatewayRouteMetadata_name,++ -- ** GrpcGatewayRouteRewrite+ grpcGatewayRouteRewrite_hostname,++ -- ** GrpcMetadataMatchMethod+ grpcMetadataMatchMethod_exact,+ grpcMetadataMatchMethod_prefix,+ grpcMetadataMatchMethod_range,+ grpcMetadataMatchMethod_regex,+ grpcMetadataMatchMethod_suffix,++ -- ** GrpcRetryPolicy+ grpcRetryPolicy_grpcRetryEvents,+ grpcRetryPolicy_httpRetryEvents,+ grpcRetryPolicy_tcpRetryEvents,+ grpcRetryPolicy_maxRetries,+ grpcRetryPolicy_perRetryTimeout,++ -- ** GrpcRoute+ grpcRoute_retryPolicy,+ grpcRoute_timeout,+ grpcRoute_action,+ grpcRoute_match,++ -- ** GrpcRouteAction+ grpcRouteAction_weightedTargets,++ -- ** GrpcRouteMatch+ grpcRouteMatch_metadata,+ grpcRouteMatch_methodName,+ grpcRouteMatch_port,+ grpcRouteMatch_serviceName,++ -- ** GrpcRouteMetadata+ grpcRouteMetadata_invert,+ grpcRouteMetadata_match,+ grpcRouteMetadata_name,++ -- ** GrpcRouteMetadataMatchMethod+ grpcRouteMetadataMatchMethod_exact,+ grpcRouteMetadataMatchMethod_prefix,+ grpcRouteMetadataMatchMethod_range,+ grpcRouteMetadataMatchMethod_regex,+ grpcRouteMetadataMatchMethod_suffix,++ -- ** GrpcTimeout+ grpcTimeout_idle,+ grpcTimeout_perRequest,++ -- ** HeaderMatchMethod+ headerMatchMethod_exact,+ headerMatchMethod_prefix,+ headerMatchMethod_range,+ headerMatchMethod_regex,+ headerMatchMethod_suffix,++ -- ** HealthCheckPolicy+ healthCheckPolicy_path,+ healthCheckPolicy_port,+ healthCheckPolicy_healthyThreshold,+ healthCheckPolicy_intervalMillis,+ healthCheckPolicy_protocol,+ healthCheckPolicy_timeoutMillis,+ healthCheckPolicy_unhealthyThreshold,++ -- ** HttpGatewayRoute+ httpGatewayRoute_action,+ httpGatewayRoute_match,++ -- ** HttpGatewayRouteAction+ httpGatewayRouteAction_rewrite,+ httpGatewayRouteAction_target,++ -- ** HttpGatewayRouteHeader+ httpGatewayRouteHeader_invert,+ httpGatewayRouteHeader_match,+ httpGatewayRouteHeader_name,++ -- ** HttpGatewayRouteMatch+ httpGatewayRouteMatch_headers,+ httpGatewayRouteMatch_hostname,+ httpGatewayRouteMatch_method,+ httpGatewayRouteMatch_path,+ httpGatewayRouteMatch_port,+ httpGatewayRouteMatch_prefix,+ httpGatewayRouteMatch_queryParameters,++ -- ** HttpGatewayRoutePathRewrite+ httpGatewayRoutePathRewrite_exact,++ -- ** HttpGatewayRoutePrefixRewrite+ httpGatewayRoutePrefixRewrite_defaultPrefix,+ httpGatewayRoutePrefixRewrite_value,++ -- ** HttpGatewayRouteRewrite+ httpGatewayRouteRewrite_hostname,+ httpGatewayRouteRewrite_path,+ httpGatewayRouteRewrite_prefix,++ -- ** HttpPathMatch+ httpPathMatch_exact,+ httpPathMatch_regex,++ -- ** HttpQueryParameter+ httpQueryParameter_match,+ httpQueryParameter_name,++ -- ** HttpRetryPolicy+ httpRetryPolicy_httpRetryEvents,+ httpRetryPolicy_tcpRetryEvents,+ httpRetryPolicy_maxRetries,+ httpRetryPolicy_perRetryTimeout,++ -- ** HttpRoute+ httpRoute_retryPolicy,+ httpRoute_timeout,+ httpRoute_action,+ httpRoute_match,++ -- ** HttpRouteAction+ httpRouteAction_weightedTargets,++ -- ** HttpRouteHeader+ httpRouteHeader_invert,+ httpRouteHeader_match,+ httpRouteHeader_name,++ -- ** HttpRouteMatch+ httpRouteMatch_headers,+ httpRouteMatch_method,+ httpRouteMatch_path,+ httpRouteMatch_port,+ httpRouteMatch_prefix,+ httpRouteMatch_queryParameters,+ httpRouteMatch_scheme,++ -- ** HttpTimeout+ httpTimeout_idle,+ httpTimeout_perRequest,++ -- ** JsonFormatRef+ jsonFormatRef_key,+ jsonFormatRef_value,++ -- ** Listener+ listener_connectionPool,+ listener_healthCheck,+ listener_outlierDetection,+ listener_timeout,+ listener_tls,+ listener_portMapping,++ -- ** ListenerTimeout+ listenerTimeout_grpc,+ listenerTimeout_http,+ listenerTimeout_http2,+ listenerTimeout_tcp,++ -- ** ListenerTls+ listenerTls_validation,+ listenerTls_certificate,+ listenerTls_mode,++ -- ** ListenerTlsAcmCertificate+ listenerTlsAcmCertificate_certificateArn,++ -- ** ListenerTlsCertificate+ listenerTlsCertificate_acm,+ listenerTlsCertificate_file,+ listenerTlsCertificate_sds,++ -- ** ListenerTlsFileCertificate+ listenerTlsFileCertificate_certificateChain,+ listenerTlsFileCertificate_privateKey,++ -- ** ListenerTlsSdsCertificate+ listenerTlsSdsCertificate_secretName,++ -- ** ListenerTlsValidationContext+ listenerTlsValidationContext_subjectAlternativeNames,+ listenerTlsValidationContext_trust,++ -- ** ListenerTlsValidationContextTrust+ listenerTlsValidationContextTrust_file,+ listenerTlsValidationContextTrust_sds,++ -- ** Logging+ logging_accessLog,++ -- ** LoggingFormat+ loggingFormat_json,+ loggingFormat_text,++ -- ** MatchRange+ matchRange_end,+ matchRange_start,++ -- ** MeshData+ meshData_meshName,+ meshData_metadata,+ meshData_spec,+ meshData_status,++ -- ** MeshRef+ meshRef_arn,+ meshRef_createdAt,+ meshRef_lastUpdatedAt,+ meshRef_meshName,+ meshRef_meshOwner,+ meshRef_resourceOwner,+ meshRef_version,++ -- ** MeshServiceDiscovery+ meshServiceDiscovery_ipPreference,++ -- ** MeshSpec+ meshSpec_egressFilter,+ meshSpec_serviceDiscovery,++ -- ** MeshStatus+ meshStatus_status,++ -- ** OutlierDetection+ outlierDetection_baseEjectionDuration,+ outlierDetection_interval,+ outlierDetection_maxEjectionPercent,+ outlierDetection_maxServerErrors,++ -- ** PortMapping+ portMapping_port,+ portMapping_protocol,++ -- ** QueryParameterMatch+ queryParameterMatch_exact,++ -- ** ResourceMetadata+ resourceMetadata_arn,+ resourceMetadata_createdAt,+ resourceMetadata_lastUpdatedAt,+ resourceMetadata_meshOwner,+ resourceMetadata_resourceOwner,+ resourceMetadata_uid,+ resourceMetadata_version,++ -- ** RouteData+ routeData_meshName,+ routeData_metadata,+ routeData_routeName,+ routeData_spec,+ routeData_status,+ routeData_virtualRouterName,++ -- ** RouteRef+ routeRef_arn,+ routeRef_createdAt,+ routeRef_lastUpdatedAt,+ routeRef_meshName,+ routeRef_meshOwner,+ routeRef_resourceOwner,+ routeRef_routeName,+ routeRef_version,+ routeRef_virtualRouterName,++ -- ** RouteSpec+ routeSpec_grpcRoute,+ routeSpec_http2Route,+ routeSpec_httpRoute,+ routeSpec_priority,+ routeSpec_tcpRoute,++ -- ** RouteStatus+ routeStatus_status,++ -- ** ServiceDiscovery+ serviceDiscovery_awsCloudMap,+ serviceDiscovery_dns,++ -- ** SubjectAlternativeNameMatchers+ subjectAlternativeNameMatchers_exact,++ -- ** SubjectAlternativeNames+ subjectAlternativeNames_match,++ -- ** TagRef+ tagRef_key,+ tagRef_value,++ -- ** TcpRoute+ tcpRoute_match,+ tcpRoute_timeout,+ tcpRoute_action,++ -- ** TcpRouteAction+ tcpRouteAction_weightedTargets,++ -- ** TcpRouteMatch+ tcpRouteMatch_port,++ -- ** TcpTimeout+ tcpTimeout_idle,++ -- ** TlsValidationContext+ tlsValidationContext_subjectAlternativeNames,+ tlsValidationContext_trust,++ -- ** TlsValidationContextAcmTrust+ tlsValidationContextAcmTrust_certificateAuthorityArns,++ -- ** TlsValidationContextFileTrust+ tlsValidationContextFileTrust_certificateChain,++ -- ** TlsValidationContextSdsTrust+ tlsValidationContextSdsTrust_secretName,++ -- ** TlsValidationContextTrust+ tlsValidationContextTrust_acm,+ tlsValidationContextTrust_file,+ tlsValidationContextTrust_sds,++ -- ** VirtualGatewayAccessLog+ virtualGatewayAccessLog_file,++ -- ** VirtualGatewayBackendDefaults+ virtualGatewayBackendDefaults_clientPolicy,++ -- ** VirtualGatewayClientPolicy+ virtualGatewayClientPolicy_tls,++ -- ** VirtualGatewayClientPolicyTls+ virtualGatewayClientPolicyTls_certificate,+ virtualGatewayClientPolicyTls_enforce,+ virtualGatewayClientPolicyTls_ports,+ virtualGatewayClientPolicyTls_validation,++ -- ** VirtualGatewayClientTlsCertificate+ virtualGatewayClientTlsCertificate_file,+ virtualGatewayClientTlsCertificate_sds,++ -- ** VirtualGatewayConnectionPool+ virtualGatewayConnectionPool_grpc,+ virtualGatewayConnectionPool_http,+ virtualGatewayConnectionPool_http2,++ -- ** VirtualGatewayData+ virtualGatewayData_meshName,+ virtualGatewayData_metadata,+ virtualGatewayData_spec,+ virtualGatewayData_status,+ virtualGatewayData_virtualGatewayName,++ -- ** VirtualGatewayFileAccessLog+ virtualGatewayFileAccessLog_format,+ virtualGatewayFileAccessLog_path,++ -- ** VirtualGatewayGrpcConnectionPool+ virtualGatewayGrpcConnectionPool_maxRequests,++ -- ** VirtualGatewayHealthCheckPolicy+ virtualGatewayHealthCheckPolicy_path,+ virtualGatewayHealthCheckPolicy_port,+ virtualGatewayHealthCheckPolicy_healthyThreshold,+ virtualGatewayHealthCheckPolicy_intervalMillis,+ virtualGatewayHealthCheckPolicy_protocol,+ virtualGatewayHealthCheckPolicy_timeoutMillis,+ virtualGatewayHealthCheckPolicy_unhealthyThreshold,++ -- ** VirtualGatewayHttp2ConnectionPool+ virtualGatewayHttp2ConnectionPool_maxRequests,++ -- ** VirtualGatewayHttpConnectionPool+ virtualGatewayHttpConnectionPool_maxPendingRequests,+ virtualGatewayHttpConnectionPool_maxConnections,++ -- ** VirtualGatewayListener+ virtualGatewayListener_connectionPool,+ virtualGatewayListener_healthCheck,+ virtualGatewayListener_tls,+ virtualGatewayListener_portMapping,++ -- ** VirtualGatewayListenerTls+ virtualGatewayListenerTls_validation,+ virtualGatewayListenerTls_certificate,+ virtualGatewayListenerTls_mode,++ -- ** VirtualGatewayListenerTlsAcmCertificate+ virtualGatewayListenerTlsAcmCertificate_certificateArn,++ -- ** VirtualGatewayListenerTlsCertificate+ virtualGatewayListenerTlsCertificate_acm,+ virtualGatewayListenerTlsCertificate_file,+ virtualGatewayListenerTlsCertificate_sds,++ -- ** VirtualGatewayListenerTlsFileCertificate+ virtualGatewayListenerTlsFileCertificate_certificateChain,+ virtualGatewayListenerTlsFileCertificate_privateKey,++ -- ** VirtualGatewayListenerTlsSdsCertificate+ virtualGatewayListenerTlsSdsCertificate_secretName,++ -- ** VirtualGatewayListenerTlsValidationContext+ virtualGatewayListenerTlsValidationContext_subjectAlternativeNames,+ virtualGatewayListenerTlsValidationContext_trust,++ -- ** VirtualGatewayListenerTlsValidationContextTrust+ virtualGatewayListenerTlsValidationContextTrust_file,+ virtualGatewayListenerTlsValidationContextTrust_sds,++ -- ** VirtualGatewayLogging+ virtualGatewayLogging_accessLog,++ -- ** VirtualGatewayPortMapping+ virtualGatewayPortMapping_port,+ virtualGatewayPortMapping_protocol,++ -- ** VirtualGatewayRef+ virtualGatewayRef_arn,+ virtualGatewayRef_createdAt,+ virtualGatewayRef_lastUpdatedAt,+ virtualGatewayRef_meshName,+ virtualGatewayRef_meshOwner,+ virtualGatewayRef_resourceOwner,+ virtualGatewayRef_version,+ virtualGatewayRef_virtualGatewayName,++ -- ** VirtualGatewaySpec+ virtualGatewaySpec_backendDefaults,+ virtualGatewaySpec_logging,+ virtualGatewaySpec_listeners,++ -- ** VirtualGatewayStatus+ virtualGatewayStatus_status,++ -- ** VirtualGatewayTlsValidationContext+ virtualGatewayTlsValidationContext_subjectAlternativeNames,+ virtualGatewayTlsValidationContext_trust,++ -- ** VirtualGatewayTlsValidationContextAcmTrust+ virtualGatewayTlsValidationContextAcmTrust_certificateAuthorityArns,++ -- ** VirtualGatewayTlsValidationContextFileTrust+ virtualGatewayTlsValidationContextFileTrust_certificateChain,++ -- ** VirtualGatewayTlsValidationContextSdsTrust+ virtualGatewayTlsValidationContextSdsTrust_secretName,++ -- ** VirtualGatewayTlsValidationContextTrust+ virtualGatewayTlsValidationContextTrust_acm,+ virtualGatewayTlsValidationContextTrust_file,+ virtualGatewayTlsValidationContextTrust_sds,++ -- ** VirtualNodeConnectionPool+ virtualNodeConnectionPool_grpc,+ virtualNodeConnectionPool_http,+ virtualNodeConnectionPool_http2,+ virtualNodeConnectionPool_tcp,++ -- ** VirtualNodeData+ virtualNodeData_meshName,+ virtualNodeData_metadata,+ virtualNodeData_spec,+ virtualNodeData_status,+ virtualNodeData_virtualNodeName,++ -- ** VirtualNodeGrpcConnectionPool+ virtualNodeGrpcConnectionPool_maxRequests,++ -- ** VirtualNodeHttp2ConnectionPool+ virtualNodeHttp2ConnectionPool_maxRequests,++ -- ** VirtualNodeHttpConnectionPool+ virtualNodeHttpConnectionPool_maxPendingRequests,+ virtualNodeHttpConnectionPool_maxConnections,++ -- ** VirtualNodeRef+ virtualNodeRef_arn,+ virtualNodeRef_createdAt,+ virtualNodeRef_lastUpdatedAt,+ virtualNodeRef_meshName,+ virtualNodeRef_meshOwner,+ virtualNodeRef_resourceOwner,+ virtualNodeRef_version,+ virtualNodeRef_virtualNodeName,++ -- ** VirtualNodeServiceProvider+ virtualNodeServiceProvider_virtualNodeName,++ -- ** VirtualNodeSpec+ virtualNodeSpec_backendDefaults,+ virtualNodeSpec_backends,+ virtualNodeSpec_listeners,+ virtualNodeSpec_logging,+ virtualNodeSpec_serviceDiscovery,++ -- ** VirtualNodeStatus+ virtualNodeStatus_status,++ -- ** VirtualNodeTcpConnectionPool+ virtualNodeTcpConnectionPool_maxConnections,++ -- ** VirtualRouterData+ virtualRouterData_meshName,+ virtualRouterData_metadata,+ virtualRouterData_spec,+ virtualRouterData_status,+ virtualRouterData_virtualRouterName,++ -- ** VirtualRouterListener+ virtualRouterListener_portMapping,++ -- ** VirtualRouterRef+ virtualRouterRef_arn,+ virtualRouterRef_createdAt,+ virtualRouterRef_lastUpdatedAt,+ virtualRouterRef_meshName,+ virtualRouterRef_meshOwner,+ virtualRouterRef_resourceOwner,+ virtualRouterRef_version,+ virtualRouterRef_virtualRouterName,++ -- ** VirtualRouterServiceProvider+ virtualRouterServiceProvider_virtualRouterName,++ -- ** VirtualRouterSpec+ virtualRouterSpec_listeners,++ -- ** VirtualRouterStatus+ virtualRouterStatus_status,++ -- ** VirtualServiceBackend+ virtualServiceBackend_clientPolicy,+ virtualServiceBackend_virtualServiceName,++ -- ** VirtualServiceData+ virtualServiceData_meshName,+ virtualServiceData_metadata,+ virtualServiceData_spec,+ virtualServiceData_status,+ virtualServiceData_virtualServiceName,++ -- ** VirtualServiceProvider+ virtualServiceProvider_virtualNode,+ virtualServiceProvider_virtualRouter,++ -- ** VirtualServiceRef+ virtualServiceRef_arn,+ virtualServiceRef_createdAt,+ virtualServiceRef_lastUpdatedAt,+ virtualServiceRef_meshName,+ virtualServiceRef_meshOwner,+ virtualServiceRef_resourceOwner,+ virtualServiceRef_version,+ virtualServiceRef_virtualServiceName,++ -- ** VirtualServiceSpec+ virtualServiceSpec_provider,++ -- ** VirtualServiceStatus+ virtualServiceStatus_status,++ -- ** WeightedTarget+ weightedTarget_port,+ weightedTarget_virtualNode,+ weightedTarget_weight,+ )+where++import Amazonka.AppMesh.CreateGatewayRoute+import Amazonka.AppMesh.CreateMesh+import Amazonka.AppMesh.CreateRoute+import Amazonka.AppMesh.CreateVirtualGateway+import Amazonka.AppMesh.CreateVirtualNode+import Amazonka.AppMesh.CreateVirtualRouter+import Amazonka.AppMesh.CreateVirtualService+import Amazonka.AppMesh.DeleteGatewayRoute+import Amazonka.AppMesh.DeleteMesh+import Amazonka.AppMesh.DeleteRoute+import Amazonka.AppMesh.DeleteVirtualGateway+import Amazonka.AppMesh.DeleteVirtualNode+import Amazonka.AppMesh.DeleteVirtualRouter+import Amazonka.AppMesh.DeleteVirtualService+import Amazonka.AppMesh.DescribeGatewayRoute+import Amazonka.AppMesh.DescribeMesh+import Amazonka.AppMesh.DescribeRoute+import Amazonka.AppMesh.DescribeVirtualGateway+import Amazonka.AppMesh.DescribeVirtualNode+import Amazonka.AppMesh.DescribeVirtualRouter+import Amazonka.AppMesh.DescribeVirtualService+import Amazonka.AppMesh.ListGatewayRoutes+import Amazonka.AppMesh.ListMeshes+import Amazonka.AppMesh.ListRoutes+import Amazonka.AppMesh.ListTagsForResource+import Amazonka.AppMesh.ListVirtualGateways+import Amazonka.AppMesh.ListVirtualNodes+import Amazonka.AppMesh.ListVirtualRouters+import Amazonka.AppMesh.ListVirtualServices+import Amazonka.AppMesh.TagResource+import Amazonka.AppMesh.Types.AccessLog+import Amazonka.AppMesh.Types.AwsCloudMapInstanceAttribute+import Amazonka.AppMesh.Types.AwsCloudMapServiceDiscovery+import Amazonka.AppMesh.Types.Backend+import Amazonka.AppMesh.Types.BackendDefaults+import Amazonka.AppMesh.Types.ClientPolicy+import Amazonka.AppMesh.Types.ClientPolicyTls+import Amazonka.AppMesh.Types.ClientTlsCertificate+import Amazonka.AppMesh.Types.DnsServiceDiscovery+import Amazonka.AppMesh.Types.Duration+import Amazonka.AppMesh.Types.EgressFilter+import Amazonka.AppMesh.Types.FileAccessLog+import Amazonka.AppMesh.Types.GatewayRouteData+import Amazonka.AppMesh.Types.GatewayRouteHostnameMatch+import Amazonka.AppMesh.Types.GatewayRouteHostnameRewrite+import Amazonka.AppMesh.Types.GatewayRouteRef+import Amazonka.AppMesh.Types.GatewayRouteSpec+import Amazonka.AppMesh.Types.GatewayRouteStatus+import Amazonka.AppMesh.Types.GatewayRouteTarget+import Amazonka.AppMesh.Types.GatewayRouteVirtualService+import Amazonka.AppMesh.Types.GrpcGatewayRoute+import Amazonka.AppMesh.Types.GrpcGatewayRouteAction+import Amazonka.AppMesh.Types.GrpcGatewayRouteMatch+import Amazonka.AppMesh.Types.GrpcGatewayRouteMetadata+import Amazonka.AppMesh.Types.GrpcGatewayRouteRewrite+import Amazonka.AppMesh.Types.GrpcMetadataMatchMethod+import Amazonka.AppMesh.Types.GrpcRetryPolicy+import Amazonka.AppMesh.Types.GrpcRoute+import Amazonka.AppMesh.Types.GrpcRouteAction+import Amazonka.AppMesh.Types.GrpcRouteMatch+import Amazonka.AppMesh.Types.GrpcRouteMetadata+import Amazonka.AppMesh.Types.GrpcRouteMetadataMatchMethod+import Amazonka.AppMesh.Types.GrpcTimeout+import Amazonka.AppMesh.Types.HeaderMatchMethod+import Amazonka.AppMesh.Types.HealthCheckPolicy+import Amazonka.AppMesh.Types.HttpGatewayRoute+import Amazonka.AppMesh.Types.HttpGatewayRouteAction+import Amazonka.AppMesh.Types.HttpGatewayRouteHeader+import Amazonka.AppMesh.Types.HttpGatewayRouteMatch+import Amazonka.AppMesh.Types.HttpGatewayRoutePathRewrite+import Amazonka.AppMesh.Types.HttpGatewayRoutePrefixRewrite+import Amazonka.AppMesh.Types.HttpGatewayRouteRewrite+import Amazonka.AppMesh.Types.HttpPathMatch+import Amazonka.AppMesh.Types.HttpQueryParameter+import Amazonka.AppMesh.Types.HttpRetryPolicy+import Amazonka.AppMesh.Types.HttpRoute+import Amazonka.AppMesh.Types.HttpRouteAction+import Amazonka.AppMesh.Types.HttpRouteHeader+import Amazonka.AppMesh.Types.HttpRouteMatch+import Amazonka.AppMesh.Types.HttpTimeout+import Amazonka.AppMesh.Types.JsonFormatRef+import Amazonka.AppMesh.Types.Listener+import Amazonka.AppMesh.Types.ListenerTimeout+import Amazonka.AppMesh.Types.ListenerTls+import Amazonka.AppMesh.Types.ListenerTlsAcmCertificate+import Amazonka.AppMesh.Types.ListenerTlsCertificate+import Amazonka.AppMesh.Types.ListenerTlsFileCertificate+import Amazonka.AppMesh.Types.ListenerTlsSdsCertificate+import Amazonka.AppMesh.Types.ListenerTlsValidationContext+import Amazonka.AppMesh.Types.ListenerTlsValidationContextTrust+import Amazonka.AppMesh.Types.Logging+import Amazonka.AppMesh.Types.LoggingFormat+import Amazonka.AppMesh.Types.MatchRange+import Amazonka.AppMesh.Types.MeshData+import Amazonka.AppMesh.Types.MeshRef+import Amazonka.AppMesh.Types.MeshServiceDiscovery+import Amazonka.AppMesh.Types.MeshSpec+import Amazonka.AppMesh.Types.MeshStatus+import Amazonka.AppMesh.Types.OutlierDetection+import Amazonka.AppMesh.Types.PortMapping+import Amazonka.AppMesh.Types.QueryParameterMatch+import Amazonka.AppMesh.Types.ResourceMetadata+import Amazonka.AppMesh.Types.RouteData+import Amazonka.AppMesh.Types.RouteRef+import Amazonka.AppMesh.Types.RouteSpec+import Amazonka.AppMesh.Types.RouteStatus+import Amazonka.AppMesh.Types.ServiceDiscovery+import Amazonka.AppMesh.Types.SubjectAlternativeNameMatchers+import Amazonka.AppMesh.Types.SubjectAlternativeNames+import Amazonka.AppMesh.Types.TagRef+import Amazonka.AppMesh.Types.TcpRoute+import Amazonka.AppMesh.Types.TcpRouteAction+import Amazonka.AppMesh.Types.TcpRouteMatch+import Amazonka.AppMesh.Types.TcpTimeout+import Amazonka.AppMesh.Types.TlsValidationContext+import Amazonka.AppMesh.Types.TlsValidationContextAcmTrust+import Amazonka.AppMesh.Types.TlsValidationContextFileTrust+import Amazonka.AppMesh.Types.TlsValidationContextSdsTrust+import Amazonka.AppMesh.Types.TlsValidationContextTrust+import Amazonka.AppMesh.Types.VirtualGatewayAccessLog+import Amazonka.AppMesh.Types.VirtualGatewayBackendDefaults+import Amazonka.AppMesh.Types.VirtualGatewayClientPolicy+import Amazonka.AppMesh.Types.VirtualGatewayClientPolicyTls+import Amazonka.AppMesh.Types.VirtualGatewayClientTlsCertificate+import Amazonka.AppMesh.Types.VirtualGatewayConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayData+import Amazonka.AppMesh.Types.VirtualGatewayFileAccessLog+import Amazonka.AppMesh.Types.VirtualGatewayGrpcConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayHealthCheckPolicy+import Amazonka.AppMesh.Types.VirtualGatewayHttp2ConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayHttpConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayListener+import Amazonka.AppMesh.Types.VirtualGatewayListenerTls+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsAcmCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsFileCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsSdsCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContext+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContextTrust+import Amazonka.AppMesh.Types.VirtualGatewayLogging+import Amazonka.AppMesh.Types.VirtualGatewayPortMapping+import Amazonka.AppMesh.Types.VirtualGatewayRef+import Amazonka.AppMesh.Types.VirtualGatewaySpec+import Amazonka.AppMesh.Types.VirtualGatewayStatus+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContext+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextAcmTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextFileTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextSdsTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextTrust+import Amazonka.AppMesh.Types.VirtualNodeConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeData+import Amazonka.AppMesh.Types.VirtualNodeGrpcConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeHttp2ConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeHttpConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeRef+import Amazonka.AppMesh.Types.VirtualNodeServiceProvider+import Amazonka.AppMesh.Types.VirtualNodeSpec+import Amazonka.AppMesh.Types.VirtualNodeStatus+import Amazonka.AppMesh.Types.VirtualNodeTcpConnectionPool+import Amazonka.AppMesh.Types.VirtualRouterData+import Amazonka.AppMesh.Types.VirtualRouterListener+import Amazonka.AppMesh.Types.VirtualRouterRef+import Amazonka.AppMesh.Types.VirtualRouterServiceProvider+import Amazonka.AppMesh.Types.VirtualRouterSpec+import Amazonka.AppMesh.Types.VirtualRouterStatus+import Amazonka.AppMesh.Types.VirtualServiceBackend+import Amazonka.AppMesh.Types.VirtualServiceData+import Amazonka.AppMesh.Types.VirtualServiceProvider+import Amazonka.AppMesh.Types.VirtualServiceRef+import Amazonka.AppMesh.Types.VirtualServiceSpec+import Amazonka.AppMesh.Types.VirtualServiceStatus+import Amazonka.AppMesh.Types.WeightedTarget+import Amazonka.AppMesh.UntagResource+import Amazonka.AppMesh.UpdateGatewayRoute+import Amazonka.AppMesh.UpdateMesh+import Amazonka.AppMesh.UpdateRoute+import Amazonka.AppMesh.UpdateVirtualGateway+import Amazonka.AppMesh.UpdateVirtualNode+import Amazonka.AppMesh.UpdateVirtualRouter+import Amazonka.AppMesh.UpdateVirtualService
+ gen/Amazonka/AppMesh/ListGatewayRoutes.hs view
@@ -0,0 +1,308 @@+{-# 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.AppMesh.ListGatewayRoutes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of existing gateway routes that are associated to a+-- virtual gateway.+--+-- This operation returns paginated results.+module Amazonka.AppMesh.ListGatewayRoutes+ ( -- * Creating a Request+ ListGatewayRoutes (..),+ newListGatewayRoutes,++ -- * Request Lenses+ listGatewayRoutes_limit,+ listGatewayRoutes_meshOwner,+ listGatewayRoutes_nextToken,+ listGatewayRoutes_meshName,+ listGatewayRoutes_virtualGatewayName,++ -- * Destructuring the Response+ ListGatewayRoutesResponse (..),+ newListGatewayRoutesResponse,++ -- * Response Lenses+ listGatewayRoutesResponse_nextToken,+ listGatewayRoutesResponse_httpStatus,+ listGatewayRoutesResponse_gatewayRoutes,+ )+where++import Amazonka.AppMesh.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:/ 'newListGatewayRoutes' smart constructor.+data ListGatewayRoutes = ListGatewayRoutes'+ { -- | The maximum number of results returned by @ListGatewayRoutes@ in+ -- paginated output. When you use this parameter, @ListGatewayRoutes@+ -- returns only @limit@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListGatewayRoutes@ request with the returned+ -- @nextToken@ value. This value can be between 1 and 100. If you don\'t+ -- use this parameter, @ListGatewayRoutes@ returns up to 100 results and a+ -- @nextToken@ value if applicable.+ limit :: Prelude.Maybe Prelude.Natural,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListGatewayRoutes@ request where @limit@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to list gateway routes in.+ meshName :: Prelude.Text,+ -- | The name of the virtual gateway to list gateway routes in.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGatewayRoutes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'limit', 'listGatewayRoutes_limit' - The maximum number of results returned by @ListGatewayRoutes@ in+-- paginated output. When you use this parameter, @ListGatewayRoutes@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListGatewayRoutes@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListGatewayRoutes@ returns up to 100 results and a+-- @nextToken@ value if applicable.+--+-- 'meshOwner', 'listGatewayRoutes_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'nextToken', 'listGatewayRoutes_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListGatewayRoutes@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- 'meshName', 'listGatewayRoutes_meshName' - The name of the service mesh to list gateway routes in.+--+-- 'virtualGatewayName', 'listGatewayRoutes_virtualGatewayName' - The name of the virtual gateway to list gateway routes in.+newListGatewayRoutes ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ ListGatewayRoutes+newListGatewayRoutes pMeshName_ pVirtualGatewayName_ =+ ListGatewayRoutes'+ { limit = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ meshName = pMeshName_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The maximum number of results returned by @ListGatewayRoutes@ in+-- paginated output. When you use this parameter, @ListGatewayRoutes@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListGatewayRoutes@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListGatewayRoutes@ returns up to 100 results and a+-- @nextToken@ value if applicable.+listGatewayRoutes_limit :: Lens.Lens' ListGatewayRoutes (Prelude.Maybe Prelude.Natural)+listGatewayRoutes_limit = Lens.lens (\ListGatewayRoutes' {limit} -> limit) (\s@ListGatewayRoutes' {} a -> s {limit = a} :: ListGatewayRoutes)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+listGatewayRoutes_meshOwner :: Lens.Lens' ListGatewayRoutes (Prelude.Maybe Prelude.Text)+listGatewayRoutes_meshOwner = Lens.lens (\ListGatewayRoutes' {meshOwner} -> meshOwner) (\s@ListGatewayRoutes' {} a -> s {meshOwner = a} :: ListGatewayRoutes)++-- | The @nextToken@ value returned from a previous paginated+-- @ListGatewayRoutes@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+listGatewayRoutes_nextToken :: Lens.Lens' ListGatewayRoutes (Prelude.Maybe Prelude.Text)+listGatewayRoutes_nextToken = Lens.lens (\ListGatewayRoutes' {nextToken} -> nextToken) (\s@ListGatewayRoutes' {} a -> s {nextToken = a} :: ListGatewayRoutes)++-- | The name of the service mesh to list gateway routes in.+listGatewayRoutes_meshName :: Lens.Lens' ListGatewayRoutes Prelude.Text+listGatewayRoutes_meshName = Lens.lens (\ListGatewayRoutes' {meshName} -> meshName) (\s@ListGatewayRoutes' {} a -> s {meshName = a} :: ListGatewayRoutes)++-- | The name of the virtual gateway to list gateway routes in.+listGatewayRoutes_virtualGatewayName :: Lens.Lens' ListGatewayRoutes Prelude.Text+listGatewayRoutes_virtualGatewayName = Lens.lens (\ListGatewayRoutes' {virtualGatewayName} -> virtualGatewayName) (\s@ListGatewayRoutes' {} a -> s {virtualGatewayName = a} :: ListGatewayRoutes)++instance Core.AWSPager ListGatewayRoutes where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listGatewayRoutesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. listGatewayRoutesResponse_gatewayRoutes) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listGatewayRoutes_nextToken+ Lens..~ rs+ Lens.^? listGatewayRoutesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListGatewayRoutes where+ type+ AWSResponse ListGatewayRoutes =+ ListGatewayRoutesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListGatewayRoutesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "gatewayRoutes" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListGatewayRoutes where+ hashWithSalt _salt ListGatewayRoutes' {..} =+ _salt+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData ListGatewayRoutes where+ rnf ListGatewayRoutes' {..} =+ Prelude.rnf limit+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders ListGatewayRoutes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListGatewayRoutes where+ toPath ListGatewayRoutes' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateway/",+ Data.toBS virtualGatewayName,+ "/gatewayRoutes"+ ]++instance Data.ToQuery ListGatewayRoutes where+ toQuery ListGatewayRoutes' {..} =+ Prelude.mconcat+ [ "limit" Data.=: limit,+ "meshOwner" Data.=: meshOwner,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListGatewayRoutesResponse' smart constructor.+data ListGatewayRoutesResponse = ListGatewayRoutesResponse'+ { -- | The @nextToken@ value to include in a future @ListGatewayRoutes@+ -- request. When the results of a @ListGatewayRoutes@ request exceed+ -- @limit@, you can use this value to retrieve the next page of results.+ -- This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of existing gateway routes for the specified service mesh and+ -- virtual gateway.+ gatewayRoutes :: [GatewayRouteRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGatewayRoutesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listGatewayRoutesResponse_nextToken' - The @nextToken@ value to include in a future @ListGatewayRoutes@+-- request. When the results of a @ListGatewayRoutes@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'listGatewayRoutesResponse_httpStatus' - The response's http status code.+--+-- 'gatewayRoutes', 'listGatewayRoutesResponse_gatewayRoutes' - The list of existing gateway routes for the specified service mesh and+-- virtual gateway.+newListGatewayRoutesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListGatewayRoutesResponse+newListGatewayRoutesResponse pHttpStatus_ =+ ListGatewayRoutesResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ gatewayRoutes = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListGatewayRoutes@+-- request. When the results of a @ListGatewayRoutes@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+listGatewayRoutesResponse_nextToken :: Lens.Lens' ListGatewayRoutesResponse (Prelude.Maybe Prelude.Text)+listGatewayRoutesResponse_nextToken = Lens.lens (\ListGatewayRoutesResponse' {nextToken} -> nextToken) (\s@ListGatewayRoutesResponse' {} a -> s {nextToken = a} :: ListGatewayRoutesResponse)++-- | The response's http status code.+listGatewayRoutesResponse_httpStatus :: Lens.Lens' ListGatewayRoutesResponse Prelude.Int+listGatewayRoutesResponse_httpStatus = Lens.lens (\ListGatewayRoutesResponse' {httpStatus} -> httpStatus) (\s@ListGatewayRoutesResponse' {} a -> s {httpStatus = a} :: ListGatewayRoutesResponse)++-- | The list of existing gateway routes for the specified service mesh and+-- virtual gateway.+listGatewayRoutesResponse_gatewayRoutes :: Lens.Lens' ListGatewayRoutesResponse [GatewayRouteRef]+listGatewayRoutesResponse_gatewayRoutes = Lens.lens (\ListGatewayRoutesResponse' {gatewayRoutes} -> gatewayRoutes) (\s@ListGatewayRoutesResponse' {} a -> s {gatewayRoutes = a} :: ListGatewayRoutesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListGatewayRoutesResponse where+ rnf ListGatewayRoutesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf gatewayRoutes
+ gen/Amazonka/AppMesh/ListMeshes.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.AppMesh.ListMeshes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of existing service meshes.+--+-- This operation returns paginated results.+module Amazonka.AppMesh.ListMeshes+ ( -- * Creating a Request+ ListMeshes (..),+ newListMeshes,++ -- * Request Lenses+ listMeshes_limit,+ listMeshes_nextToken,++ -- * Destructuring the Response+ ListMeshesResponse (..),+ newListMeshesResponse,++ -- * Response Lenses+ listMeshesResponse_nextToken,+ listMeshesResponse_httpStatus,+ listMeshesResponse_meshes,+ )+where++import Amazonka.AppMesh.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:/ 'newListMeshes' smart constructor.+data ListMeshes = ListMeshes'+ { -- | The maximum number of results returned by @ListMeshes@ in paginated+ -- output. When you use this parameter, @ListMeshes@ returns only @limit@+ -- results in a single page along with a @nextToken@ response element. You+ -- can see the remaining results of the initial request by sending another+ -- @ListMeshes@ request with the returned @nextToken@ value. This value can+ -- be between 1 and 100. If you don\'t use this parameter, @ListMeshes@+ -- returns up to 100 results and a @nextToken@ value if applicable.+ limit :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated @ListMeshes@+ -- request where @limit@ was used and the results exceeded the value of+ -- that parameter. Pagination continues from the end of the previous+ -- results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is used only+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMeshes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'limit', 'listMeshes_limit' - The maximum number of results returned by @ListMeshes@ in paginated+-- output. When you use this parameter, @ListMeshes@ returns only @limit@+-- results in a single page along with a @nextToken@ response element. You+-- can see the remaining results of the initial request by sending another+-- @ListMeshes@ request with the returned @nextToken@ value. This value can+-- be between 1 and 100. If you don\'t use this parameter, @ListMeshes@+-- returns up to 100 results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listMeshes_nextToken' - The @nextToken@ value returned from a previous paginated @ListMeshes@+-- request where @limit@ was used and the results exceeded the value of+-- that parameter. Pagination continues from the end of the previous+-- results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+newListMeshes ::+ ListMeshes+newListMeshes =+ ListMeshes'+ { limit = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of results returned by @ListMeshes@ in paginated+-- output. When you use this parameter, @ListMeshes@ returns only @limit@+-- results in a single page along with a @nextToken@ response element. You+-- can see the remaining results of the initial request by sending another+-- @ListMeshes@ request with the returned @nextToken@ value. This value can+-- be between 1 and 100. If you don\'t use this parameter, @ListMeshes@+-- returns up to 100 results and a @nextToken@ value if applicable.+listMeshes_limit :: Lens.Lens' ListMeshes (Prelude.Maybe Prelude.Natural)+listMeshes_limit = Lens.lens (\ListMeshes' {limit} -> limit) (\s@ListMeshes' {} a -> s {limit = a} :: ListMeshes)++-- | The @nextToken@ value returned from a previous paginated @ListMeshes@+-- request where @limit@ was used and the results exceeded the value of+-- that parameter. Pagination continues from the end of the previous+-- results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+listMeshes_nextToken :: Lens.Lens' ListMeshes (Prelude.Maybe Prelude.Text)+listMeshes_nextToken = Lens.lens (\ListMeshes' {nextToken} -> nextToken) (\s@ListMeshes' {} a -> s {nextToken = a} :: ListMeshes)++instance Core.AWSPager ListMeshes where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listMeshesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop (rs Lens.^. listMeshesResponse_meshes) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listMeshes_nextToken+ Lens..~ rs+ Lens.^? listMeshesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListMeshes where+ type AWSResponse ListMeshes = ListMeshesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListMeshesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "meshes" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListMeshes where+ hashWithSalt _salt ListMeshes' {..} =+ _salt+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListMeshes where+ rnf ListMeshes' {..} =+ Prelude.rnf limit+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListMeshes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListMeshes where+ toPath = Prelude.const "/v20190125/meshes"++instance Data.ToQuery ListMeshes where+ toQuery ListMeshes' {..} =+ Prelude.mconcat+ [ "limit" Data.=: limit,+ "nextToken" Data.=: nextToken+ ]++-- |+--+-- /See:/ 'newListMeshesResponse' smart constructor.+data ListMeshesResponse = ListMeshesResponse'+ { -- | The @nextToken@ value to include in a future @ListMeshes@ request. When+ -- the results of a @ListMeshes@ request exceed @limit@, you can use this+ -- value to retrieve the next page of results. This value is @null@ when+ -- there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of existing service meshes.+ meshes :: [MeshRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMeshesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listMeshesResponse_nextToken' - The @nextToken@ value to include in a future @ListMeshes@ request. When+-- the results of a @ListMeshes@ request exceed @limit@, you can use this+-- value to retrieve the next page of results. This value is @null@ when+-- there are no more results to return.+--+-- 'httpStatus', 'listMeshesResponse_httpStatus' - The response's http status code.+--+-- 'meshes', 'listMeshesResponse_meshes' - The list of existing service meshes.+newListMeshesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListMeshesResponse+newListMeshesResponse pHttpStatus_ =+ ListMeshesResponse'+ { nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ meshes = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListMeshes@ request. When+-- the results of a @ListMeshes@ request exceed @limit@, you can use this+-- value to retrieve the next page of results. This value is @null@ when+-- there are no more results to return.+listMeshesResponse_nextToken :: Lens.Lens' ListMeshesResponse (Prelude.Maybe Prelude.Text)+listMeshesResponse_nextToken = Lens.lens (\ListMeshesResponse' {nextToken} -> nextToken) (\s@ListMeshesResponse' {} a -> s {nextToken = a} :: ListMeshesResponse)++-- | The response's http status code.+listMeshesResponse_httpStatus :: Lens.Lens' ListMeshesResponse Prelude.Int+listMeshesResponse_httpStatus = Lens.lens (\ListMeshesResponse' {httpStatus} -> httpStatus) (\s@ListMeshesResponse' {} a -> s {httpStatus = a} :: ListMeshesResponse)++-- | The list of existing service meshes.+listMeshesResponse_meshes :: Lens.Lens' ListMeshesResponse [MeshRef]+listMeshesResponse_meshes = Lens.lens (\ListMeshesResponse' {meshes} -> meshes) (\s@ListMeshesResponse' {} a -> s {meshes = a} :: ListMeshesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListMeshesResponse where+ rnf ListMeshesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf meshes
+ gen/Amazonka/AppMesh/ListRoutes.hs view
@@ -0,0 +1,304 @@+{-# 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.AppMesh.ListRoutes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of existing routes in a service mesh.+--+-- This operation returns paginated results.+module Amazonka.AppMesh.ListRoutes+ ( -- * Creating a Request+ ListRoutes (..),+ newListRoutes,++ -- * Request Lenses+ listRoutes_limit,+ listRoutes_meshOwner,+ listRoutes_nextToken,+ listRoutes_meshName,+ listRoutes_virtualRouterName,++ -- * Destructuring the Response+ ListRoutesResponse (..),+ newListRoutesResponse,++ -- * Response Lenses+ listRoutesResponse_nextToken,+ listRoutesResponse_httpStatus,+ listRoutesResponse_routes,+ )+where++import Amazonka.AppMesh.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:/ 'newListRoutes' smart constructor.+data ListRoutes = ListRoutes'+ { -- | The maximum number of results returned by @ListRoutes@ in paginated+ -- output. When you use this parameter, @ListRoutes@ returns only @limit@+ -- results in a single page along with a @nextToken@ response element. You+ -- can see the remaining results of the initial request by sending another+ -- @ListRoutes@ request with the returned @nextToken@ value. This value can+ -- be between 1 and 100. If you don\'t use this parameter, @ListRoutes@+ -- returns up to 100 results and a @nextToken@ value if applicable.+ limit :: Prelude.Maybe Prelude.Natural,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The @nextToken@ value returned from a previous paginated @ListRoutes@+ -- request where @limit@ was used and the results exceeded the value of+ -- that parameter. Pagination continues from the end of the previous+ -- results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to list routes in.+ meshName :: Prelude.Text,+ -- | The name of the virtual router to list routes in.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRoutes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'limit', 'listRoutes_limit' - The maximum number of results returned by @ListRoutes@ in paginated+-- output. When you use this parameter, @ListRoutes@ returns only @limit@+-- results in a single page along with a @nextToken@ response element. You+-- can see the remaining results of the initial request by sending another+-- @ListRoutes@ request with the returned @nextToken@ value. This value can+-- be between 1 and 100. If you don\'t use this parameter, @ListRoutes@+-- returns up to 100 results and a @nextToken@ value if applicable.+--+-- 'meshOwner', 'listRoutes_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'nextToken', 'listRoutes_nextToken' - The @nextToken@ value returned from a previous paginated @ListRoutes@+-- request where @limit@ was used and the results exceeded the value of+-- that parameter. Pagination continues from the end of the previous+-- results that returned the @nextToken@ value.+--+-- 'meshName', 'listRoutes_meshName' - The name of the service mesh to list routes in.+--+-- 'virtualRouterName', 'listRoutes_virtualRouterName' - The name of the virtual router to list routes in.+newListRoutes ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ ListRoutes+newListRoutes pMeshName_ pVirtualRouterName_ =+ ListRoutes'+ { limit = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ meshName = pMeshName_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The maximum number of results returned by @ListRoutes@ in paginated+-- output. When you use this parameter, @ListRoutes@ returns only @limit@+-- results in a single page along with a @nextToken@ response element. You+-- can see the remaining results of the initial request by sending another+-- @ListRoutes@ request with the returned @nextToken@ value. This value can+-- be between 1 and 100. If you don\'t use this parameter, @ListRoutes@+-- returns up to 100 results and a @nextToken@ value if applicable.+listRoutes_limit :: Lens.Lens' ListRoutes (Prelude.Maybe Prelude.Natural)+listRoutes_limit = Lens.lens (\ListRoutes' {limit} -> limit) (\s@ListRoutes' {} a -> s {limit = a} :: ListRoutes)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+listRoutes_meshOwner :: Lens.Lens' ListRoutes (Prelude.Maybe Prelude.Text)+listRoutes_meshOwner = Lens.lens (\ListRoutes' {meshOwner} -> meshOwner) (\s@ListRoutes' {} a -> s {meshOwner = a} :: ListRoutes)++-- | The @nextToken@ value returned from a previous paginated @ListRoutes@+-- request where @limit@ was used and the results exceeded the value of+-- that parameter. Pagination continues from the end of the previous+-- results that returned the @nextToken@ value.+listRoutes_nextToken :: Lens.Lens' ListRoutes (Prelude.Maybe Prelude.Text)+listRoutes_nextToken = Lens.lens (\ListRoutes' {nextToken} -> nextToken) (\s@ListRoutes' {} a -> s {nextToken = a} :: ListRoutes)++-- | The name of the service mesh to list routes in.+listRoutes_meshName :: Lens.Lens' ListRoutes Prelude.Text+listRoutes_meshName = Lens.lens (\ListRoutes' {meshName} -> meshName) (\s@ListRoutes' {} a -> s {meshName = a} :: ListRoutes)++-- | The name of the virtual router to list routes in.+listRoutes_virtualRouterName :: Lens.Lens' ListRoutes Prelude.Text+listRoutes_virtualRouterName = Lens.lens (\ListRoutes' {virtualRouterName} -> virtualRouterName) (\s@ListRoutes' {} a -> s {virtualRouterName = a} :: ListRoutes)++instance Core.AWSPager ListRoutes where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listRoutesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop (rs Lens.^. listRoutesResponse_routes) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listRoutes_nextToken+ Lens..~ rs+ Lens.^? listRoutesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListRoutes where+ type AWSResponse ListRoutes = ListRoutesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListRoutesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "routes" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListRoutes where+ hashWithSalt _salt ListRoutes' {..} =+ _salt+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData ListRoutes where+ rnf ListRoutes' {..} =+ Prelude.rnf limit+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf virtualRouterName++instance Data.ToHeaders ListRoutes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListRoutes where+ toPath ListRoutes' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouter/",+ Data.toBS virtualRouterName,+ "/routes"+ ]++instance Data.ToQuery ListRoutes where+ toQuery ListRoutes' {..} =+ Prelude.mconcat+ [ "limit" Data.=: limit,+ "meshOwner" Data.=: meshOwner,+ "nextToken" Data.=: nextToken+ ]++-- |+--+-- /See:/ 'newListRoutesResponse' smart constructor.+data ListRoutesResponse = ListRoutesResponse'+ { -- | The @nextToken@ value to include in a future @ListRoutes@ request. When+ -- the results of a @ListRoutes@ request exceed @limit@, you can use this+ -- value to retrieve the next page of results. This value is @null@ when+ -- there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of existing routes for the specified service mesh and virtual+ -- router.+ routes :: [RouteRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRoutesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listRoutesResponse_nextToken' - The @nextToken@ value to include in a future @ListRoutes@ request. When+-- the results of a @ListRoutes@ request exceed @limit@, you can use this+-- value to retrieve the next page of results. This value is @null@ when+-- there are no more results to return.+--+-- 'httpStatus', 'listRoutesResponse_httpStatus' - The response's http status code.+--+-- 'routes', 'listRoutesResponse_routes' - The list of existing routes for the specified service mesh and virtual+-- router.+newListRoutesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListRoutesResponse+newListRoutesResponse pHttpStatus_ =+ ListRoutesResponse'+ { nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ routes = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListRoutes@ request. When+-- the results of a @ListRoutes@ request exceed @limit@, you can use this+-- value to retrieve the next page of results. This value is @null@ when+-- there are no more results to return.+listRoutesResponse_nextToken :: Lens.Lens' ListRoutesResponse (Prelude.Maybe Prelude.Text)+listRoutesResponse_nextToken = Lens.lens (\ListRoutesResponse' {nextToken} -> nextToken) (\s@ListRoutesResponse' {} a -> s {nextToken = a} :: ListRoutesResponse)++-- | The response's http status code.+listRoutesResponse_httpStatus :: Lens.Lens' ListRoutesResponse Prelude.Int+listRoutesResponse_httpStatus = Lens.lens (\ListRoutesResponse' {httpStatus} -> httpStatus) (\s@ListRoutesResponse' {} a -> s {httpStatus = a} :: ListRoutesResponse)++-- | The list of existing routes for the specified service mesh and virtual+-- router.+listRoutesResponse_routes :: Lens.Lens' ListRoutesResponse [RouteRef]+listRoutesResponse_routes = Lens.lens (\ListRoutesResponse' {routes} -> routes) (\s@ListRoutesResponse' {} a -> s {routes = a} :: ListRoutesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListRoutesResponse where+ rnf ListRoutesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf routes
+ gen/Amazonka/AppMesh/ListTagsForResource.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.AppMesh.ListTagsForResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List the tags for an App Mesh resource.+--+-- This operation returns paginated results.+module Amazonka.AppMesh.ListTagsForResource+ ( -- * Creating a Request+ ListTagsForResource (..),+ newListTagsForResource,++ -- * Request Lenses+ listTagsForResource_limit,+ listTagsForResource_nextToken,+ listTagsForResource_resourceArn,++ -- * Destructuring the Response+ ListTagsForResourceResponse (..),+ newListTagsForResourceResponse,++ -- * Response Lenses+ listTagsForResourceResponse_nextToken,+ listTagsForResourceResponse_httpStatus,+ listTagsForResourceResponse_tags,+ )+where++import Amazonka.AppMesh.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:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The maximum number of tag results returned by @ListTagsForResource@ in+ -- paginated output. When this parameter is used, @ListTagsForResource@+ -- returns only @limit@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListTagsForResource@ request with the+ -- returned @nextToken@ value. This value can be between 1 and 100. If you+ -- don\'t use this parameter, @ListTagsForResource@ returns up to 100+ -- results and a @nextToken@ value if applicable.+ limit :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListTagsForResource@ request where @limit@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) that identifies the resource to list the+ -- tags for.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'limit', 'listTagsForResource_limit' - The maximum number of tag results returned by @ListTagsForResource@ in+-- paginated output. When this parameter is used, @ListTagsForResource@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListTagsForResource@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListTagsForResource@ returns up to 100+-- results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listTagsForResource_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListTagsForResource@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags for.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource'+ { limit = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ resourceArn = pResourceArn_+ }++-- | The maximum number of tag results returned by @ListTagsForResource@ in+-- paginated output. When this parameter is used, @ListTagsForResource@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListTagsForResource@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListTagsForResource@ returns up to 100+-- results and a @nextToken@ value if applicable.+listTagsForResource_limit :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Natural)+listTagsForResource_limit = Lens.lens (\ListTagsForResource' {limit} -> limit) (\s@ListTagsForResource' {} a -> s {limit = a} :: ListTagsForResource)++-- | The @nextToken@ value returned from a previous paginated+-- @ListTagsForResource@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+listTagsForResource_nextToken :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Text)+listTagsForResource_nextToken = Lens.lens (\ListTagsForResource' {nextToken} -> nextToken) (\s@ListTagsForResource' {} a -> s {nextToken = a} :: ListTagsForResource)++-- | The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags for.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSPager ListTagsForResource where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listTagsForResourceResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. listTagsForResourceResponse_tags) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listTagsForResource_nextToken+ Lens..~ rs+ Lens.^? listTagsForResourceResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListTagsForResource where+ type+ AWSResponse ListTagsForResource =+ ListTagsForResourceResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTagsForResourceResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListTagsForResource where+ hashWithSalt _salt ListTagsForResource' {..} =+ _salt+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+ rnf ListTagsForResource' {..} =+ Prelude.rnf limit+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListTagsForResource where+ toPath = Prelude.const "/v20190125/tags"++instance Data.ToQuery ListTagsForResource where+ toQuery ListTagsForResource' {..} =+ Prelude.mconcat+ [ "limit" Data.=: limit,+ "nextToken" Data.=: nextToken,+ "resourceArn" Data.=: resourceArn+ ]++-- |+--+-- /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+ { -- | The @nextToken@ value to include in a future @ListTagsForResource@+ -- request. When the results of a @ListTagsForResource@ request exceed+ -- @limit@, you can use this value to retrieve the next page of results.+ -- This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The tags for the resource.+ tags :: [TagRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listTagsForResourceResponse_nextToken' - The @nextToken@ value to include in a future @ListTagsForResource@+-- request. When the results of a @ListTagsForResource@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags for the resource.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ tags = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListTagsForResource@+-- request. When the results of a @ListTagsForResource@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+listTagsForResourceResponse_nextToken :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe Prelude.Text)+listTagsForResourceResponse_nextToken = Lens.lens (\ListTagsForResourceResponse' {nextToken} -> nextToken) (\s@ListTagsForResourceResponse' {} a -> s {nextToken = a} :: ListTagsForResourceResponse)++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++-- | The tags for the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse [TagRef]+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/AppMesh/ListVirtualGateways.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.AppMesh.ListVirtualGateways+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of existing virtual gateways in a service mesh.+--+-- This operation returns paginated results.+module Amazonka.AppMesh.ListVirtualGateways+ ( -- * Creating a Request+ ListVirtualGateways (..),+ newListVirtualGateways,++ -- * Request Lenses+ listVirtualGateways_limit,+ listVirtualGateways_meshOwner,+ listVirtualGateways_nextToken,+ listVirtualGateways_meshName,++ -- * Destructuring the Response+ ListVirtualGatewaysResponse (..),+ newListVirtualGatewaysResponse,++ -- * Response Lenses+ listVirtualGatewaysResponse_nextToken,+ listVirtualGatewaysResponse_httpStatus,+ listVirtualGatewaysResponse_virtualGateways,+ )+where++import Amazonka.AppMesh.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:/ 'newListVirtualGateways' smart constructor.+data ListVirtualGateways = ListVirtualGateways'+ { -- | The maximum number of results returned by @ListVirtualGateways@ in+ -- paginated output. When you use this parameter, @ListVirtualGateways@+ -- returns only @limit@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListVirtualGateways@ request with the+ -- returned @nextToken@ value. This value can be between 1 and 100. If you+ -- don\'t use this parameter, @ListVirtualGateways@ returns up to 100+ -- results and a @nextToken@ value if applicable.+ limit :: Prelude.Maybe Prelude.Natural,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListVirtualGateways@ request where @limit@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to list virtual gateways in.+ meshName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualGateways' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'limit', 'listVirtualGateways_limit' - The maximum number of results returned by @ListVirtualGateways@ in+-- paginated output. When you use this parameter, @ListVirtualGateways@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListVirtualGateways@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListVirtualGateways@ returns up to 100+-- results and a @nextToken@ value if applicable.+--+-- 'meshOwner', 'listVirtualGateways_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'nextToken', 'listVirtualGateways_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListVirtualGateways@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- 'meshName', 'listVirtualGateways_meshName' - The name of the service mesh to list virtual gateways in.+newListVirtualGateways ::+ -- | 'meshName'+ Prelude.Text ->+ ListVirtualGateways+newListVirtualGateways pMeshName_ =+ ListVirtualGateways'+ { limit = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ meshName = pMeshName_+ }++-- | The maximum number of results returned by @ListVirtualGateways@ in+-- paginated output. When you use this parameter, @ListVirtualGateways@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListVirtualGateways@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListVirtualGateways@ returns up to 100+-- results and a @nextToken@ value if applicable.+listVirtualGateways_limit :: Lens.Lens' ListVirtualGateways (Prelude.Maybe Prelude.Natural)+listVirtualGateways_limit = Lens.lens (\ListVirtualGateways' {limit} -> limit) (\s@ListVirtualGateways' {} a -> s {limit = a} :: ListVirtualGateways)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+listVirtualGateways_meshOwner :: Lens.Lens' ListVirtualGateways (Prelude.Maybe Prelude.Text)+listVirtualGateways_meshOwner = Lens.lens (\ListVirtualGateways' {meshOwner} -> meshOwner) (\s@ListVirtualGateways' {} a -> s {meshOwner = a} :: ListVirtualGateways)++-- | The @nextToken@ value returned from a previous paginated+-- @ListVirtualGateways@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+listVirtualGateways_nextToken :: Lens.Lens' ListVirtualGateways (Prelude.Maybe Prelude.Text)+listVirtualGateways_nextToken = Lens.lens (\ListVirtualGateways' {nextToken} -> nextToken) (\s@ListVirtualGateways' {} a -> s {nextToken = a} :: ListVirtualGateways)++-- | The name of the service mesh to list virtual gateways in.+listVirtualGateways_meshName :: Lens.Lens' ListVirtualGateways Prelude.Text+listVirtualGateways_meshName = Lens.lens (\ListVirtualGateways' {meshName} -> meshName) (\s@ListVirtualGateways' {} a -> s {meshName = a} :: ListVirtualGateways)++instance Core.AWSPager ListVirtualGateways where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listVirtualGatewaysResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^. listVirtualGatewaysResponse_virtualGateways+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listVirtualGateways_nextToken+ Lens..~ rs+ Lens.^? listVirtualGatewaysResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListVirtualGateways where+ type+ AWSResponse ListVirtualGateways =+ ListVirtualGatewaysResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListVirtualGatewaysResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "virtualGateways"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListVirtualGateways where+ hashWithSalt _salt ListVirtualGateways' {..} =+ _salt+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` meshName++instance Prelude.NFData ListVirtualGateways where+ rnf ListVirtualGateways' {..} =+ Prelude.rnf limit+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf meshName++instance Data.ToHeaders ListVirtualGateways where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListVirtualGateways where+ toPath ListVirtualGateways' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateways"+ ]++instance Data.ToQuery ListVirtualGateways where+ toQuery ListVirtualGateways' {..} =+ Prelude.mconcat+ [ "limit" Data.=: limit,+ "meshOwner" Data.=: meshOwner,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListVirtualGatewaysResponse' smart constructor.+data ListVirtualGatewaysResponse = ListVirtualGatewaysResponse'+ { -- | The @nextToken@ value to include in a future @ListVirtualGateways@+ -- request. When the results of a @ListVirtualGateways@ request exceed+ -- @limit@, you can use this value to retrieve the next page of results.+ -- This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of existing virtual gateways for the specified service mesh.+ virtualGateways :: [VirtualGatewayRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualGatewaysResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listVirtualGatewaysResponse_nextToken' - The @nextToken@ value to include in a future @ListVirtualGateways@+-- request. When the results of a @ListVirtualGateways@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'listVirtualGatewaysResponse_httpStatus' - The response's http status code.+--+-- 'virtualGateways', 'listVirtualGatewaysResponse_virtualGateways' - The list of existing virtual gateways for the specified service mesh.+newListVirtualGatewaysResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListVirtualGatewaysResponse+newListVirtualGatewaysResponse pHttpStatus_ =+ ListVirtualGatewaysResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ virtualGateways = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListVirtualGateways@+-- request. When the results of a @ListVirtualGateways@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+listVirtualGatewaysResponse_nextToken :: Lens.Lens' ListVirtualGatewaysResponse (Prelude.Maybe Prelude.Text)+listVirtualGatewaysResponse_nextToken = Lens.lens (\ListVirtualGatewaysResponse' {nextToken} -> nextToken) (\s@ListVirtualGatewaysResponse' {} a -> s {nextToken = a} :: ListVirtualGatewaysResponse)++-- | The response's http status code.+listVirtualGatewaysResponse_httpStatus :: Lens.Lens' ListVirtualGatewaysResponse Prelude.Int+listVirtualGatewaysResponse_httpStatus = Lens.lens (\ListVirtualGatewaysResponse' {httpStatus} -> httpStatus) (\s@ListVirtualGatewaysResponse' {} a -> s {httpStatus = a} :: ListVirtualGatewaysResponse)++-- | The list of existing virtual gateways for the specified service mesh.+listVirtualGatewaysResponse_virtualGateways :: Lens.Lens' ListVirtualGatewaysResponse [VirtualGatewayRef]+listVirtualGatewaysResponse_virtualGateways = Lens.lens (\ListVirtualGatewaysResponse' {virtualGateways} -> virtualGateways) (\s@ListVirtualGatewaysResponse' {} a -> s {virtualGateways = a} :: ListVirtualGatewaysResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListVirtualGatewaysResponse where+ rnf ListVirtualGatewaysResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualGateways
+ gen/Amazonka/AppMesh/ListVirtualNodes.hs view
@@ -0,0 +1,292 @@+{-# 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.AppMesh.ListVirtualNodes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of existing virtual nodes.+--+-- This operation returns paginated results.+module Amazonka.AppMesh.ListVirtualNodes+ ( -- * Creating a Request+ ListVirtualNodes (..),+ newListVirtualNodes,++ -- * Request Lenses+ listVirtualNodes_limit,+ listVirtualNodes_meshOwner,+ listVirtualNodes_nextToken,+ listVirtualNodes_meshName,++ -- * Destructuring the Response+ ListVirtualNodesResponse (..),+ newListVirtualNodesResponse,++ -- * Response Lenses+ listVirtualNodesResponse_nextToken,+ listVirtualNodesResponse_httpStatus,+ listVirtualNodesResponse_virtualNodes,+ )+where++import Amazonka.AppMesh.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:/ 'newListVirtualNodes' smart constructor.+data ListVirtualNodes = ListVirtualNodes'+ { -- | The maximum number of results returned by @ListVirtualNodes@ in+ -- paginated output. When you use this parameter, @ListVirtualNodes@+ -- returns only @limit@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListVirtualNodes@ request with the returned+ -- @nextToken@ value. This value can be between 1 and 100. If you don\'t+ -- use this parameter, @ListVirtualNodes@ returns up to 100 results and a+ -- @nextToken@ value if applicable.+ limit :: Prelude.Maybe Prelude.Natural,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListVirtualNodes@ request where @limit@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to list virtual nodes in.+ meshName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualNodes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'limit', 'listVirtualNodes_limit' - The maximum number of results returned by @ListVirtualNodes@ in+-- paginated output. When you use this parameter, @ListVirtualNodes@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListVirtualNodes@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListVirtualNodes@ returns up to 100 results and a+-- @nextToken@ value if applicable.+--+-- 'meshOwner', 'listVirtualNodes_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'nextToken', 'listVirtualNodes_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListVirtualNodes@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- 'meshName', 'listVirtualNodes_meshName' - The name of the service mesh to list virtual nodes in.+newListVirtualNodes ::+ -- | 'meshName'+ Prelude.Text ->+ ListVirtualNodes+newListVirtualNodes pMeshName_ =+ ListVirtualNodes'+ { limit = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ meshName = pMeshName_+ }++-- | The maximum number of results returned by @ListVirtualNodes@ in+-- paginated output. When you use this parameter, @ListVirtualNodes@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListVirtualNodes@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListVirtualNodes@ returns up to 100 results and a+-- @nextToken@ value if applicable.+listVirtualNodes_limit :: Lens.Lens' ListVirtualNodes (Prelude.Maybe Prelude.Natural)+listVirtualNodes_limit = Lens.lens (\ListVirtualNodes' {limit} -> limit) (\s@ListVirtualNodes' {} a -> s {limit = a} :: ListVirtualNodes)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+listVirtualNodes_meshOwner :: Lens.Lens' ListVirtualNodes (Prelude.Maybe Prelude.Text)+listVirtualNodes_meshOwner = Lens.lens (\ListVirtualNodes' {meshOwner} -> meshOwner) (\s@ListVirtualNodes' {} a -> s {meshOwner = a} :: ListVirtualNodes)++-- | The @nextToken@ value returned from a previous paginated+-- @ListVirtualNodes@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+listVirtualNodes_nextToken :: Lens.Lens' ListVirtualNodes (Prelude.Maybe Prelude.Text)+listVirtualNodes_nextToken = Lens.lens (\ListVirtualNodes' {nextToken} -> nextToken) (\s@ListVirtualNodes' {} a -> s {nextToken = a} :: ListVirtualNodes)++-- | The name of the service mesh to list virtual nodes in.+listVirtualNodes_meshName :: Lens.Lens' ListVirtualNodes Prelude.Text+listVirtualNodes_meshName = Lens.lens (\ListVirtualNodes' {meshName} -> meshName) (\s@ListVirtualNodes' {} a -> s {meshName = a} :: ListVirtualNodes)++instance Core.AWSPager ListVirtualNodes where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listVirtualNodesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. listVirtualNodesResponse_virtualNodes) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listVirtualNodes_nextToken+ Lens..~ rs+ Lens.^? listVirtualNodesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListVirtualNodes where+ type+ AWSResponse ListVirtualNodes =+ ListVirtualNodesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListVirtualNodesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "virtualNodes" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListVirtualNodes where+ hashWithSalt _salt ListVirtualNodes' {..} =+ _salt+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` meshName++instance Prelude.NFData ListVirtualNodes where+ rnf ListVirtualNodes' {..} =+ Prelude.rnf limit+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf meshName++instance Data.ToHeaders ListVirtualNodes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListVirtualNodes where+ toPath ListVirtualNodes' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualNodes"+ ]++instance Data.ToQuery ListVirtualNodes where+ toQuery ListVirtualNodes' {..} =+ Prelude.mconcat+ [ "limit" Data.=: limit,+ "meshOwner" Data.=: meshOwner,+ "nextToken" Data.=: nextToken+ ]++-- |+--+-- /See:/ 'newListVirtualNodesResponse' smart constructor.+data ListVirtualNodesResponse = ListVirtualNodesResponse'+ { -- | The @nextToken@ value to include in a future @ListVirtualNodes@ request.+ -- When the results of a @ListVirtualNodes@ request exceed @limit@, you can+ -- use this value to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of existing virtual nodes for the specified service mesh.+ virtualNodes :: [VirtualNodeRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualNodesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listVirtualNodesResponse_nextToken' - The @nextToken@ value to include in a future @ListVirtualNodes@ request.+-- When the results of a @ListVirtualNodes@ request exceed @limit@, you can+-- use this value to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'listVirtualNodesResponse_httpStatus' - The response's http status code.+--+-- 'virtualNodes', 'listVirtualNodesResponse_virtualNodes' - The list of existing virtual nodes for the specified service mesh.+newListVirtualNodesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListVirtualNodesResponse+newListVirtualNodesResponse pHttpStatus_ =+ ListVirtualNodesResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ virtualNodes = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListVirtualNodes@ request.+-- When the results of a @ListVirtualNodes@ request exceed @limit@, you can+-- use this value to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+listVirtualNodesResponse_nextToken :: Lens.Lens' ListVirtualNodesResponse (Prelude.Maybe Prelude.Text)+listVirtualNodesResponse_nextToken = Lens.lens (\ListVirtualNodesResponse' {nextToken} -> nextToken) (\s@ListVirtualNodesResponse' {} a -> s {nextToken = a} :: ListVirtualNodesResponse)++-- | The response's http status code.+listVirtualNodesResponse_httpStatus :: Lens.Lens' ListVirtualNodesResponse Prelude.Int+listVirtualNodesResponse_httpStatus = Lens.lens (\ListVirtualNodesResponse' {httpStatus} -> httpStatus) (\s@ListVirtualNodesResponse' {} a -> s {httpStatus = a} :: ListVirtualNodesResponse)++-- | The list of existing virtual nodes for the specified service mesh.+listVirtualNodesResponse_virtualNodes :: Lens.Lens' ListVirtualNodesResponse [VirtualNodeRef]+listVirtualNodesResponse_virtualNodes = Lens.lens (\ListVirtualNodesResponse' {virtualNodes} -> virtualNodes) (\s@ListVirtualNodesResponse' {} a -> s {virtualNodes = a} :: ListVirtualNodesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListVirtualNodesResponse where+ rnf ListVirtualNodesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualNodes
+ gen/Amazonka/AppMesh/ListVirtualRouters.hs view
@@ -0,0 +1,297 @@+{-# 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.AppMesh.ListVirtualRouters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of existing virtual routers in a service mesh.+--+-- This operation returns paginated results.+module Amazonka.AppMesh.ListVirtualRouters+ ( -- * Creating a Request+ ListVirtualRouters (..),+ newListVirtualRouters,++ -- * Request Lenses+ listVirtualRouters_limit,+ listVirtualRouters_meshOwner,+ listVirtualRouters_nextToken,+ listVirtualRouters_meshName,++ -- * Destructuring the Response+ ListVirtualRoutersResponse (..),+ newListVirtualRoutersResponse,++ -- * Response Lenses+ listVirtualRoutersResponse_nextToken,+ listVirtualRoutersResponse_httpStatus,+ listVirtualRoutersResponse_virtualRouters,+ )+where++import Amazonka.AppMesh.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:/ 'newListVirtualRouters' smart constructor.+data ListVirtualRouters = ListVirtualRouters'+ { -- | The maximum number of results returned by @ListVirtualRouters@ in+ -- paginated output. When you use this parameter, @ListVirtualRouters@+ -- returns only @limit@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListVirtualRouters@ request with the+ -- returned @nextToken@ value. This value can be between 1 and 100. If you+ -- don\'t use this parameter, @ListVirtualRouters@ returns up to 100+ -- results and a @nextToken@ value if applicable.+ limit :: Prelude.Maybe Prelude.Natural,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListVirtualRouters@ request where @limit@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to list virtual routers in.+ meshName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualRouters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'limit', 'listVirtualRouters_limit' - The maximum number of results returned by @ListVirtualRouters@ in+-- paginated output. When you use this parameter, @ListVirtualRouters@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListVirtualRouters@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListVirtualRouters@ returns up to 100+-- results and a @nextToken@ value if applicable.+--+-- 'meshOwner', 'listVirtualRouters_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'nextToken', 'listVirtualRouters_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListVirtualRouters@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- 'meshName', 'listVirtualRouters_meshName' - The name of the service mesh to list virtual routers in.+newListVirtualRouters ::+ -- | 'meshName'+ Prelude.Text ->+ ListVirtualRouters+newListVirtualRouters pMeshName_ =+ ListVirtualRouters'+ { limit = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ meshName = pMeshName_+ }++-- | The maximum number of results returned by @ListVirtualRouters@ in+-- paginated output. When you use this parameter, @ListVirtualRouters@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListVirtualRouters@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListVirtualRouters@ returns up to 100+-- results and a @nextToken@ value if applicable.+listVirtualRouters_limit :: Lens.Lens' ListVirtualRouters (Prelude.Maybe Prelude.Natural)+listVirtualRouters_limit = Lens.lens (\ListVirtualRouters' {limit} -> limit) (\s@ListVirtualRouters' {} a -> s {limit = a} :: ListVirtualRouters)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+listVirtualRouters_meshOwner :: Lens.Lens' ListVirtualRouters (Prelude.Maybe Prelude.Text)+listVirtualRouters_meshOwner = Lens.lens (\ListVirtualRouters' {meshOwner} -> meshOwner) (\s@ListVirtualRouters' {} a -> s {meshOwner = a} :: ListVirtualRouters)++-- | The @nextToken@ value returned from a previous paginated+-- @ListVirtualRouters@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+listVirtualRouters_nextToken :: Lens.Lens' ListVirtualRouters (Prelude.Maybe Prelude.Text)+listVirtualRouters_nextToken = Lens.lens (\ListVirtualRouters' {nextToken} -> nextToken) (\s@ListVirtualRouters' {} a -> s {nextToken = a} :: ListVirtualRouters)++-- | The name of the service mesh to list virtual routers in.+listVirtualRouters_meshName :: Lens.Lens' ListVirtualRouters Prelude.Text+listVirtualRouters_meshName = Lens.lens (\ListVirtualRouters' {meshName} -> meshName) (\s@ListVirtualRouters' {} a -> s {meshName = a} :: ListVirtualRouters)++instance Core.AWSPager ListVirtualRouters where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listVirtualRoutersResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^. listVirtualRoutersResponse_virtualRouters+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listVirtualRouters_nextToken+ Lens..~ rs+ Lens.^? listVirtualRoutersResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListVirtualRouters where+ type+ AWSResponse ListVirtualRouters =+ ListVirtualRoutersResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListVirtualRoutersResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "virtualRouters"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListVirtualRouters where+ hashWithSalt _salt ListVirtualRouters' {..} =+ _salt+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` meshName++instance Prelude.NFData ListVirtualRouters where+ rnf ListVirtualRouters' {..} =+ Prelude.rnf limit+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf meshName++instance Data.ToHeaders ListVirtualRouters where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListVirtualRouters where+ toPath ListVirtualRouters' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouters"+ ]++instance Data.ToQuery ListVirtualRouters where+ toQuery ListVirtualRouters' {..} =+ Prelude.mconcat+ [ "limit" Data.=: limit,+ "meshOwner" Data.=: meshOwner,+ "nextToken" Data.=: nextToken+ ]++-- |+--+-- /See:/ 'newListVirtualRoutersResponse' smart constructor.+data ListVirtualRoutersResponse = ListVirtualRoutersResponse'+ { -- | The @nextToken@ value to include in a future @ListVirtualRouters@+ -- request. When the results of a @ListVirtualRouters@ request exceed+ -- @limit@, you can use this value to retrieve the next page of results.+ -- This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of existing virtual routers for the specified service mesh.+ virtualRouters :: [VirtualRouterRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualRoutersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listVirtualRoutersResponse_nextToken' - The @nextToken@ value to include in a future @ListVirtualRouters@+-- request. When the results of a @ListVirtualRouters@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'listVirtualRoutersResponse_httpStatus' - The response's http status code.+--+-- 'virtualRouters', 'listVirtualRoutersResponse_virtualRouters' - The list of existing virtual routers for the specified service mesh.+newListVirtualRoutersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListVirtualRoutersResponse+newListVirtualRoutersResponse pHttpStatus_ =+ ListVirtualRoutersResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ virtualRouters = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListVirtualRouters@+-- request. When the results of a @ListVirtualRouters@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+listVirtualRoutersResponse_nextToken :: Lens.Lens' ListVirtualRoutersResponse (Prelude.Maybe Prelude.Text)+listVirtualRoutersResponse_nextToken = Lens.lens (\ListVirtualRoutersResponse' {nextToken} -> nextToken) (\s@ListVirtualRoutersResponse' {} a -> s {nextToken = a} :: ListVirtualRoutersResponse)++-- | The response's http status code.+listVirtualRoutersResponse_httpStatus :: Lens.Lens' ListVirtualRoutersResponse Prelude.Int+listVirtualRoutersResponse_httpStatus = Lens.lens (\ListVirtualRoutersResponse' {httpStatus} -> httpStatus) (\s@ListVirtualRoutersResponse' {} a -> s {httpStatus = a} :: ListVirtualRoutersResponse)++-- | The list of existing virtual routers for the specified service mesh.+listVirtualRoutersResponse_virtualRouters :: Lens.Lens' ListVirtualRoutersResponse [VirtualRouterRef]+listVirtualRoutersResponse_virtualRouters = Lens.lens (\ListVirtualRoutersResponse' {virtualRouters} -> virtualRouters) (\s@ListVirtualRoutersResponse' {} a -> s {virtualRouters = a} :: ListVirtualRoutersResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListVirtualRoutersResponse where+ rnf ListVirtualRoutersResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualRouters
+ gen/Amazonka/AppMesh/ListVirtualServices.hs view
@@ -0,0 +1,297 @@+{-# 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.AppMesh.ListVirtualServices+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of existing virtual services in a service mesh.+--+-- This operation returns paginated results.+module Amazonka.AppMesh.ListVirtualServices+ ( -- * Creating a Request+ ListVirtualServices (..),+ newListVirtualServices,++ -- * Request Lenses+ listVirtualServices_limit,+ listVirtualServices_meshOwner,+ listVirtualServices_nextToken,+ listVirtualServices_meshName,++ -- * Destructuring the Response+ ListVirtualServicesResponse (..),+ newListVirtualServicesResponse,++ -- * Response Lenses+ listVirtualServicesResponse_nextToken,+ listVirtualServicesResponse_httpStatus,+ listVirtualServicesResponse_virtualServices,+ )+where++import Amazonka.AppMesh.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:/ 'newListVirtualServices' smart constructor.+data ListVirtualServices = ListVirtualServices'+ { -- | The maximum number of results returned by @ListVirtualServices@ in+ -- paginated output. When you use this parameter, @ListVirtualServices@+ -- returns only @limit@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListVirtualServices@ request with the+ -- returned @nextToken@ value. This value can be between 1 and 100. If you+ -- don\'t use this parameter, @ListVirtualServices@ returns up to 100+ -- results and a @nextToken@ value if applicable.+ limit :: Prelude.Maybe Prelude.Natural,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListVirtualServices@ request where @limit@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh to list virtual services in.+ meshName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualServices' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'limit', 'listVirtualServices_limit' - The maximum number of results returned by @ListVirtualServices@ in+-- paginated output. When you use this parameter, @ListVirtualServices@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListVirtualServices@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListVirtualServices@ returns up to 100+-- results and a @nextToken@ value if applicable.+--+-- 'meshOwner', 'listVirtualServices_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'nextToken', 'listVirtualServices_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListVirtualServices@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- 'meshName', 'listVirtualServices_meshName' - The name of the service mesh to list virtual services in.+newListVirtualServices ::+ -- | 'meshName'+ Prelude.Text ->+ ListVirtualServices+newListVirtualServices pMeshName_ =+ ListVirtualServices'+ { limit = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ meshName = pMeshName_+ }++-- | The maximum number of results returned by @ListVirtualServices@ in+-- paginated output. When you use this parameter, @ListVirtualServices@+-- returns only @limit@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListVirtualServices@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListVirtualServices@ returns up to 100+-- results and a @nextToken@ value if applicable.+listVirtualServices_limit :: Lens.Lens' ListVirtualServices (Prelude.Maybe Prelude.Natural)+listVirtualServices_limit = Lens.lens (\ListVirtualServices' {limit} -> limit) (\s@ListVirtualServices' {} a -> s {limit = a} :: ListVirtualServices)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+listVirtualServices_meshOwner :: Lens.Lens' ListVirtualServices (Prelude.Maybe Prelude.Text)+listVirtualServices_meshOwner = Lens.lens (\ListVirtualServices' {meshOwner} -> meshOwner) (\s@ListVirtualServices' {} a -> s {meshOwner = a} :: ListVirtualServices)++-- | The @nextToken@ value returned from a previous paginated+-- @ListVirtualServices@ request where @limit@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+listVirtualServices_nextToken :: Lens.Lens' ListVirtualServices (Prelude.Maybe Prelude.Text)+listVirtualServices_nextToken = Lens.lens (\ListVirtualServices' {nextToken} -> nextToken) (\s@ListVirtualServices' {} a -> s {nextToken = a} :: ListVirtualServices)++-- | The name of the service mesh to list virtual services in.+listVirtualServices_meshName :: Lens.Lens' ListVirtualServices Prelude.Text+listVirtualServices_meshName = Lens.lens (\ListVirtualServices' {meshName} -> meshName) (\s@ListVirtualServices' {} a -> s {meshName = a} :: ListVirtualServices)++instance Core.AWSPager ListVirtualServices where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listVirtualServicesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^. listVirtualServicesResponse_virtualServices+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listVirtualServices_nextToken+ Lens..~ rs+ Lens.^? listVirtualServicesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListVirtualServices where+ type+ AWSResponse ListVirtualServices =+ ListVirtualServicesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListVirtualServicesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "virtualServices"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListVirtualServices where+ hashWithSalt _salt ListVirtualServices' {..} =+ _salt+ `Prelude.hashWithSalt` limit+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` meshName++instance Prelude.NFData ListVirtualServices where+ rnf ListVirtualServices' {..} =+ Prelude.rnf limit+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf meshName++instance Data.ToHeaders ListVirtualServices where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListVirtualServices where+ toPath ListVirtualServices' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualServices"+ ]++instance Data.ToQuery ListVirtualServices where+ toQuery ListVirtualServices' {..} =+ Prelude.mconcat+ [ "limit" Data.=: limit,+ "meshOwner" Data.=: meshOwner,+ "nextToken" Data.=: nextToken+ ]++-- |+--+-- /See:/ 'newListVirtualServicesResponse' smart constructor.+data ListVirtualServicesResponse = ListVirtualServicesResponse'+ { -- | The @nextToken@ value to include in a future @ListVirtualServices@+ -- request. When the results of a @ListVirtualServices@ request exceed+ -- @limit@, you can use this value to retrieve the next page of results.+ -- This value is @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The list of existing virtual services for the specified service mesh.+ virtualServices :: [VirtualServiceRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualServicesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listVirtualServicesResponse_nextToken' - The @nextToken@ value to include in a future @ListVirtualServices@+-- request. When the results of a @ListVirtualServices@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'listVirtualServicesResponse_httpStatus' - The response's http status code.+--+-- 'virtualServices', 'listVirtualServicesResponse_virtualServices' - The list of existing virtual services for the specified service mesh.+newListVirtualServicesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListVirtualServicesResponse+newListVirtualServicesResponse pHttpStatus_ =+ ListVirtualServicesResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ virtualServices = Prelude.mempty+ }++-- | The @nextToken@ value to include in a future @ListVirtualServices@+-- request. When the results of a @ListVirtualServices@ request exceed+-- @limit@, you can use this value to retrieve the next page of results.+-- This value is @null@ when there are no more results to return.+listVirtualServicesResponse_nextToken :: Lens.Lens' ListVirtualServicesResponse (Prelude.Maybe Prelude.Text)+listVirtualServicesResponse_nextToken = Lens.lens (\ListVirtualServicesResponse' {nextToken} -> nextToken) (\s@ListVirtualServicesResponse' {} a -> s {nextToken = a} :: ListVirtualServicesResponse)++-- | The response's http status code.+listVirtualServicesResponse_httpStatus :: Lens.Lens' ListVirtualServicesResponse Prelude.Int+listVirtualServicesResponse_httpStatus = Lens.lens (\ListVirtualServicesResponse' {httpStatus} -> httpStatus) (\s@ListVirtualServicesResponse' {} a -> s {httpStatus = a} :: ListVirtualServicesResponse)++-- | The list of existing virtual services for the specified service mesh.+listVirtualServicesResponse_virtualServices :: Lens.Lens' ListVirtualServicesResponse [VirtualServiceRef]+listVirtualServicesResponse_virtualServices = Lens.lens (\ListVirtualServicesResponse' {virtualServices} -> virtualServices) (\s@ListVirtualServicesResponse' {} a -> s {virtualServices = a} :: ListVirtualServicesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListVirtualServicesResponse where+ rnf ListVirtualServicesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualServices
+ gen/Amazonka/AppMesh/TagResource.hs view
@@ -0,0 +1,176 @@+{-# 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.AppMesh.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)+--+-- Associates the specified tags to a resource with the specified+-- @resourceArn@. If existing tags on a resource aren\'t specified in the+-- request parameters, they aren\'t changed. When a resource is deleted,+-- the tags associated with that resource are also deleted.+module Amazonka.AppMesh.TagResource+ ( -- * Creating a Request+ TagResource (..),+ newTagResource,++ -- * Request Lenses+ tagResource_resourceArn,+ tagResource_tags,++ -- * Destructuring the Response+ TagResourceResponse (..),+ newTagResourceResponse,++ -- * Response Lenses+ tagResourceResponse_httpStatus,+ )+where++import Amazonka.AppMesh.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:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | The Amazon Resource Name (ARN) of the resource to add tags to.+ resourceArn :: Prelude.Text,+ -- | The tags to add to the resource. A tag is an array of key-value pairs.+ -- Tag keys can have a maximum character length of 128 characters, and tag+ -- values can have a maximum length of 256 characters.+ tags :: [TagRef]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource to add tags to.+--+-- 'tags', 'tagResource_tags' - The tags to add to the resource. A tag is an array of key-value pairs.+-- Tag keys can have a maximum character length of 128 characters, and tag+-- values can have a maximum length of 256 characters.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource to add tags to.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to add to the resource. A tag is an array of key-value pairs.+-- Tag keys can have a maximum character length of 128 characters, and tag+-- values can have a maximum length of 256 characters.+tagResource_tags :: Lens.Lens' TagResource [TagRef]+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+ type AWSResponse TagResource = TagResourceResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable TagResource where+ hashWithSalt _salt TagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+ rnf TagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("tags" Data..= tags)]+ )++instance Data.ToPath TagResource where+ toPath = Prelude.const "/v20190125/tag"++instance Data.ToQuery TagResource where+ toQuery TagResource' {..} =+ Prelude.mconcat ["resourceArn" Data.=: resourceArn]++-- |+--+-- /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/AppMesh/Types.hs view
@@ -0,0 +1,1379 @@+{-# 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.AppMesh.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.AppMesh.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _BadRequestException,+ _ConflictException,+ _ForbiddenException,+ _InternalServerErrorException,+ _LimitExceededException,+ _NotFoundException,+ _ResourceInUseException,+ _ServiceUnavailableException,+ _TooManyRequestsException,+ _TooManyTagsException,++ -- * DefaultGatewayRouteRewrite+ DefaultGatewayRouteRewrite (..),++ -- * DnsResponseType+ DnsResponseType (..),++ -- * DurationUnit+ DurationUnit (..),++ -- * EgressFilterType+ EgressFilterType (..),++ -- * GatewayRouteStatusCode+ GatewayRouteStatusCode (..),++ -- * GrpcRetryPolicyEvent+ GrpcRetryPolicyEvent (..),++ -- * HttpMethod+ HttpMethod (..),++ -- * HttpScheme+ HttpScheme (..),++ -- * IpPreference+ IpPreference (..),++ -- * ListenerTlsMode+ ListenerTlsMode (..),++ -- * MeshStatusCode+ MeshStatusCode (..),++ -- * PortProtocol+ PortProtocol (..),++ -- * RouteStatusCode+ RouteStatusCode (..),++ -- * TcpRetryPolicyEvent+ TcpRetryPolicyEvent (..),++ -- * VirtualGatewayListenerTlsMode+ VirtualGatewayListenerTlsMode (..),++ -- * VirtualGatewayPortProtocol+ VirtualGatewayPortProtocol (..),++ -- * VirtualGatewayStatusCode+ VirtualGatewayStatusCode (..),++ -- * VirtualNodeStatusCode+ VirtualNodeStatusCode (..),++ -- * VirtualRouterStatusCode+ VirtualRouterStatusCode (..),++ -- * VirtualServiceStatusCode+ VirtualServiceStatusCode (..),++ -- * AccessLog+ AccessLog (..),+ newAccessLog,+ accessLog_file,++ -- * AwsCloudMapInstanceAttribute+ AwsCloudMapInstanceAttribute (..),+ newAwsCloudMapInstanceAttribute,+ awsCloudMapInstanceAttribute_key,+ awsCloudMapInstanceAttribute_value,++ -- * AwsCloudMapServiceDiscovery+ AwsCloudMapServiceDiscovery (..),+ newAwsCloudMapServiceDiscovery,+ awsCloudMapServiceDiscovery_attributes,+ awsCloudMapServiceDiscovery_ipPreference,+ awsCloudMapServiceDiscovery_namespaceName,+ awsCloudMapServiceDiscovery_serviceName,++ -- * Backend+ Backend (..),+ newBackend,+ backend_virtualService,++ -- * BackendDefaults+ BackendDefaults (..),+ newBackendDefaults,+ backendDefaults_clientPolicy,++ -- * ClientPolicy+ ClientPolicy (..),+ newClientPolicy,+ clientPolicy_tls,++ -- * ClientPolicyTls+ ClientPolicyTls (..),+ newClientPolicyTls,+ clientPolicyTls_certificate,+ clientPolicyTls_enforce,+ clientPolicyTls_ports,+ clientPolicyTls_validation,++ -- * ClientTlsCertificate+ ClientTlsCertificate (..),+ newClientTlsCertificate,+ clientTlsCertificate_file,+ clientTlsCertificate_sds,++ -- * DnsServiceDiscovery+ DnsServiceDiscovery (..),+ newDnsServiceDiscovery,+ dnsServiceDiscovery_ipPreference,+ dnsServiceDiscovery_responseType,+ dnsServiceDiscovery_hostname,++ -- * Duration+ Duration (..),+ newDuration,+ duration_unit,+ duration_value,++ -- * EgressFilter+ EgressFilter (..),+ newEgressFilter,+ egressFilter_type,++ -- * FileAccessLog+ FileAccessLog (..),+ newFileAccessLog,+ fileAccessLog_format,+ fileAccessLog_path,++ -- * GatewayRouteData+ GatewayRouteData (..),+ newGatewayRouteData,+ gatewayRouteData_gatewayRouteName,+ gatewayRouteData_meshName,+ gatewayRouteData_metadata,+ gatewayRouteData_spec,+ gatewayRouteData_status,+ gatewayRouteData_virtualGatewayName,++ -- * GatewayRouteHostnameMatch+ GatewayRouteHostnameMatch (..),+ newGatewayRouteHostnameMatch,+ gatewayRouteHostnameMatch_exact,+ gatewayRouteHostnameMatch_suffix,++ -- * GatewayRouteHostnameRewrite+ GatewayRouteHostnameRewrite (..),+ newGatewayRouteHostnameRewrite,+ gatewayRouteHostnameRewrite_defaultTargetHostname,++ -- * GatewayRouteRef+ GatewayRouteRef (..),+ newGatewayRouteRef,+ gatewayRouteRef_arn,+ gatewayRouteRef_createdAt,+ gatewayRouteRef_gatewayRouteName,+ gatewayRouteRef_lastUpdatedAt,+ gatewayRouteRef_meshName,+ gatewayRouteRef_meshOwner,+ gatewayRouteRef_resourceOwner,+ gatewayRouteRef_version,+ gatewayRouteRef_virtualGatewayName,++ -- * GatewayRouteSpec+ GatewayRouteSpec (..),+ newGatewayRouteSpec,+ gatewayRouteSpec_grpcRoute,+ gatewayRouteSpec_http2Route,+ gatewayRouteSpec_httpRoute,+ gatewayRouteSpec_priority,++ -- * GatewayRouteStatus+ GatewayRouteStatus (..),+ newGatewayRouteStatus,+ gatewayRouteStatus_status,++ -- * GatewayRouteTarget+ GatewayRouteTarget (..),+ newGatewayRouteTarget,+ gatewayRouteTarget_port,+ gatewayRouteTarget_virtualService,++ -- * GatewayRouteVirtualService+ GatewayRouteVirtualService (..),+ newGatewayRouteVirtualService,+ gatewayRouteVirtualService_virtualServiceName,++ -- * GrpcGatewayRoute+ GrpcGatewayRoute (..),+ newGrpcGatewayRoute,+ grpcGatewayRoute_action,+ grpcGatewayRoute_match,++ -- * GrpcGatewayRouteAction+ GrpcGatewayRouteAction (..),+ newGrpcGatewayRouteAction,+ grpcGatewayRouteAction_rewrite,+ grpcGatewayRouteAction_target,++ -- * GrpcGatewayRouteMatch+ GrpcGatewayRouteMatch (..),+ newGrpcGatewayRouteMatch,+ grpcGatewayRouteMatch_hostname,+ grpcGatewayRouteMatch_metadata,+ grpcGatewayRouteMatch_port,+ grpcGatewayRouteMatch_serviceName,++ -- * GrpcGatewayRouteMetadata+ GrpcGatewayRouteMetadata (..),+ newGrpcGatewayRouteMetadata,+ grpcGatewayRouteMetadata_invert,+ grpcGatewayRouteMetadata_match,+ grpcGatewayRouteMetadata_name,++ -- * GrpcGatewayRouteRewrite+ GrpcGatewayRouteRewrite (..),+ newGrpcGatewayRouteRewrite,+ grpcGatewayRouteRewrite_hostname,++ -- * GrpcMetadataMatchMethod+ GrpcMetadataMatchMethod (..),+ newGrpcMetadataMatchMethod,+ grpcMetadataMatchMethod_exact,+ grpcMetadataMatchMethod_prefix,+ grpcMetadataMatchMethod_range,+ grpcMetadataMatchMethod_regex,+ grpcMetadataMatchMethod_suffix,++ -- * GrpcRetryPolicy+ GrpcRetryPolicy (..),+ newGrpcRetryPolicy,+ grpcRetryPolicy_grpcRetryEvents,+ grpcRetryPolicy_httpRetryEvents,+ grpcRetryPolicy_tcpRetryEvents,+ grpcRetryPolicy_maxRetries,+ grpcRetryPolicy_perRetryTimeout,++ -- * GrpcRoute+ GrpcRoute (..),+ newGrpcRoute,+ grpcRoute_retryPolicy,+ grpcRoute_timeout,+ grpcRoute_action,+ grpcRoute_match,++ -- * GrpcRouteAction+ GrpcRouteAction (..),+ newGrpcRouteAction,+ grpcRouteAction_weightedTargets,++ -- * GrpcRouteMatch+ GrpcRouteMatch (..),+ newGrpcRouteMatch,+ grpcRouteMatch_metadata,+ grpcRouteMatch_methodName,+ grpcRouteMatch_port,+ grpcRouteMatch_serviceName,++ -- * GrpcRouteMetadata+ GrpcRouteMetadata (..),+ newGrpcRouteMetadata,+ grpcRouteMetadata_invert,+ grpcRouteMetadata_match,+ grpcRouteMetadata_name,++ -- * GrpcRouteMetadataMatchMethod+ GrpcRouteMetadataMatchMethod (..),+ newGrpcRouteMetadataMatchMethod,+ grpcRouteMetadataMatchMethod_exact,+ grpcRouteMetadataMatchMethod_prefix,+ grpcRouteMetadataMatchMethod_range,+ grpcRouteMetadataMatchMethod_regex,+ grpcRouteMetadataMatchMethod_suffix,++ -- * GrpcTimeout+ GrpcTimeout (..),+ newGrpcTimeout,+ grpcTimeout_idle,+ grpcTimeout_perRequest,++ -- * HeaderMatchMethod+ HeaderMatchMethod (..),+ newHeaderMatchMethod,+ headerMatchMethod_exact,+ headerMatchMethod_prefix,+ headerMatchMethod_range,+ headerMatchMethod_regex,+ headerMatchMethod_suffix,++ -- * HealthCheckPolicy+ HealthCheckPolicy (..),+ newHealthCheckPolicy,+ healthCheckPolicy_path,+ healthCheckPolicy_port,+ healthCheckPolicy_healthyThreshold,+ healthCheckPolicy_intervalMillis,+ healthCheckPolicy_protocol,+ healthCheckPolicy_timeoutMillis,+ healthCheckPolicy_unhealthyThreshold,++ -- * HttpGatewayRoute+ HttpGatewayRoute (..),+ newHttpGatewayRoute,+ httpGatewayRoute_action,+ httpGatewayRoute_match,++ -- * HttpGatewayRouteAction+ HttpGatewayRouteAction (..),+ newHttpGatewayRouteAction,+ httpGatewayRouteAction_rewrite,+ httpGatewayRouteAction_target,++ -- * HttpGatewayRouteHeader+ HttpGatewayRouteHeader (..),+ newHttpGatewayRouteHeader,+ httpGatewayRouteHeader_invert,+ httpGatewayRouteHeader_match,+ httpGatewayRouteHeader_name,++ -- * HttpGatewayRouteMatch+ HttpGatewayRouteMatch (..),+ newHttpGatewayRouteMatch,+ httpGatewayRouteMatch_headers,+ httpGatewayRouteMatch_hostname,+ httpGatewayRouteMatch_method,+ httpGatewayRouteMatch_path,+ httpGatewayRouteMatch_port,+ httpGatewayRouteMatch_prefix,+ httpGatewayRouteMatch_queryParameters,++ -- * HttpGatewayRoutePathRewrite+ HttpGatewayRoutePathRewrite (..),+ newHttpGatewayRoutePathRewrite,+ httpGatewayRoutePathRewrite_exact,++ -- * HttpGatewayRoutePrefixRewrite+ HttpGatewayRoutePrefixRewrite (..),+ newHttpGatewayRoutePrefixRewrite,+ httpGatewayRoutePrefixRewrite_defaultPrefix,+ httpGatewayRoutePrefixRewrite_value,++ -- * HttpGatewayRouteRewrite+ HttpGatewayRouteRewrite (..),+ newHttpGatewayRouteRewrite,+ httpGatewayRouteRewrite_hostname,+ httpGatewayRouteRewrite_path,+ httpGatewayRouteRewrite_prefix,++ -- * HttpPathMatch+ HttpPathMatch (..),+ newHttpPathMatch,+ httpPathMatch_exact,+ httpPathMatch_regex,++ -- * HttpQueryParameter+ HttpQueryParameter (..),+ newHttpQueryParameter,+ httpQueryParameter_match,+ httpQueryParameter_name,++ -- * HttpRetryPolicy+ HttpRetryPolicy (..),+ newHttpRetryPolicy,+ httpRetryPolicy_httpRetryEvents,+ httpRetryPolicy_tcpRetryEvents,+ httpRetryPolicy_maxRetries,+ httpRetryPolicy_perRetryTimeout,++ -- * HttpRoute+ HttpRoute (..),+ newHttpRoute,+ httpRoute_retryPolicy,+ httpRoute_timeout,+ httpRoute_action,+ httpRoute_match,++ -- * HttpRouteAction+ HttpRouteAction (..),+ newHttpRouteAction,+ httpRouteAction_weightedTargets,++ -- * HttpRouteHeader+ HttpRouteHeader (..),+ newHttpRouteHeader,+ httpRouteHeader_invert,+ httpRouteHeader_match,+ httpRouteHeader_name,++ -- * HttpRouteMatch+ HttpRouteMatch (..),+ newHttpRouteMatch,+ httpRouteMatch_headers,+ httpRouteMatch_method,+ httpRouteMatch_path,+ httpRouteMatch_port,+ httpRouteMatch_prefix,+ httpRouteMatch_queryParameters,+ httpRouteMatch_scheme,++ -- * HttpTimeout+ HttpTimeout (..),+ newHttpTimeout,+ httpTimeout_idle,+ httpTimeout_perRequest,++ -- * JsonFormatRef+ JsonFormatRef (..),+ newJsonFormatRef,+ jsonFormatRef_key,+ jsonFormatRef_value,++ -- * Listener+ Listener (..),+ newListener,+ listener_connectionPool,+ listener_healthCheck,+ listener_outlierDetection,+ listener_timeout,+ listener_tls,+ listener_portMapping,++ -- * ListenerTimeout+ ListenerTimeout (..),+ newListenerTimeout,+ listenerTimeout_grpc,+ listenerTimeout_http,+ listenerTimeout_http2,+ listenerTimeout_tcp,++ -- * ListenerTls+ ListenerTls (..),+ newListenerTls,+ listenerTls_validation,+ listenerTls_certificate,+ listenerTls_mode,++ -- * ListenerTlsAcmCertificate+ ListenerTlsAcmCertificate (..),+ newListenerTlsAcmCertificate,+ listenerTlsAcmCertificate_certificateArn,++ -- * ListenerTlsCertificate+ ListenerTlsCertificate (..),+ newListenerTlsCertificate,+ listenerTlsCertificate_acm,+ listenerTlsCertificate_file,+ listenerTlsCertificate_sds,++ -- * ListenerTlsFileCertificate+ ListenerTlsFileCertificate (..),+ newListenerTlsFileCertificate,+ listenerTlsFileCertificate_certificateChain,+ listenerTlsFileCertificate_privateKey,++ -- * ListenerTlsSdsCertificate+ ListenerTlsSdsCertificate (..),+ newListenerTlsSdsCertificate,+ listenerTlsSdsCertificate_secretName,++ -- * ListenerTlsValidationContext+ ListenerTlsValidationContext (..),+ newListenerTlsValidationContext,+ listenerTlsValidationContext_subjectAlternativeNames,+ listenerTlsValidationContext_trust,++ -- * ListenerTlsValidationContextTrust+ ListenerTlsValidationContextTrust (..),+ newListenerTlsValidationContextTrust,+ listenerTlsValidationContextTrust_file,+ listenerTlsValidationContextTrust_sds,++ -- * Logging+ Logging (..),+ newLogging,+ logging_accessLog,++ -- * LoggingFormat+ LoggingFormat (..),+ newLoggingFormat,+ loggingFormat_json,+ loggingFormat_text,++ -- * MatchRange+ MatchRange (..),+ newMatchRange,+ matchRange_end,+ matchRange_start,++ -- * MeshData+ MeshData (..),+ newMeshData,+ meshData_meshName,+ meshData_metadata,+ meshData_spec,+ meshData_status,++ -- * MeshRef+ MeshRef (..),+ newMeshRef,+ meshRef_arn,+ meshRef_createdAt,+ meshRef_lastUpdatedAt,+ meshRef_meshName,+ meshRef_meshOwner,+ meshRef_resourceOwner,+ meshRef_version,++ -- * MeshServiceDiscovery+ MeshServiceDiscovery (..),+ newMeshServiceDiscovery,+ meshServiceDiscovery_ipPreference,++ -- * MeshSpec+ MeshSpec (..),+ newMeshSpec,+ meshSpec_egressFilter,+ meshSpec_serviceDiscovery,++ -- * MeshStatus+ MeshStatus (..),+ newMeshStatus,+ meshStatus_status,++ -- * OutlierDetection+ OutlierDetection (..),+ newOutlierDetection,+ outlierDetection_baseEjectionDuration,+ outlierDetection_interval,+ outlierDetection_maxEjectionPercent,+ outlierDetection_maxServerErrors,++ -- * PortMapping+ PortMapping (..),+ newPortMapping,+ portMapping_port,+ portMapping_protocol,++ -- * QueryParameterMatch+ QueryParameterMatch (..),+ newQueryParameterMatch,+ queryParameterMatch_exact,++ -- * ResourceMetadata+ ResourceMetadata (..),+ newResourceMetadata,+ resourceMetadata_arn,+ resourceMetadata_createdAt,+ resourceMetadata_lastUpdatedAt,+ resourceMetadata_meshOwner,+ resourceMetadata_resourceOwner,+ resourceMetadata_uid,+ resourceMetadata_version,++ -- * RouteData+ RouteData (..),+ newRouteData,+ routeData_meshName,+ routeData_metadata,+ routeData_routeName,+ routeData_spec,+ routeData_status,+ routeData_virtualRouterName,++ -- * RouteRef+ RouteRef (..),+ newRouteRef,+ routeRef_arn,+ routeRef_createdAt,+ routeRef_lastUpdatedAt,+ routeRef_meshName,+ routeRef_meshOwner,+ routeRef_resourceOwner,+ routeRef_routeName,+ routeRef_version,+ routeRef_virtualRouterName,++ -- * RouteSpec+ RouteSpec (..),+ newRouteSpec,+ routeSpec_grpcRoute,+ routeSpec_http2Route,+ routeSpec_httpRoute,+ routeSpec_priority,+ routeSpec_tcpRoute,++ -- * RouteStatus+ RouteStatus (..),+ newRouteStatus,+ routeStatus_status,++ -- * ServiceDiscovery+ ServiceDiscovery (..),+ newServiceDiscovery,+ serviceDiscovery_awsCloudMap,+ serviceDiscovery_dns,++ -- * SubjectAlternativeNameMatchers+ SubjectAlternativeNameMatchers (..),+ newSubjectAlternativeNameMatchers,+ subjectAlternativeNameMatchers_exact,++ -- * SubjectAlternativeNames+ SubjectAlternativeNames (..),+ newSubjectAlternativeNames,+ subjectAlternativeNames_match,++ -- * TagRef+ TagRef (..),+ newTagRef,+ tagRef_key,+ tagRef_value,++ -- * TcpRoute+ TcpRoute (..),+ newTcpRoute,+ tcpRoute_match,+ tcpRoute_timeout,+ tcpRoute_action,++ -- * TcpRouteAction+ TcpRouteAction (..),+ newTcpRouteAction,+ tcpRouteAction_weightedTargets,++ -- * TcpRouteMatch+ TcpRouteMatch (..),+ newTcpRouteMatch,+ tcpRouteMatch_port,++ -- * TcpTimeout+ TcpTimeout (..),+ newTcpTimeout,+ tcpTimeout_idle,++ -- * TlsValidationContext+ TlsValidationContext (..),+ newTlsValidationContext,+ tlsValidationContext_subjectAlternativeNames,+ tlsValidationContext_trust,++ -- * TlsValidationContextAcmTrust+ TlsValidationContextAcmTrust (..),+ newTlsValidationContextAcmTrust,+ tlsValidationContextAcmTrust_certificateAuthorityArns,++ -- * TlsValidationContextFileTrust+ TlsValidationContextFileTrust (..),+ newTlsValidationContextFileTrust,+ tlsValidationContextFileTrust_certificateChain,++ -- * TlsValidationContextSdsTrust+ TlsValidationContextSdsTrust (..),+ newTlsValidationContextSdsTrust,+ tlsValidationContextSdsTrust_secretName,++ -- * TlsValidationContextTrust+ TlsValidationContextTrust (..),+ newTlsValidationContextTrust,+ tlsValidationContextTrust_acm,+ tlsValidationContextTrust_file,+ tlsValidationContextTrust_sds,++ -- * VirtualGatewayAccessLog+ VirtualGatewayAccessLog (..),+ newVirtualGatewayAccessLog,+ virtualGatewayAccessLog_file,++ -- * VirtualGatewayBackendDefaults+ VirtualGatewayBackendDefaults (..),+ newVirtualGatewayBackendDefaults,+ virtualGatewayBackendDefaults_clientPolicy,++ -- * VirtualGatewayClientPolicy+ VirtualGatewayClientPolicy (..),+ newVirtualGatewayClientPolicy,+ virtualGatewayClientPolicy_tls,++ -- * VirtualGatewayClientPolicyTls+ VirtualGatewayClientPolicyTls (..),+ newVirtualGatewayClientPolicyTls,+ virtualGatewayClientPolicyTls_certificate,+ virtualGatewayClientPolicyTls_enforce,+ virtualGatewayClientPolicyTls_ports,+ virtualGatewayClientPolicyTls_validation,++ -- * VirtualGatewayClientTlsCertificate+ VirtualGatewayClientTlsCertificate (..),+ newVirtualGatewayClientTlsCertificate,+ virtualGatewayClientTlsCertificate_file,+ virtualGatewayClientTlsCertificate_sds,++ -- * VirtualGatewayConnectionPool+ VirtualGatewayConnectionPool (..),+ newVirtualGatewayConnectionPool,+ virtualGatewayConnectionPool_grpc,+ virtualGatewayConnectionPool_http,+ virtualGatewayConnectionPool_http2,++ -- * VirtualGatewayData+ VirtualGatewayData (..),+ newVirtualGatewayData,+ virtualGatewayData_meshName,+ virtualGatewayData_metadata,+ virtualGatewayData_spec,+ virtualGatewayData_status,+ virtualGatewayData_virtualGatewayName,++ -- * VirtualGatewayFileAccessLog+ VirtualGatewayFileAccessLog (..),+ newVirtualGatewayFileAccessLog,+ virtualGatewayFileAccessLog_format,+ virtualGatewayFileAccessLog_path,++ -- * VirtualGatewayGrpcConnectionPool+ VirtualGatewayGrpcConnectionPool (..),+ newVirtualGatewayGrpcConnectionPool,+ virtualGatewayGrpcConnectionPool_maxRequests,++ -- * VirtualGatewayHealthCheckPolicy+ VirtualGatewayHealthCheckPolicy (..),+ newVirtualGatewayHealthCheckPolicy,+ virtualGatewayHealthCheckPolicy_path,+ virtualGatewayHealthCheckPolicy_port,+ virtualGatewayHealthCheckPolicy_healthyThreshold,+ virtualGatewayHealthCheckPolicy_intervalMillis,+ virtualGatewayHealthCheckPolicy_protocol,+ virtualGatewayHealthCheckPolicy_timeoutMillis,+ virtualGatewayHealthCheckPolicy_unhealthyThreshold,++ -- * VirtualGatewayHttp2ConnectionPool+ VirtualGatewayHttp2ConnectionPool (..),+ newVirtualGatewayHttp2ConnectionPool,+ virtualGatewayHttp2ConnectionPool_maxRequests,++ -- * VirtualGatewayHttpConnectionPool+ VirtualGatewayHttpConnectionPool (..),+ newVirtualGatewayHttpConnectionPool,+ virtualGatewayHttpConnectionPool_maxPendingRequests,+ virtualGatewayHttpConnectionPool_maxConnections,++ -- * VirtualGatewayListener+ VirtualGatewayListener (..),+ newVirtualGatewayListener,+ virtualGatewayListener_connectionPool,+ virtualGatewayListener_healthCheck,+ virtualGatewayListener_tls,+ virtualGatewayListener_portMapping,++ -- * VirtualGatewayListenerTls+ VirtualGatewayListenerTls (..),+ newVirtualGatewayListenerTls,+ virtualGatewayListenerTls_validation,+ virtualGatewayListenerTls_certificate,+ virtualGatewayListenerTls_mode,++ -- * VirtualGatewayListenerTlsAcmCertificate+ VirtualGatewayListenerTlsAcmCertificate (..),+ newVirtualGatewayListenerTlsAcmCertificate,+ virtualGatewayListenerTlsAcmCertificate_certificateArn,++ -- * VirtualGatewayListenerTlsCertificate+ VirtualGatewayListenerTlsCertificate (..),+ newVirtualGatewayListenerTlsCertificate,+ virtualGatewayListenerTlsCertificate_acm,+ virtualGatewayListenerTlsCertificate_file,+ virtualGatewayListenerTlsCertificate_sds,++ -- * VirtualGatewayListenerTlsFileCertificate+ VirtualGatewayListenerTlsFileCertificate (..),+ newVirtualGatewayListenerTlsFileCertificate,+ virtualGatewayListenerTlsFileCertificate_certificateChain,+ virtualGatewayListenerTlsFileCertificate_privateKey,++ -- * VirtualGatewayListenerTlsSdsCertificate+ VirtualGatewayListenerTlsSdsCertificate (..),+ newVirtualGatewayListenerTlsSdsCertificate,+ virtualGatewayListenerTlsSdsCertificate_secretName,++ -- * VirtualGatewayListenerTlsValidationContext+ VirtualGatewayListenerTlsValidationContext (..),+ newVirtualGatewayListenerTlsValidationContext,+ virtualGatewayListenerTlsValidationContext_subjectAlternativeNames,+ virtualGatewayListenerTlsValidationContext_trust,++ -- * VirtualGatewayListenerTlsValidationContextTrust+ VirtualGatewayListenerTlsValidationContextTrust (..),+ newVirtualGatewayListenerTlsValidationContextTrust,+ virtualGatewayListenerTlsValidationContextTrust_file,+ virtualGatewayListenerTlsValidationContextTrust_sds,++ -- * VirtualGatewayLogging+ VirtualGatewayLogging (..),+ newVirtualGatewayLogging,+ virtualGatewayLogging_accessLog,++ -- * VirtualGatewayPortMapping+ VirtualGatewayPortMapping (..),+ newVirtualGatewayPortMapping,+ virtualGatewayPortMapping_port,+ virtualGatewayPortMapping_protocol,++ -- * VirtualGatewayRef+ VirtualGatewayRef (..),+ newVirtualGatewayRef,+ virtualGatewayRef_arn,+ virtualGatewayRef_createdAt,+ virtualGatewayRef_lastUpdatedAt,+ virtualGatewayRef_meshName,+ virtualGatewayRef_meshOwner,+ virtualGatewayRef_resourceOwner,+ virtualGatewayRef_version,+ virtualGatewayRef_virtualGatewayName,++ -- * VirtualGatewaySpec+ VirtualGatewaySpec (..),+ newVirtualGatewaySpec,+ virtualGatewaySpec_backendDefaults,+ virtualGatewaySpec_logging,+ virtualGatewaySpec_listeners,++ -- * VirtualGatewayStatus+ VirtualGatewayStatus (..),+ newVirtualGatewayStatus,+ virtualGatewayStatus_status,++ -- * VirtualGatewayTlsValidationContext+ VirtualGatewayTlsValidationContext (..),+ newVirtualGatewayTlsValidationContext,+ virtualGatewayTlsValidationContext_subjectAlternativeNames,+ virtualGatewayTlsValidationContext_trust,++ -- * VirtualGatewayTlsValidationContextAcmTrust+ VirtualGatewayTlsValidationContextAcmTrust (..),+ newVirtualGatewayTlsValidationContextAcmTrust,+ virtualGatewayTlsValidationContextAcmTrust_certificateAuthorityArns,++ -- * VirtualGatewayTlsValidationContextFileTrust+ VirtualGatewayTlsValidationContextFileTrust (..),+ newVirtualGatewayTlsValidationContextFileTrust,+ virtualGatewayTlsValidationContextFileTrust_certificateChain,++ -- * VirtualGatewayTlsValidationContextSdsTrust+ VirtualGatewayTlsValidationContextSdsTrust (..),+ newVirtualGatewayTlsValidationContextSdsTrust,+ virtualGatewayTlsValidationContextSdsTrust_secretName,++ -- * VirtualGatewayTlsValidationContextTrust+ VirtualGatewayTlsValidationContextTrust (..),+ newVirtualGatewayTlsValidationContextTrust,+ virtualGatewayTlsValidationContextTrust_acm,+ virtualGatewayTlsValidationContextTrust_file,+ virtualGatewayTlsValidationContextTrust_sds,++ -- * VirtualNodeConnectionPool+ VirtualNodeConnectionPool (..),+ newVirtualNodeConnectionPool,+ virtualNodeConnectionPool_grpc,+ virtualNodeConnectionPool_http,+ virtualNodeConnectionPool_http2,+ virtualNodeConnectionPool_tcp,++ -- * VirtualNodeData+ VirtualNodeData (..),+ newVirtualNodeData,+ virtualNodeData_meshName,+ virtualNodeData_metadata,+ virtualNodeData_spec,+ virtualNodeData_status,+ virtualNodeData_virtualNodeName,++ -- * VirtualNodeGrpcConnectionPool+ VirtualNodeGrpcConnectionPool (..),+ newVirtualNodeGrpcConnectionPool,+ virtualNodeGrpcConnectionPool_maxRequests,++ -- * VirtualNodeHttp2ConnectionPool+ VirtualNodeHttp2ConnectionPool (..),+ newVirtualNodeHttp2ConnectionPool,+ virtualNodeHttp2ConnectionPool_maxRequests,++ -- * VirtualNodeHttpConnectionPool+ VirtualNodeHttpConnectionPool (..),+ newVirtualNodeHttpConnectionPool,+ virtualNodeHttpConnectionPool_maxPendingRequests,+ virtualNodeHttpConnectionPool_maxConnections,++ -- * VirtualNodeRef+ VirtualNodeRef (..),+ newVirtualNodeRef,+ virtualNodeRef_arn,+ virtualNodeRef_createdAt,+ virtualNodeRef_lastUpdatedAt,+ virtualNodeRef_meshName,+ virtualNodeRef_meshOwner,+ virtualNodeRef_resourceOwner,+ virtualNodeRef_version,+ virtualNodeRef_virtualNodeName,++ -- * VirtualNodeServiceProvider+ VirtualNodeServiceProvider (..),+ newVirtualNodeServiceProvider,+ virtualNodeServiceProvider_virtualNodeName,++ -- * VirtualNodeSpec+ VirtualNodeSpec (..),+ newVirtualNodeSpec,+ virtualNodeSpec_backendDefaults,+ virtualNodeSpec_backends,+ virtualNodeSpec_listeners,+ virtualNodeSpec_logging,+ virtualNodeSpec_serviceDiscovery,++ -- * VirtualNodeStatus+ VirtualNodeStatus (..),+ newVirtualNodeStatus,+ virtualNodeStatus_status,++ -- * VirtualNodeTcpConnectionPool+ VirtualNodeTcpConnectionPool (..),+ newVirtualNodeTcpConnectionPool,+ virtualNodeTcpConnectionPool_maxConnections,++ -- * VirtualRouterData+ VirtualRouterData (..),+ newVirtualRouterData,+ virtualRouterData_meshName,+ virtualRouterData_metadata,+ virtualRouterData_spec,+ virtualRouterData_status,+ virtualRouterData_virtualRouterName,++ -- * VirtualRouterListener+ VirtualRouterListener (..),+ newVirtualRouterListener,+ virtualRouterListener_portMapping,++ -- * VirtualRouterRef+ VirtualRouterRef (..),+ newVirtualRouterRef,+ virtualRouterRef_arn,+ virtualRouterRef_createdAt,+ virtualRouterRef_lastUpdatedAt,+ virtualRouterRef_meshName,+ virtualRouterRef_meshOwner,+ virtualRouterRef_resourceOwner,+ virtualRouterRef_version,+ virtualRouterRef_virtualRouterName,++ -- * VirtualRouterServiceProvider+ VirtualRouterServiceProvider (..),+ newVirtualRouterServiceProvider,+ virtualRouterServiceProvider_virtualRouterName,++ -- * VirtualRouterSpec+ VirtualRouterSpec (..),+ newVirtualRouterSpec,+ virtualRouterSpec_listeners,++ -- * VirtualRouterStatus+ VirtualRouterStatus (..),+ newVirtualRouterStatus,+ virtualRouterStatus_status,++ -- * VirtualServiceBackend+ VirtualServiceBackend (..),+ newVirtualServiceBackend,+ virtualServiceBackend_clientPolicy,+ virtualServiceBackend_virtualServiceName,++ -- * VirtualServiceData+ VirtualServiceData (..),+ newVirtualServiceData,+ virtualServiceData_meshName,+ virtualServiceData_metadata,+ virtualServiceData_spec,+ virtualServiceData_status,+ virtualServiceData_virtualServiceName,++ -- * VirtualServiceProvider+ VirtualServiceProvider (..),+ newVirtualServiceProvider,+ virtualServiceProvider_virtualNode,+ virtualServiceProvider_virtualRouter,++ -- * VirtualServiceRef+ VirtualServiceRef (..),+ newVirtualServiceRef,+ virtualServiceRef_arn,+ virtualServiceRef_createdAt,+ virtualServiceRef_lastUpdatedAt,+ virtualServiceRef_meshName,+ virtualServiceRef_meshOwner,+ virtualServiceRef_resourceOwner,+ virtualServiceRef_version,+ virtualServiceRef_virtualServiceName,++ -- * VirtualServiceSpec+ VirtualServiceSpec (..),+ newVirtualServiceSpec,+ virtualServiceSpec_provider,++ -- * VirtualServiceStatus+ VirtualServiceStatus (..),+ newVirtualServiceStatus,+ virtualServiceStatus_status,++ -- * WeightedTarget+ WeightedTarget (..),+ newWeightedTarget,+ weightedTarget_port,+ weightedTarget_virtualNode,+ weightedTarget_weight,+ )+where++import Amazonka.AppMesh.Types.AccessLog+import Amazonka.AppMesh.Types.AwsCloudMapInstanceAttribute+import Amazonka.AppMesh.Types.AwsCloudMapServiceDiscovery+import Amazonka.AppMesh.Types.Backend+import Amazonka.AppMesh.Types.BackendDefaults+import Amazonka.AppMesh.Types.ClientPolicy+import Amazonka.AppMesh.Types.ClientPolicyTls+import Amazonka.AppMesh.Types.ClientTlsCertificate+import Amazonka.AppMesh.Types.DefaultGatewayRouteRewrite+import Amazonka.AppMesh.Types.DnsResponseType+import Amazonka.AppMesh.Types.DnsServiceDiscovery+import Amazonka.AppMesh.Types.Duration+import Amazonka.AppMesh.Types.DurationUnit+import Amazonka.AppMesh.Types.EgressFilter+import Amazonka.AppMesh.Types.EgressFilterType+import Amazonka.AppMesh.Types.FileAccessLog+import Amazonka.AppMesh.Types.GatewayRouteData+import Amazonka.AppMesh.Types.GatewayRouteHostnameMatch+import Amazonka.AppMesh.Types.GatewayRouteHostnameRewrite+import Amazonka.AppMesh.Types.GatewayRouteRef+import Amazonka.AppMesh.Types.GatewayRouteSpec+import Amazonka.AppMesh.Types.GatewayRouteStatus+import Amazonka.AppMesh.Types.GatewayRouteStatusCode+import Amazonka.AppMesh.Types.GatewayRouteTarget+import Amazonka.AppMesh.Types.GatewayRouteVirtualService+import Amazonka.AppMesh.Types.GrpcGatewayRoute+import Amazonka.AppMesh.Types.GrpcGatewayRouteAction+import Amazonka.AppMesh.Types.GrpcGatewayRouteMatch+import Amazonka.AppMesh.Types.GrpcGatewayRouteMetadata+import Amazonka.AppMesh.Types.GrpcGatewayRouteRewrite+import Amazonka.AppMesh.Types.GrpcMetadataMatchMethod+import Amazonka.AppMesh.Types.GrpcRetryPolicy+import Amazonka.AppMesh.Types.GrpcRetryPolicyEvent+import Amazonka.AppMesh.Types.GrpcRoute+import Amazonka.AppMesh.Types.GrpcRouteAction+import Amazonka.AppMesh.Types.GrpcRouteMatch+import Amazonka.AppMesh.Types.GrpcRouteMetadata+import Amazonka.AppMesh.Types.GrpcRouteMetadataMatchMethod+import Amazonka.AppMesh.Types.GrpcTimeout+import Amazonka.AppMesh.Types.HeaderMatchMethod+import Amazonka.AppMesh.Types.HealthCheckPolicy+import Amazonka.AppMesh.Types.HttpGatewayRoute+import Amazonka.AppMesh.Types.HttpGatewayRouteAction+import Amazonka.AppMesh.Types.HttpGatewayRouteHeader+import Amazonka.AppMesh.Types.HttpGatewayRouteMatch+import Amazonka.AppMesh.Types.HttpGatewayRoutePathRewrite+import Amazonka.AppMesh.Types.HttpGatewayRoutePrefixRewrite+import Amazonka.AppMesh.Types.HttpGatewayRouteRewrite+import Amazonka.AppMesh.Types.HttpMethod+import Amazonka.AppMesh.Types.HttpPathMatch+import Amazonka.AppMesh.Types.HttpQueryParameter+import Amazonka.AppMesh.Types.HttpRetryPolicy+import Amazonka.AppMesh.Types.HttpRoute+import Amazonka.AppMesh.Types.HttpRouteAction+import Amazonka.AppMesh.Types.HttpRouteHeader+import Amazonka.AppMesh.Types.HttpRouteMatch+import Amazonka.AppMesh.Types.HttpScheme+import Amazonka.AppMesh.Types.HttpTimeout+import Amazonka.AppMesh.Types.IpPreference+import Amazonka.AppMesh.Types.JsonFormatRef+import Amazonka.AppMesh.Types.Listener+import Amazonka.AppMesh.Types.ListenerTimeout+import Amazonka.AppMesh.Types.ListenerTls+import Amazonka.AppMesh.Types.ListenerTlsAcmCertificate+import Amazonka.AppMesh.Types.ListenerTlsCertificate+import Amazonka.AppMesh.Types.ListenerTlsFileCertificate+import Amazonka.AppMesh.Types.ListenerTlsMode+import Amazonka.AppMesh.Types.ListenerTlsSdsCertificate+import Amazonka.AppMesh.Types.ListenerTlsValidationContext+import Amazonka.AppMesh.Types.ListenerTlsValidationContextTrust+import Amazonka.AppMesh.Types.Logging+import Amazonka.AppMesh.Types.LoggingFormat+import Amazonka.AppMesh.Types.MatchRange+import Amazonka.AppMesh.Types.MeshData+import Amazonka.AppMesh.Types.MeshRef+import Amazonka.AppMesh.Types.MeshServiceDiscovery+import Amazonka.AppMesh.Types.MeshSpec+import Amazonka.AppMesh.Types.MeshStatus+import Amazonka.AppMesh.Types.MeshStatusCode+import Amazonka.AppMesh.Types.OutlierDetection+import Amazonka.AppMesh.Types.PortMapping+import Amazonka.AppMesh.Types.PortProtocol+import Amazonka.AppMesh.Types.QueryParameterMatch+import Amazonka.AppMesh.Types.ResourceMetadata+import Amazonka.AppMesh.Types.RouteData+import Amazonka.AppMesh.Types.RouteRef+import Amazonka.AppMesh.Types.RouteSpec+import Amazonka.AppMesh.Types.RouteStatus+import Amazonka.AppMesh.Types.RouteStatusCode+import Amazonka.AppMesh.Types.ServiceDiscovery+import Amazonka.AppMesh.Types.SubjectAlternativeNameMatchers+import Amazonka.AppMesh.Types.SubjectAlternativeNames+import Amazonka.AppMesh.Types.TagRef+import Amazonka.AppMesh.Types.TcpRetryPolicyEvent+import Amazonka.AppMesh.Types.TcpRoute+import Amazonka.AppMesh.Types.TcpRouteAction+import Amazonka.AppMesh.Types.TcpRouteMatch+import Amazonka.AppMesh.Types.TcpTimeout+import Amazonka.AppMesh.Types.TlsValidationContext+import Amazonka.AppMesh.Types.TlsValidationContextAcmTrust+import Amazonka.AppMesh.Types.TlsValidationContextFileTrust+import Amazonka.AppMesh.Types.TlsValidationContextSdsTrust+import Amazonka.AppMesh.Types.TlsValidationContextTrust+import Amazonka.AppMesh.Types.VirtualGatewayAccessLog+import Amazonka.AppMesh.Types.VirtualGatewayBackendDefaults+import Amazonka.AppMesh.Types.VirtualGatewayClientPolicy+import Amazonka.AppMesh.Types.VirtualGatewayClientPolicyTls+import Amazonka.AppMesh.Types.VirtualGatewayClientTlsCertificate+import Amazonka.AppMesh.Types.VirtualGatewayConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayData+import Amazonka.AppMesh.Types.VirtualGatewayFileAccessLog+import Amazonka.AppMesh.Types.VirtualGatewayGrpcConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayHealthCheckPolicy+import Amazonka.AppMesh.Types.VirtualGatewayHttp2ConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayHttpConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayListener+import Amazonka.AppMesh.Types.VirtualGatewayListenerTls+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsAcmCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsFileCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsMode+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsSdsCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContext+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContextTrust+import Amazonka.AppMesh.Types.VirtualGatewayLogging+import Amazonka.AppMesh.Types.VirtualGatewayPortMapping+import Amazonka.AppMesh.Types.VirtualGatewayPortProtocol+import Amazonka.AppMesh.Types.VirtualGatewayRef+import Amazonka.AppMesh.Types.VirtualGatewaySpec+import Amazonka.AppMesh.Types.VirtualGatewayStatus+import Amazonka.AppMesh.Types.VirtualGatewayStatusCode+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContext+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextAcmTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextFileTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextSdsTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextTrust+import Amazonka.AppMesh.Types.VirtualNodeConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeData+import Amazonka.AppMesh.Types.VirtualNodeGrpcConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeHttp2ConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeHttpConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeRef+import Amazonka.AppMesh.Types.VirtualNodeServiceProvider+import Amazonka.AppMesh.Types.VirtualNodeSpec+import Amazonka.AppMesh.Types.VirtualNodeStatus+import Amazonka.AppMesh.Types.VirtualNodeStatusCode+import Amazonka.AppMesh.Types.VirtualNodeTcpConnectionPool+import Amazonka.AppMesh.Types.VirtualRouterData+import Amazonka.AppMesh.Types.VirtualRouterListener+import Amazonka.AppMesh.Types.VirtualRouterRef+import Amazonka.AppMesh.Types.VirtualRouterServiceProvider+import Amazonka.AppMesh.Types.VirtualRouterSpec+import Amazonka.AppMesh.Types.VirtualRouterStatus+import Amazonka.AppMesh.Types.VirtualRouterStatusCode+import Amazonka.AppMesh.Types.VirtualServiceBackend+import Amazonka.AppMesh.Types.VirtualServiceData+import Amazonka.AppMesh.Types.VirtualServiceProvider+import Amazonka.AppMesh.Types.VirtualServiceRef+import Amazonka.AppMesh.Types.VirtualServiceSpec+import Amazonka.AppMesh.Types.VirtualServiceStatus+import Amazonka.AppMesh.Types.VirtualServiceStatusCode+import Amazonka.AppMesh.Types.WeightedTarget+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 @2019-01-25@ of the Amazon App Mesh SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "AppMesh",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "appmesh",+ Core.signingName = "appmesh",+ Core.version = "2019-01-25",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "AppMesh",+ Core.retry = retry+ }+ where+ retry =+ Core.Exponential+ { Core.base = 5.0e-2,+ Core.growth = 2,+ Core.attempts = 5,+ Core.check = check+ }+ check e+ | Lens.has (Core.hasStatus 502) e =+ Prelude.Just "bad_gateway"+ | Lens.has (Core.hasStatus 504) e =+ Prelude.Just "gateway_timeout"+ | Lens.has (Core.hasStatus 500) e =+ Prelude.Just "general_server_error"+ | Lens.has (Core.hasStatus 509) e =+ Prelude.Just "limit_exceeded"+ | Lens.has+ ( Core.hasCode "RequestThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "request_throttled_exception"+ | Lens.has (Core.hasStatus 503) e =+ Prelude.Just "service_unavailable"+ | Lens.has+ ( Core.hasCode "ThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttled_exception"+ | Lens.has+ ( Core.hasCode "Throttling"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling"+ | Lens.has+ ( Core.hasCode "ThrottlingException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling_exception"+ | Lens.has+ ( Core.hasCode+ "ProvisionedThroughputExceededException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throughput_exceeded"+ | Lens.has (Core.hasStatus 429) e =+ Prelude.Just "too_many_requests"+ | Prelude.otherwise = Prelude.Nothing++-- | The request syntax was malformed. Check your request syntax and try+-- again.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+ Core._MatchServiceError+ defaultService+ "BadRequestException"+ Prelude.. Core.hasStatus 400++-- | The request contains a client token that was used for a previous update+-- resource call with different specifications. Try the request again with+-- a new client token.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"+ Prelude.. Core.hasStatus 409++-- | You don\'t have permissions to perform this action.+_ForbiddenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ForbiddenException =+ Core._MatchServiceError+ defaultService+ "ForbiddenException"+ Prelude.. Core.hasStatus 403++-- | The request processing has failed because of an unknown error,+-- exception, or failure.+_InternalServerErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerErrorException =+ Core._MatchServiceError+ defaultService+ "InternalServerErrorException"+ Prelude.. Core.hasStatus 500++-- | You have exceeded a service limit for your account. For more+-- information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html Service Limits>+-- in the /App Mesh User Guide/.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+ Core._MatchServiceError+ defaultService+ "LimitExceededException"+ Prelude.. Core.hasStatus 400++-- | The specified resource doesn\'t exist. Check your request syntax and try+-- again.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+ Core._MatchServiceError+ defaultService+ "NotFoundException"+ Prelude.. Core.hasStatus 404++-- | You can\'t delete the specified resource because it\'s in use or+-- required by another resource.+_ResourceInUseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceInUseException =+ Core._MatchServiceError+ defaultService+ "ResourceInUseException"+ Prelude.. Core.hasStatus 409++-- | The request has failed due to a temporary failure of the service.+_ServiceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceUnavailableException =+ Core._MatchServiceError+ defaultService+ "ServiceUnavailableException"+ Prelude.. Core.hasStatus 503++-- | The maximum request rate permitted by the App Mesh APIs has been+-- exceeded for your account. For best results, use an increasing or+-- variable sleep interval between requests.+_TooManyRequestsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyRequestsException =+ Core._MatchServiceError+ defaultService+ "TooManyRequestsException"+ Prelude.. Core.hasStatus 429++-- | The request exceeds the maximum allowed number of tags allowed per+-- resource. The current limit is 50 user tags per resource. You must+-- reduce the number of tags in the request. None of the tags in this+-- request were applied.+_TooManyTagsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyTagsException =+ Core._MatchServiceError+ defaultService+ "TooManyTagsException"+ Prelude.. Core.hasStatus 400
+ gen/Amazonka/AppMesh/Types/AccessLog.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.AccessLog+-- 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.AppMesh.Types.AccessLog where++import Amazonka.AppMesh.Types.FileAccessLog+import qualified 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 object that represents the access logging information for a virtual+-- node.+--+-- /See:/ 'newAccessLog' smart constructor.+data AccessLog = AccessLog'+ { -- | The file object to send virtual node access logs to.+ file :: Prelude.Maybe FileAccessLog+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessLog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'file', 'accessLog_file' - The file object to send virtual node access logs to.+newAccessLog ::+ AccessLog+newAccessLog = AccessLog' {file = Prelude.Nothing}++-- | The file object to send virtual node access logs to.+accessLog_file :: Lens.Lens' AccessLog (Prelude.Maybe FileAccessLog)+accessLog_file = Lens.lens (\AccessLog' {file} -> file) (\s@AccessLog' {} a -> s {file = a} :: AccessLog)++instance Data.FromJSON AccessLog where+ parseJSON =+ Data.withObject+ "AccessLog"+ (\x -> AccessLog' Prelude.<$> (x Data..:? "file"))++instance Prelude.Hashable AccessLog where+ hashWithSalt _salt AccessLog' {..} =+ _salt `Prelude.hashWithSalt` file++instance Prelude.NFData AccessLog where+ rnf AccessLog' {..} = Prelude.rnf file++instance Data.ToJSON AccessLog where+ toJSON AccessLog' {..} =+ Data.object+ ( Prelude.catMaybes+ [("file" Data..=) Prelude.<$> file]+ )
+ gen/Amazonka/AppMesh/Types/AwsCloudMapInstanceAttribute.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.AwsCloudMapInstanceAttribute+-- 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.AppMesh.Types.AwsCloudMapInstanceAttribute 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++-- | An object that represents the Cloud Map attribute information for your+-- virtual node.+--+-- Cloud Map is not available in the eu-south-1 Region.+--+-- /See:/ 'newAwsCloudMapInstanceAttribute' smart constructor.+data AwsCloudMapInstanceAttribute = AwsCloudMapInstanceAttribute'+ { -- | The name of an Cloud Map service instance attribute key. Any Cloud Map+ -- service instance that contains the specified key and value is returned.+ key :: Prelude.Text,+ -- | The value of an Cloud Map service instance attribute key. Any Cloud Map+ -- service instance that contains the specified key and value is returned.+ value :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AwsCloudMapInstanceAttribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'awsCloudMapInstanceAttribute_key' - The name of an Cloud Map service instance attribute key. Any Cloud Map+-- service instance that contains the specified key and value is returned.+--+-- 'value', 'awsCloudMapInstanceAttribute_value' - The value of an Cloud Map service instance attribute key. Any Cloud Map+-- service instance that contains the specified key and value is returned.+newAwsCloudMapInstanceAttribute ::+ -- | 'key'+ Prelude.Text ->+ -- | 'value'+ Prelude.Text ->+ AwsCloudMapInstanceAttribute+newAwsCloudMapInstanceAttribute pKey_ pValue_ =+ AwsCloudMapInstanceAttribute'+ { key = pKey_,+ value = pValue_+ }++-- | The name of an Cloud Map service instance attribute key. Any Cloud Map+-- service instance that contains the specified key and value is returned.+awsCloudMapInstanceAttribute_key :: Lens.Lens' AwsCloudMapInstanceAttribute Prelude.Text+awsCloudMapInstanceAttribute_key = Lens.lens (\AwsCloudMapInstanceAttribute' {key} -> key) (\s@AwsCloudMapInstanceAttribute' {} a -> s {key = a} :: AwsCloudMapInstanceAttribute)++-- | The value of an Cloud Map service instance attribute key. Any Cloud Map+-- service instance that contains the specified key and value is returned.+awsCloudMapInstanceAttribute_value :: Lens.Lens' AwsCloudMapInstanceAttribute Prelude.Text+awsCloudMapInstanceAttribute_value = Lens.lens (\AwsCloudMapInstanceAttribute' {value} -> value) (\s@AwsCloudMapInstanceAttribute' {} a -> s {value = a} :: AwsCloudMapInstanceAttribute)++instance Data.FromJSON AwsCloudMapInstanceAttribute where+ parseJSON =+ Data.withObject+ "AwsCloudMapInstanceAttribute"+ ( \x ->+ AwsCloudMapInstanceAttribute'+ Prelude.<$> (x Data..: "key")+ Prelude.<*> (x Data..: "value")+ )++instance+ Prelude.Hashable+ AwsCloudMapInstanceAttribute+ where+ hashWithSalt _salt AwsCloudMapInstanceAttribute' {..} =+ _salt+ `Prelude.hashWithSalt` key+ `Prelude.hashWithSalt` value++instance Prelude.NFData AwsCloudMapInstanceAttribute where+ rnf AwsCloudMapInstanceAttribute' {..} =+ Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON AwsCloudMapInstanceAttribute where+ toJSON AwsCloudMapInstanceAttribute' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("key" Data..= key),+ Prelude.Just ("value" Data..= value)+ ]+ )
+ gen/Amazonka/AppMesh/Types/AwsCloudMapServiceDiscovery.hs view
@@ -0,0 +1,146 @@+{-# 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.AppMesh.Types.AwsCloudMapServiceDiscovery+-- 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.AppMesh.Types.AwsCloudMapServiceDiscovery where++import Amazonka.AppMesh.Types.AwsCloudMapInstanceAttribute+import Amazonka.AppMesh.Types.IpPreference+import qualified 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 object that represents the Cloud Map service discovery information+-- for your virtual node.+--+-- Cloud Map is not available in the eu-south-1 Region.+--+-- /See:/ 'newAwsCloudMapServiceDiscovery' smart constructor.+data AwsCloudMapServiceDiscovery = AwsCloudMapServiceDiscovery'+ { -- | A string map that contains attributes with values that you can use to+ -- filter instances by any custom attribute that you specified when you+ -- registered the instance. Only instances that match all of the specified+ -- key\/value pairs will be returned.+ attributes :: Prelude.Maybe [AwsCloudMapInstanceAttribute],+ -- | The preferred IP version that this virtual node uses. Setting the IP+ -- preference on the virtual node only overrides the IP preference set for+ -- the mesh on this specific node.+ ipPreference :: Prelude.Maybe IpPreference,+ -- | The name of the Cloud Map namespace to use.+ namespaceName :: Prelude.Text,+ -- | The name of the Cloud Map service to use.+ serviceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AwsCloudMapServiceDiscovery' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'awsCloudMapServiceDiscovery_attributes' - A string map that contains attributes with values that you can use to+-- filter instances by any custom attribute that you specified when you+-- registered the instance. Only instances that match all of the specified+-- key\/value pairs will be returned.+--+-- 'ipPreference', 'awsCloudMapServiceDiscovery_ipPreference' - The preferred IP version that this virtual node uses. Setting the IP+-- preference on the virtual node only overrides the IP preference set for+-- the mesh on this specific node.+--+-- 'namespaceName', 'awsCloudMapServiceDiscovery_namespaceName' - The name of the Cloud Map namespace to use.+--+-- 'serviceName', 'awsCloudMapServiceDiscovery_serviceName' - The name of the Cloud Map service to use.+newAwsCloudMapServiceDiscovery ::+ -- | 'namespaceName'+ Prelude.Text ->+ -- | 'serviceName'+ Prelude.Text ->+ AwsCloudMapServiceDiscovery+newAwsCloudMapServiceDiscovery+ pNamespaceName_+ pServiceName_ =+ AwsCloudMapServiceDiscovery'+ { attributes =+ Prelude.Nothing,+ ipPreference = Prelude.Nothing,+ namespaceName = pNamespaceName_,+ serviceName = pServiceName_+ }++-- | A string map that contains attributes with values that you can use to+-- filter instances by any custom attribute that you specified when you+-- registered the instance. Only instances that match all of the specified+-- key\/value pairs will be returned.+awsCloudMapServiceDiscovery_attributes :: Lens.Lens' AwsCloudMapServiceDiscovery (Prelude.Maybe [AwsCloudMapInstanceAttribute])+awsCloudMapServiceDiscovery_attributes = Lens.lens (\AwsCloudMapServiceDiscovery' {attributes} -> attributes) (\s@AwsCloudMapServiceDiscovery' {} a -> s {attributes = a} :: AwsCloudMapServiceDiscovery) Prelude.. Lens.mapping Lens.coerced++-- | The preferred IP version that this virtual node uses. Setting the IP+-- preference on the virtual node only overrides the IP preference set for+-- the mesh on this specific node.+awsCloudMapServiceDiscovery_ipPreference :: Lens.Lens' AwsCloudMapServiceDiscovery (Prelude.Maybe IpPreference)+awsCloudMapServiceDiscovery_ipPreference = Lens.lens (\AwsCloudMapServiceDiscovery' {ipPreference} -> ipPreference) (\s@AwsCloudMapServiceDiscovery' {} a -> s {ipPreference = a} :: AwsCloudMapServiceDiscovery)++-- | The name of the Cloud Map namespace to use.+awsCloudMapServiceDiscovery_namespaceName :: Lens.Lens' AwsCloudMapServiceDiscovery Prelude.Text+awsCloudMapServiceDiscovery_namespaceName = Lens.lens (\AwsCloudMapServiceDiscovery' {namespaceName} -> namespaceName) (\s@AwsCloudMapServiceDiscovery' {} a -> s {namespaceName = a} :: AwsCloudMapServiceDiscovery)++-- | The name of the Cloud Map service to use.+awsCloudMapServiceDiscovery_serviceName :: Lens.Lens' AwsCloudMapServiceDiscovery Prelude.Text+awsCloudMapServiceDiscovery_serviceName = Lens.lens (\AwsCloudMapServiceDiscovery' {serviceName} -> serviceName) (\s@AwsCloudMapServiceDiscovery' {} a -> s {serviceName = a} :: AwsCloudMapServiceDiscovery)++instance Data.FromJSON AwsCloudMapServiceDiscovery where+ parseJSON =+ Data.withObject+ "AwsCloudMapServiceDiscovery"+ ( \x ->+ AwsCloudMapServiceDiscovery'+ Prelude.<$> (x Data..:? "attributes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "ipPreference")+ Prelude.<*> (x Data..: "namespaceName")+ Prelude.<*> (x Data..: "serviceName")+ )++instance Prelude.Hashable AwsCloudMapServiceDiscovery where+ hashWithSalt _salt AwsCloudMapServiceDiscovery' {..} =+ _salt+ `Prelude.hashWithSalt` attributes+ `Prelude.hashWithSalt` ipPreference+ `Prelude.hashWithSalt` namespaceName+ `Prelude.hashWithSalt` serviceName++instance Prelude.NFData AwsCloudMapServiceDiscovery where+ rnf AwsCloudMapServiceDiscovery' {..} =+ Prelude.rnf attributes+ `Prelude.seq` Prelude.rnf ipPreference+ `Prelude.seq` Prelude.rnf namespaceName+ `Prelude.seq` Prelude.rnf serviceName++instance Data.ToJSON AwsCloudMapServiceDiscovery where+ toJSON AwsCloudMapServiceDiscovery' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("attributes" Data..=) Prelude.<$> attributes,+ ("ipPreference" Data..=) Prelude.<$> ipPreference,+ Prelude.Just ("namespaceName" Data..= namespaceName),+ Prelude.Just ("serviceName" Data..= serviceName)+ ]+ )
+ gen/Amazonka/AppMesh/Types/Backend.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.Backend+-- 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.AppMesh.Types.Backend where++import Amazonka.AppMesh.Types.VirtualServiceBackend+import qualified 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 object that represents the backends that a virtual node is expected+-- to send outbound traffic to.+--+-- /See:/ 'newBackend' smart constructor.+data Backend = Backend'+ { -- | Specifies a virtual service to use as a backend.+ virtualService :: Prelude.Maybe VirtualServiceBackend+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Backend' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'virtualService', 'backend_virtualService' - Specifies a virtual service to use as a backend.+newBackend ::+ Backend+newBackend =+ Backend' {virtualService = Prelude.Nothing}++-- | Specifies a virtual service to use as a backend.+backend_virtualService :: Lens.Lens' Backend (Prelude.Maybe VirtualServiceBackend)+backend_virtualService = Lens.lens (\Backend' {virtualService} -> virtualService) (\s@Backend' {} a -> s {virtualService = a} :: Backend)++instance Data.FromJSON Backend where+ parseJSON =+ Data.withObject+ "Backend"+ ( \x ->+ Backend' Prelude.<$> (x Data..:? "virtualService")+ )++instance Prelude.Hashable Backend where+ hashWithSalt _salt Backend' {..} =+ _salt `Prelude.hashWithSalt` virtualService++instance Prelude.NFData Backend where+ rnf Backend' {..} = Prelude.rnf virtualService++instance Data.ToJSON Backend where+ toJSON Backend' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("virtualService" Data..=)+ Prelude.<$> virtualService+ ]+ )
+ gen/Amazonka/AppMesh/Types/BackendDefaults.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.AppMesh.Types.BackendDefaults+-- 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.AppMesh.Types.BackendDefaults where++import Amazonka.AppMesh.Types.ClientPolicy+import qualified 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 object that represents the default properties for a backend.+--+-- /See:/ 'newBackendDefaults' smart constructor.+data BackendDefaults = BackendDefaults'+ { -- | A reference to an object that represents a client policy.+ clientPolicy :: Prelude.Maybe ClientPolicy+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BackendDefaults' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientPolicy', 'backendDefaults_clientPolicy' - A reference to an object that represents a client policy.+newBackendDefaults ::+ BackendDefaults+newBackendDefaults =+ BackendDefaults' {clientPolicy = Prelude.Nothing}++-- | A reference to an object that represents a client policy.+backendDefaults_clientPolicy :: Lens.Lens' BackendDefaults (Prelude.Maybe ClientPolicy)+backendDefaults_clientPolicy = Lens.lens (\BackendDefaults' {clientPolicy} -> clientPolicy) (\s@BackendDefaults' {} a -> s {clientPolicy = a} :: BackendDefaults)++instance Data.FromJSON BackendDefaults where+ parseJSON =+ Data.withObject+ "BackendDefaults"+ ( \x ->+ BackendDefaults'+ Prelude.<$> (x Data..:? "clientPolicy")+ )++instance Prelude.Hashable BackendDefaults where+ hashWithSalt _salt BackendDefaults' {..} =+ _salt `Prelude.hashWithSalt` clientPolicy++instance Prelude.NFData BackendDefaults where+ rnf BackendDefaults' {..} = Prelude.rnf clientPolicy++instance Data.ToJSON BackendDefaults where+ toJSON BackendDefaults' {..} =+ Data.object+ ( Prelude.catMaybes+ [("clientPolicy" Data..=) Prelude.<$> clientPolicy]+ )
+ gen/Amazonka/AppMesh/Types/ClientPolicy.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.ClientPolicy+-- 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.AppMesh.Types.ClientPolicy where++import Amazonka.AppMesh.Types.ClientPolicyTls+import qualified 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 object that represents a client policy.+--+-- /See:/ 'newClientPolicy' smart constructor.+data ClientPolicy = ClientPolicy'+ { -- | A reference to an object that represents a Transport Layer Security+ -- (TLS) client policy.+ tls :: Prelude.Maybe ClientPolicyTls+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClientPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tls', 'clientPolicy_tls' - A reference to an object that represents a Transport Layer Security+-- (TLS) client policy.+newClientPolicy ::+ ClientPolicy+newClientPolicy =+ ClientPolicy' {tls = Prelude.Nothing}++-- | A reference to an object that represents a Transport Layer Security+-- (TLS) client policy.+clientPolicy_tls :: Lens.Lens' ClientPolicy (Prelude.Maybe ClientPolicyTls)+clientPolicy_tls = Lens.lens (\ClientPolicy' {tls} -> tls) (\s@ClientPolicy' {} a -> s {tls = a} :: ClientPolicy)++instance Data.FromJSON ClientPolicy where+ parseJSON =+ Data.withObject+ "ClientPolicy"+ (\x -> ClientPolicy' Prelude.<$> (x Data..:? "tls"))++instance Prelude.Hashable ClientPolicy where+ hashWithSalt _salt ClientPolicy' {..} =+ _salt `Prelude.hashWithSalt` tls++instance Prelude.NFData ClientPolicy where+ rnf ClientPolicy' {..} = Prelude.rnf tls++instance Data.ToJSON ClientPolicy where+ toJSON ClientPolicy' {..} =+ Data.object+ (Prelude.catMaybes [("tls" Data..=) Prelude.<$> tls])
+ gen/Amazonka/AppMesh/Types/ClientPolicyTls.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.AppMesh.Types.ClientPolicyTls+-- 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.AppMesh.Types.ClientPolicyTls where++import Amazonka.AppMesh.Types.ClientTlsCertificate+import Amazonka.AppMesh.Types.TlsValidationContext+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A reference to an object that represents a Transport Layer Security+-- (TLS) client policy.+--+-- /See:/ 'newClientPolicyTls' smart constructor.+data ClientPolicyTls = ClientPolicyTls'+ { -- | A reference to an object that represents a client\'s TLS certificate.+ certificate :: Prelude.Maybe ClientTlsCertificate,+ -- | Whether the policy is enforced. The default is @True@, if a value isn\'t+ -- specified.+ enforce :: Prelude.Maybe Prelude.Bool,+ -- | One or more ports that the policy is enforced for.+ ports :: Prelude.Maybe [Prelude.Natural],+ -- | A reference to an object that represents a TLS validation context.+ validation :: TlsValidationContext+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClientPolicyTls' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificate', 'clientPolicyTls_certificate' - A reference to an object that represents a client\'s TLS certificate.+--+-- 'enforce', 'clientPolicyTls_enforce' - Whether the policy is enforced. The default is @True@, if a value isn\'t+-- specified.+--+-- 'ports', 'clientPolicyTls_ports' - One or more ports that the policy is enforced for.+--+-- 'validation', 'clientPolicyTls_validation' - A reference to an object that represents a TLS validation context.+newClientPolicyTls ::+ -- | 'validation'+ TlsValidationContext ->+ ClientPolicyTls+newClientPolicyTls pValidation_ =+ ClientPolicyTls'+ { certificate = Prelude.Nothing,+ enforce = Prelude.Nothing,+ ports = Prelude.Nothing,+ validation = pValidation_+ }++-- | A reference to an object that represents a client\'s TLS certificate.+clientPolicyTls_certificate :: Lens.Lens' ClientPolicyTls (Prelude.Maybe ClientTlsCertificate)+clientPolicyTls_certificate = Lens.lens (\ClientPolicyTls' {certificate} -> certificate) (\s@ClientPolicyTls' {} a -> s {certificate = a} :: ClientPolicyTls)++-- | Whether the policy is enforced. The default is @True@, if a value isn\'t+-- specified.+clientPolicyTls_enforce :: Lens.Lens' ClientPolicyTls (Prelude.Maybe Prelude.Bool)+clientPolicyTls_enforce = Lens.lens (\ClientPolicyTls' {enforce} -> enforce) (\s@ClientPolicyTls' {} a -> s {enforce = a} :: ClientPolicyTls)++-- | One or more ports that the policy is enforced for.+clientPolicyTls_ports :: Lens.Lens' ClientPolicyTls (Prelude.Maybe [Prelude.Natural])+clientPolicyTls_ports = Lens.lens (\ClientPolicyTls' {ports} -> ports) (\s@ClientPolicyTls' {} a -> s {ports = a} :: ClientPolicyTls) Prelude.. Lens.mapping Lens.coerced++-- | A reference to an object that represents a TLS validation context.+clientPolicyTls_validation :: Lens.Lens' ClientPolicyTls TlsValidationContext+clientPolicyTls_validation = Lens.lens (\ClientPolicyTls' {validation} -> validation) (\s@ClientPolicyTls' {} a -> s {validation = a} :: ClientPolicyTls)++instance Data.FromJSON ClientPolicyTls where+ parseJSON =+ Data.withObject+ "ClientPolicyTls"+ ( \x ->+ ClientPolicyTls'+ Prelude.<$> (x Data..:? "certificate")+ Prelude.<*> (x Data..:? "enforce")+ Prelude.<*> (x Data..:? "ports" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "validation")+ )++instance Prelude.Hashable ClientPolicyTls where+ hashWithSalt _salt ClientPolicyTls' {..} =+ _salt+ `Prelude.hashWithSalt` certificate+ `Prelude.hashWithSalt` enforce+ `Prelude.hashWithSalt` ports+ `Prelude.hashWithSalt` validation++instance Prelude.NFData ClientPolicyTls where+ rnf ClientPolicyTls' {..} =+ Prelude.rnf certificate+ `Prelude.seq` Prelude.rnf enforce+ `Prelude.seq` Prelude.rnf ports+ `Prelude.seq` Prelude.rnf validation++instance Data.ToJSON ClientPolicyTls where+ toJSON ClientPolicyTls' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("certificate" Data..=) Prelude.<$> certificate,+ ("enforce" Data..=) Prelude.<$> enforce,+ ("ports" Data..=) Prelude.<$> ports,+ Prelude.Just ("validation" Data..= validation)+ ]+ )
+ gen/Amazonka/AppMesh/Types/ClientTlsCertificate.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.ClientTlsCertificate+-- 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.AppMesh.Types.ClientTlsCertificate where++import Amazonka.AppMesh.Types.ListenerTlsFileCertificate+import Amazonka.AppMesh.Types.ListenerTlsSdsCertificate+import qualified 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 object that represents the client\'s certificate.+--+-- /See:/ 'newClientTlsCertificate' smart constructor.+data ClientTlsCertificate = ClientTlsCertificate'+ { -- | An object that represents a local file certificate. The certificate must+ -- meet specific requirements and you must have proxy authorization+ -- enabled. For more information, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html Transport Layer Security (TLS)>.+ file :: Prelude.Maybe ListenerTlsFileCertificate,+ -- | A reference to an object that represents a client\'s TLS Secret+ -- Discovery Service certificate.+ sds :: Prelude.Maybe ListenerTlsSdsCertificate+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClientTlsCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'file', 'clientTlsCertificate_file' - An object that represents a local file certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html Transport Layer Security (TLS)>.+--+-- 'sds', 'clientTlsCertificate_sds' - A reference to an object that represents a client\'s TLS Secret+-- Discovery Service certificate.+newClientTlsCertificate ::+ ClientTlsCertificate+newClientTlsCertificate =+ ClientTlsCertificate'+ { file = Prelude.Nothing,+ sds = Prelude.Nothing+ }++-- | An object that represents a local file certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html Transport Layer Security (TLS)>.+clientTlsCertificate_file :: Lens.Lens' ClientTlsCertificate (Prelude.Maybe ListenerTlsFileCertificate)+clientTlsCertificate_file = Lens.lens (\ClientTlsCertificate' {file} -> file) (\s@ClientTlsCertificate' {} a -> s {file = a} :: ClientTlsCertificate)++-- | A reference to an object that represents a client\'s TLS Secret+-- Discovery Service certificate.+clientTlsCertificate_sds :: Lens.Lens' ClientTlsCertificate (Prelude.Maybe ListenerTlsSdsCertificate)+clientTlsCertificate_sds = Lens.lens (\ClientTlsCertificate' {sds} -> sds) (\s@ClientTlsCertificate' {} a -> s {sds = a} :: ClientTlsCertificate)++instance Data.FromJSON ClientTlsCertificate where+ parseJSON =+ Data.withObject+ "ClientTlsCertificate"+ ( \x ->+ ClientTlsCertificate'+ Prelude.<$> (x Data..:? "file")+ Prelude.<*> (x Data..:? "sds")+ )++instance Prelude.Hashable ClientTlsCertificate where+ hashWithSalt _salt ClientTlsCertificate' {..} =+ _salt+ `Prelude.hashWithSalt` file+ `Prelude.hashWithSalt` sds++instance Prelude.NFData ClientTlsCertificate where+ rnf ClientTlsCertificate' {..} =+ Prelude.rnf file `Prelude.seq` Prelude.rnf sds++instance Data.ToJSON ClientTlsCertificate where+ toJSON ClientTlsCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("file" Data..=) Prelude.<$> file,+ ("sds" Data..=) Prelude.<$> sds+ ]+ )
+ gen/Amazonka/AppMesh/Types/DefaultGatewayRouteRewrite.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.DefaultGatewayRouteRewrite+-- 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.AppMesh.Types.DefaultGatewayRouteRewrite+ ( DefaultGatewayRouteRewrite+ ( ..,+ DefaultGatewayRouteRewrite_DISABLED,+ DefaultGatewayRouteRewrite_ENABLED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DefaultGatewayRouteRewrite = DefaultGatewayRouteRewrite'+ { fromDefaultGatewayRouteRewrite ::+ 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 DefaultGatewayRouteRewrite_DISABLED :: DefaultGatewayRouteRewrite+pattern DefaultGatewayRouteRewrite_DISABLED = DefaultGatewayRouteRewrite' "DISABLED"++pattern DefaultGatewayRouteRewrite_ENABLED :: DefaultGatewayRouteRewrite+pattern DefaultGatewayRouteRewrite_ENABLED = DefaultGatewayRouteRewrite' "ENABLED"++{-# COMPLETE+ DefaultGatewayRouteRewrite_DISABLED,+ DefaultGatewayRouteRewrite_ENABLED,+ DefaultGatewayRouteRewrite'+ #-}
+ gen/Amazonka/AppMesh/Types/DnsResponseType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.DnsResponseType+-- 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.AppMesh.Types.DnsResponseType+ ( DnsResponseType+ ( ..,+ DnsResponseType_ENDPOINTS,+ DnsResponseType_LOADBALANCER+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DnsResponseType = DnsResponseType'+ { fromDnsResponseType ::+ 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 DnsResponseType_ENDPOINTS :: DnsResponseType+pattern DnsResponseType_ENDPOINTS = DnsResponseType' "ENDPOINTS"++pattern DnsResponseType_LOADBALANCER :: DnsResponseType+pattern DnsResponseType_LOADBALANCER = DnsResponseType' "LOADBALANCER"++{-# COMPLETE+ DnsResponseType_ENDPOINTS,+ DnsResponseType_LOADBALANCER,+ DnsResponseType'+ #-}
+ gen/Amazonka/AppMesh/Types/DnsServiceDiscovery.hs view
@@ -0,0 +1,118 @@+{-# 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.AppMesh.Types.DnsServiceDiscovery+-- 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.AppMesh.Types.DnsServiceDiscovery where++import Amazonka.AppMesh.Types.DnsResponseType+import Amazonka.AppMesh.Types.IpPreference+import qualified 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 object that represents the DNS service discovery information for your+-- virtual node.+--+-- /See:/ 'newDnsServiceDiscovery' smart constructor.+data DnsServiceDiscovery = DnsServiceDiscovery'+ { -- | The preferred IP version that this virtual node uses. Setting the IP+ -- preference on the virtual node only overrides the IP preference set for+ -- the mesh on this specific node.+ ipPreference :: Prelude.Maybe IpPreference,+ -- | Specifies the DNS response type for the virtual node.+ responseType :: Prelude.Maybe DnsResponseType,+ -- | Specifies the DNS service discovery hostname for the virtual node.+ hostname :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DnsServiceDiscovery' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ipPreference', 'dnsServiceDiscovery_ipPreference' - The preferred IP version that this virtual node uses. Setting the IP+-- preference on the virtual node only overrides the IP preference set for+-- the mesh on this specific node.+--+-- 'responseType', 'dnsServiceDiscovery_responseType' - Specifies the DNS response type for the virtual node.+--+-- 'hostname', 'dnsServiceDiscovery_hostname' - Specifies the DNS service discovery hostname for the virtual node.+newDnsServiceDiscovery ::+ -- | 'hostname'+ Prelude.Text ->+ DnsServiceDiscovery+newDnsServiceDiscovery pHostname_ =+ DnsServiceDiscovery'+ { ipPreference =+ Prelude.Nothing,+ responseType = Prelude.Nothing,+ hostname = pHostname_+ }++-- | The preferred IP version that this virtual node uses. Setting the IP+-- preference on the virtual node only overrides the IP preference set for+-- the mesh on this specific node.+dnsServiceDiscovery_ipPreference :: Lens.Lens' DnsServiceDiscovery (Prelude.Maybe IpPreference)+dnsServiceDiscovery_ipPreference = Lens.lens (\DnsServiceDiscovery' {ipPreference} -> ipPreference) (\s@DnsServiceDiscovery' {} a -> s {ipPreference = a} :: DnsServiceDiscovery)++-- | Specifies the DNS response type for the virtual node.+dnsServiceDiscovery_responseType :: Lens.Lens' DnsServiceDiscovery (Prelude.Maybe DnsResponseType)+dnsServiceDiscovery_responseType = Lens.lens (\DnsServiceDiscovery' {responseType} -> responseType) (\s@DnsServiceDiscovery' {} a -> s {responseType = a} :: DnsServiceDiscovery)++-- | Specifies the DNS service discovery hostname for the virtual node.+dnsServiceDiscovery_hostname :: Lens.Lens' DnsServiceDiscovery Prelude.Text+dnsServiceDiscovery_hostname = Lens.lens (\DnsServiceDiscovery' {hostname} -> hostname) (\s@DnsServiceDiscovery' {} a -> s {hostname = a} :: DnsServiceDiscovery)++instance Data.FromJSON DnsServiceDiscovery where+ parseJSON =+ Data.withObject+ "DnsServiceDiscovery"+ ( \x ->+ DnsServiceDiscovery'+ Prelude.<$> (x Data..:? "ipPreference")+ Prelude.<*> (x Data..:? "responseType")+ Prelude.<*> (x Data..: "hostname")+ )++instance Prelude.Hashable DnsServiceDiscovery where+ hashWithSalt _salt DnsServiceDiscovery' {..} =+ _salt+ `Prelude.hashWithSalt` ipPreference+ `Prelude.hashWithSalt` responseType+ `Prelude.hashWithSalt` hostname++instance Prelude.NFData DnsServiceDiscovery where+ rnf DnsServiceDiscovery' {..} =+ Prelude.rnf ipPreference+ `Prelude.seq` Prelude.rnf responseType+ `Prelude.seq` Prelude.rnf hostname++instance Data.ToJSON DnsServiceDiscovery where+ toJSON DnsServiceDiscovery' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ipPreference" Data..=) Prelude.<$> ipPreference,+ ("responseType" Data..=) Prelude.<$> responseType,+ Prelude.Just ("hostname" Data..= hostname)+ ]+ )
+ gen/Amazonka/AppMesh/Types/Duration.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.Duration+-- 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.AppMesh.Types.Duration where++import Amazonka.AppMesh.Types.DurationUnit+import qualified 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 object that represents a duration of time.+--+-- /See:/ 'newDuration' smart constructor.+data Duration = Duration'+ { -- | A unit of time.+ unit :: Prelude.Maybe DurationUnit,+ -- | A number of time units.+ value :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Duration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'unit', 'duration_unit' - A unit of time.+--+-- 'value', 'duration_value' - A number of time units.+newDuration ::+ Duration+newDuration =+ Duration'+ { unit = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | A unit of time.+duration_unit :: Lens.Lens' Duration (Prelude.Maybe DurationUnit)+duration_unit = Lens.lens (\Duration' {unit} -> unit) (\s@Duration' {} a -> s {unit = a} :: Duration)++-- | A number of time units.+duration_value :: Lens.Lens' Duration (Prelude.Maybe Prelude.Natural)+duration_value = Lens.lens (\Duration' {value} -> value) (\s@Duration' {} a -> s {value = a} :: Duration)++instance Data.FromJSON Duration where+ parseJSON =+ Data.withObject+ "Duration"+ ( \x ->+ Duration'+ Prelude.<$> (x Data..:? "unit")+ Prelude.<*> (x Data..:? "value")+ )++instance Prelude.Hashable Duration where+ hashWithSalt _salt Duration' {..} =+ _salt+ `Prelude.hashWithSalt` unit+ `Prelude.hashWithSalt` value++instance Prelude.NFData Duration where+ rnf Duration' {..} =+ Prelude.rnf unit `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Duration where+ toJSON Duration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("unit" Data..=) Prelude.<$> unit,+ ("value" Data..=) Prelude.<$> value+ ]+ )
+ gen/Amazonka/AppMesh/Types/DurationUnit.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.DurationUnit+-- 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.AppMesh.Types.DurationUnit+ ( DurationUnit+ ( ..,+ DurationUnit_Ms,+ DurationUnit_S+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DurationUnit = DurationUnit'+ { fromDurationUnit ::+ 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 DurationUnit_Ms :: DurationUnit+pattern DurationUnit_Ms = DurationUnit' "ms"++pattern DurationUnit_S :: DurationUnit+pattern DurationUnit_S = DurationUnit' "s"++{-# COMPLETE+ DurationUnit_Ms,+ DurationUnit_S,+ DurationUnit'+ #-}
+ gen/Amazonka/AppMesh/Types/EgressFilter.hs view
@@ -0,0 +1,87 @@+{-# 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.AppMesh.Types.EgressFilter+-- 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.AppMesh.Types.EgressFilter where++import Amazonka.AppMesh.Types.EgressFilterType+import qualified 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 object that represents the egress filter rules for a service mesh.+--+-- /See:/ 'newEgressFilter' smart constructor.+data EgressFilter = EgressFilter'+ { -- | The egress filter type. By default, the type is @DROP_ALL@, which allows+ -- egress only from virtual nodes to other defined resources in the service+ -- mesh (and any traffic to @*.amazonaws.com@ for Amazon Web Services API+ -- calls). You can set the egress filter type to @ALLOW_ALL@ to allow+ -- egress to any endpoint inside or outside of the service mesh.+ type' :: EgressFilterType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EgressFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'egressFilter_type' - The egress filter type. By default, the type is @DROP_ALL@, which allows+-- egress only from virtual nodes to other defined resources in the service+-- mesh (and any traffic to @*.amazonaws.com@ for Amazon Web Services API+-- calls). You can set the egress filter type to @ALLOW_ALL@ to allow+-- egress to any endpoint inside or outside of the service mesh.+newEgressFilter ::+ -- | 'type''+ EgressFilterType ->+ EgressFilter+newEgressFilter pType_ =+ EgressFilter' {type' = pType_}++-- | The egress filter type. By default, the type is @DROP_ALL@, which allows+-- egress only from virtual nodes to other defined resources in the service+-- mesh (and any traffic to @*.amazonaws.com@ for Amazon Web Services API+-- calls). You can set the egress filter type to @ALLOW_ALL@ to allow+-- egress to any endpoint inside or outside of the service mesh.+egressFilter_type :: Lens.Lens' EgressFilter EgressFilterType+egressFilter_type = Lens.lens (\EgressFilter' {type'} -> type') (\s@EgressFilter' {} a -> s {type' = a} :: EgressFilter)++instance Data.FromJSON EgressFilter where+ parseJSON =+ Data.withObject+ "EgressFilter"+ (\x -> EgressFilter' Prelude.<$> (x Data..: "type"))++instance Prelude.Hashable EgressFilter where+ hashWithSalt _salt EgressFilter' {..} =+ _salt `Prelude.hashWithSalt` type'++instance Prelude.NFData EgressFilter where+ rnf EgressFilter' {..} = Prelude.rnf type'++instance Data.ToJSON EgressFilter where+ toJSON EgressFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("type" Data..= type')]+ )
+ gen/Amazonka/AppMesh/Types/EgressFilterType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.EgressFilterType+-- 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.AppMesh.Types.EgressFilterType+ ( EgressFilterType+ ( ..,+ EgressFilterType_ALLOW_ALL,+ EgressFilterType_DROP_ALL+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EgressFilterType = EgressFilterType'+ { fromEgressFilterType ::+ 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 EgressFilterType_ALLOW_ALL :: EgressFilterType+pattern EgressFilterType_ALLOW_ALL = EgressFilterType' "ALLOW_ALL"++pattern EgressFilterType_DROP_ALL :: EgressFilterType+pattern EgressFilterType_DROP_ALL = EgressFilterType' "DROP_ALL"++{-# COMPLETE+ EgressFilterType_ALLOW_ALL,+ EgressFilterType_DROP_ALL,+ EgressFilterType'+ #-}
+ gen/Amazonka/AppMesh/Types/FileAccessLog.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.FileAccessLog+-- 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.AppMesh.Types.FileAccessLog where++import Amazonka.AppMesh.Types.LoggingFormat+import qualified 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 object that represents an access log file.+--+-- /See:/ 'newFileAccessLog' smart constructor.+data FileAccessLog = FileAccessLog'+ { -- | The specified format for the logs. The format is either @json_format@ or+ -- @text_format@.+ format :: Prelude.Maybe LoggingFormat,+ -- | The file path to write access logs to. You can use @\/dev\/stdout@ to+ -- send access logs to standard out and configure your Envoy container to+ -- use a log driver, such as @awslogs@, to export the access logs to a log+ -- storage service such as Amazon CloudWatch Logs. You can also specify a+ -- path in the Envoy container\'s file system to write the files to disk.+ --+ -- > <note> <p>The Envoy process must have write permissions to the path that you specify here. Otherwise, Envoy fails to bootstrap properly.</p> </note>+ path :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileAccessLog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'format', 'fileAccessLog_format' - The specified format for the logs. The format is either @json_format@ or+-- @text_format@.+--+-- 'path', 'fileAccessLog_path' - The file path to write access logs to. You can use @\/dev\/stdout@ to+-- send access logs to standard out and configure your Envoy container to+-- use a log driver, such as @awslogs@, to export the access logs to a log+-- storage service such as Amazon CloudWatch Logs. You can also specify a+-- path in the Envoy container\'s file system to write the files to disk.+--+-- > <note> <p>The Envoy process must have write permissions to the path that you specify here. Otherwise, Envoy fails to bootstrap properly.</p> </note>+newFileAccessLog ::+ -- | 'path'+ Prelude.Text ->+ FileAccessLog+newFileAccessLog pPath_ =+ FileAccessLog'+ { format = Prelude.Nothing,+ path = pPath_+ }++-- | The specified format for the logs. The format is either @json_format@ or+-- @text_format@.+fileAccessLog_format :: Lens.Lens' FileAccessLog (Prelude.Maybe LoggingFormat)+fileAccessLog_format = Lens.lens (\FileAccessLog' {format} -> format) (\s@FileAccessLog' {} a -> s {format = a} :: FileAccessLog)++-- | The file path to write access logs to. You can use @\/dev\/stdout@ to+-- send access logs to standard out and configure your Envoy container to+-- use a log driver, such as @awslogs@, to export the access logs to a log+-- storage service such as Amazon CloudWatch Logs. You can also specify a+-- path in the Envoy container\'s file system to write the files to disk.+--+-- > <note> <p>The Envoy process must have write permissions to the path that you specify here. Otherwise, Envoy fails to bootstrap properly.</p> </note>+fileAccessLog_path :: Lens.Lens' FileAccessLog Prelude.Text+fileAccessLog_path = Lens.lens (\FileAccessLog' {path} -> path) (\s@FileAccessLog' {} a -> s {path = a} :: FileAccessLog)++instance Data.FromJSON FileAccessLog where+ parseJSON =+ Data.withObject+ "FileAccessLog"+ ( \x ->+ FileAccessLog'+ Prelude.<$> (x Data..:? "format")+ Prelude.<*> (x Data..: "path")+ )++instance Prelude.Hashable FileAccessLog where+ hashWithSalt _salt FileAccessLog' {..} =+ _salt+ `Prelude.hashWithSalt` format+ `Prelude.hashWithSalt` path++instance Prelude.NFData FileAccessLog where+ rnf FileAccessLog' {..} =+ Prelude.rnf format `Prelude.seq` Prelude.rnf path++instance Data.ToJSON FileAccessLog where+ toJSON FileAccessLog' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("format" Data..=) Prelude.<$> format,+ Prelude.Just ("path" Data..= path)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GatewayRouteData.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.GatewayRouteData+-- 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.AppMesh.Types.GatewayRouteData where++import Amazonka.AppMesh.Types.GatewayRouteSpec+import Amazonka.AppMesh.Types.GatewayRouteStatus+import Amazonka.AppMesh.Types.ResourceMetadata+import qualified 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 object that represents a gateway route returned by a describe+-- operation.+--+-- /See:/ 'newGatewayRouteData' smart constructor.+data GatewayRouteData = GatewayRouteData'+ { -- | The name of the gateway route.+ gatewayRouteName :: Prelude.Text,+ -- | The name of the service mesh that the resource resides in.+ meshName :: Prelude.Text,+ metadata :: ResourceMetadata,+ -- | The specifications of the gateway route.+ spec :: GatewayRouteSpec,+ -- | The status of the gateway route.+ status :: GatewayRouteStatus,+ -- | The virtual gateway that the gateway route is associated with.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatewayRouteData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'gatewayRouteName', 'gatewayRouteData_gatewayRouteName' - The name of the gateway route.+--+-- 'meshName', 'gatewayRouteData_meshName' - The name of the service mesh that the resource resides in.+--+-- 'metadata', 'gatewayRouteData_metadata' - Undocumented member.+--+-- 'spec', 'gatewayRouteData_spec' - The specifications of the gateway route.+--+-- 'status', 'gatewayRouteData_status' - The status of the gateway route.+--+-- 'virtualGatewayName', 'gatewayRouteData_virtualGatewayName' - The virtual gateway that the gateway route is associated with.+newGatewayRouteData ::+ -- | 'gatewayRouteName'+ Prelude.Text ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'metadata'+ ResourceMetadata ->+ -- | 'spec'+ GatewayRouteSpec ->+ -- | 'status'+ GatewayRouteStatus ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ GatewayRouteData+newGatewayRouteData+ pGatewayRouteName_+ pMeshName_+ pMetadata_+ pSpec_+ pStatus_+ pVirtualGatewayName_ =+ GatewayRouteData'+ { gatewayRouteName =+ pGatewayRouteName_,+ meshName = pMeshName_,+ metadata = pMetadata_,+ spec = pSpec_,+ status = pStatus_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The name of the gateway route.+gatewayRouteData_gatewayRouteName :: Lens.Lens' GatewayRouteData Prelude.Text+gatewayRouteData_gatewayRouteName = Lens.lens (\GatewayRouteData' {gatewayRouteName} -> gatewayRouteName) (\s@GatewayRouteData' {} a -> s {gatewayRouteName = a} :: GatewayRouteData)++-- | The name of the service mesh that the resource resides in.+gatewayRouteData_meshName :: Lens.Lens' GatewayRouteData Prelude.Text+gatewayRouteData_meshName = Lens.lens (\GatewayRouteData' {meshName} -> meshName) (\s@GatewayRouteData' {} a -> s {meshName = a} :: GatewayRouteData)++-- | Undocumented member.+gatewayRouteData_metadata :: Lens.Lens' GatewayRouteData ResourceMetadata+gatewayRouteData_metadata = Lens.lens (\GatewayRouteData' {metadata} -> metadata) (\s@GatewayRouteData' {} a -> s {metadata = a} :: GatewayRouteData)++-- | The specifications of the gateway route.+gatewayRouteData_spec :: Lens.Lens' GatewayRouteData GatewayRouteSpec+gatewayRouteData_spec = Lens.lens (\GatewayRouteData' {spec} -> spec) (\s@GatewayRouteData' {} a -> s {spec = a} :: GatewayRouteData)++-- | The status of the gateway route.+gatewayRouteData_status :: Lens.Lens' GatewayRouteData GatewayRouteStatus+gatewayRouteData_status = Lens.lens (\GatewayRouteData' {status} -> status) (\s@GatewayRouteData' {} a -> s {status = a} :: GatewayRouteData)++-- | The virtual gateway that the gateway route is associated with.+gatewayRouteData_virtualGatewayName :: Lens.Lens' GatewayRouteData Prelude.Text+gatewayRouteData_virtualGatewayName = Lens.lens (\GatewayRouteData' {virtualGatewayName} -> virtualGatewayName) (\s@GatewayRouteData' {} a -> s {virtualGatewayName = a} :: GatewayRouteData)++instance Data.FromJSON GatewayRouteData where+ parseJSON =+ Data.withObject+ "GatewayRouteData"+ ( \x ->+ GatewayRouteData'+ Prelude.<$> (x Data..: "gatewayRouteName")+ Prelude.<*> (x Data..: "meshName")+ Prelude.<*> (x Data..: "metadata")+ Prelude.<*> (x Data..: "spec")+ Prelude.<*> (x Data..: "status")+ Prelude.<*> (x Data..: "virtualGatewayName")+ )++instance Prelude.Hashable GatewayRouteData where+ hashWithSalt _salt GatewayRouteData' {..} =+ _salt+ `Prelude.hashWithSalt` gatewayRouteName+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData GatewayRouteData where+ rnf GatewayRouteData' {..} =+ Prelude.rnf gatewayRouteName+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf virtualGatewayName
+ gen/Amazonka/AppMesh/Types/GatewayRouteHostnameMatch.hs view
@@ -0,0 +1,92 @@+{-# 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.AppMesh.Types.GatewayRouteHostnameMatch+-- 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.AppMesh.Types.GatewayRouteHostnameMatch 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++-- | An object representing the gateway route host name to match.+--+-- /See:/ 'newGatewayRouteHostnameMatch' smart constructor.+data GatewayRouteHostnameMatch = GatewayRouteHostnameMatch'+ { -- | The exact host name to match on.+ exact :: Prelude.Maybe Prelude.Text,+ -- | The specified ending characters of the host name to match on.+ suffix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatewayRouteHostnameMatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exact', 'gatewayRouteHostnameMatch_exact' - The exact host name to match on.+--+-- 'suffix', 'gatewayRouteHostnameMatch_suffix' - The specified ending characters of the host name to match on.+newGatewayRouteHostnameMatch ::+ GatewayRouteHostnameMatch+newGatewayRouteHostnameMatch =+ GatewayRouteHostnameMatch'+ { exact = Prelude.Nothing,+ suffix = Prelude.Nothing+ }++-- | The exact host name to match on.+gatewayRouteHostnameMatch_exact :: Lens.Lens' GatewayRouteHostnameMatch (Prelude.Maybe Prelude.Text)+gatewayRouteHostnameMatch_exact = Lens.lens (\GatewayRouteHostnameMatch' {exact} -> exact) (\s@GatewayRouteHostnameMatch' {} a -> s {exact = a} :: GatewayRouteHostnameMatch)++-- | The specified ending characters of the host name to match on.+gatewayRouteHostnameMatch_suffix :: Lens.Lens' GatewayRouteHostnameMatch (Prelude.Maybe Prelude.Text)+gatewayRouteHostnameMatch_suffix = Lens.lens (\GatewayRouteHostnameMatch' {suffix} -> suffix) (\s@GatewayRouteHostnameMatch' {} a -> s {suffix = a} :: GatewayRouteHostnameMatch)++instance Data.FromJSON GatewayRouteHostnameMatch where+ parseJSON =+ Data.withObject+ "GatewayRouteHostnameMatch"+ ( \x ->+ GatewayRouteHostnameMatch'+ Prelude.<$> (x Data..:? "exact")+ Prelude.<*> (x Data..:? "suffix")+ )++instance Prelude.Hashable GatewayRouteHostnameMatch where+ hashWithSalt _salt GatewayRouteHostnameMatch' {..} =+ _salt+ `Prelude.hashWithSalt` exact+ `Prelude.hashWithSalt` suffix++instance Prelude.NFData GatewayRouteHostnameMatch where+ rnf GatewayRouteHostnameMatch' {..} =+ Prelude.rnf exact `Prelude.seq` Prelude.rnf suffix++instance Data.ToJSON GatewayRouteHostnameMatch where+ toJSON GatewayRouteHostnameMatch' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("exact" Data..=) Prelude.<$> exact,+ ("suffix" Data..=) Prelude.<$> suffix+ ]+ )
+ gen/Amazonka/AppMesh/Types/GatewayRouteHostnameRewrite.hs view
@@ -0,0 +1,82 @@+{-# 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.AppMesh.Types.GatewayRouteHostnameRewrite+-- 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.AppMesh.Types.GatewayRouteHostnameRewrite where++import Amazonka.AppMesh.Types.DefaultGatewayRouteRewrite+import qualified 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 object representing the gateway route host name to rewrite.+--+-- /See:/ 'newGatewayRouteHostnameRewrite' smart constructor.+data GatewayRouteHostnameRewrite = GatewayRouteHostnameRewrite'+ { -- | The default target host name to write to.+ defaultTargetHostname :: Prelude.Maybe DefaultGatewayRouteRewrite+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatewayRouteHostnameRewrite' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultTargetHostname', 'gatewayRouteHostnameRewrite_defaultTargetHostname' - The default target host name to write to.+newGatewayRouteHostnameRewrite ::+ GatewayRouteHostnameRewrite+newGatewayRouteHostnameRewrite =+ GatewayRouteHostnameRewrite'+ { defaultTargetHostname =+ Prelude.Nothing+ }++-- | The default target host name to write to.+gatewayRouteHostnameRewrite_defaultTargetHostname :: Lens.Lens' GatewayRouteHostnameRewrite (Prelude.Maybe DefaultGatewayRouteRewrite)+gatewayRouteHostnameRewrite_defaultTargetHostname = Lens.lens (\GatewayRouteHostnameRewrite' {defaultTargetHostname} -> defaultTargetHostname) (\s@GatewayRouteHostnameRewrite' {} a -> s {defaultTargetHostname = a} :: GatewayRouteHostnameRewrite)++instance Data.FromJSON GatewayRouteHostnameRewrite where+ parseJSON =+ Data.withObject+ "GatewayRouteHostnameRewrite"+ ( \x ->+ GatewayRouteHostnameRewrite'+ Prelude.<$> (x Data..:? "defaultTargetHostname")+ )++instance Prelude.Hashable GatewayRouteHostnameRewrite where+ hashWithSalt _salt GatewayRouteHostnameRewrite' {..} =+ _salt `Prelude.hashWithSalt` defaultTargetHostname++instance Prelude.NFData GatewayRouteHostnameRewrite where+ rnf GatewayRouteHostnameRewrite' {..} =+ Prelude.rnf defaultTargetHostname++instance Data.ToJSON GatewayRouteHostnameRewrite where+ toJSON GatewayRouteHostnameRewrite' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("defaultTargetHostname" Data..=)+ Prelude.<$> defaultTargetHostname+ ]+ )
+ gen/Amazonka/AppMesh/Types/GatewayRouteRef.hs view
@@ -0,0 +1,222 @@+{-# 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.AppMesh.Types.GatewayRouteRef+-- 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.AppMesh.Types.GatewayRouteRef 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++-- | An object that represents a gateway route returned by a list operation.+--+-- /See:/ 'newGatewayRouteRef' smart constructor.+data GatewayRouteRef = GatewayRouteRef'+ { -- | The full Amazon Resource Name (ARN) for the gateway route.+ arn :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was created.+ createdAt :: Data.POSIX,+ -- | The name of the gateway route.+ gatewayRouteName :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was last+ -- updated.+ lastUpdatedAt :: Data.POSIX,+ -- | The name of the service mesh that the resource resides in.+ meshName :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the resource owner. If the+ -- account ID is not your own, then it\'s the ID of the mesh owner or of+ -- another account that the mesh is shared with. For more information about+ -- mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ resourceOwner :: Prelude.Text,+ -- | The version of the resource. Resources are created at version 1, and+ -- this version is incremented each time that they\'re updated.+ version :: Prelude.Integer,+ -- | The virtual gateway that the gateway route is associated with.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatewayRouteRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'gatewayRouteRef_arn' - The full Amazon Resource Name (ARN) for the gateway route.+--+-- 'createdAt', 'gatewayRouteRef_createdAt' - The Unix epoch timestamp in seconds for when the resource was created.+--+-- 'gatewayRouteName', 'gatewayRouteRef_gatewayRouteName' - The name of the gateway route.+--+-- 'lastUpdatedAt', 'gatewayRouteRef_lastUpdatedAt' - The Unix epoch timestamp in seconds for when the resource was last+-- updated.+--+-- 'meshName', 'gatewayRouteRef_meshName' - The name of the service mesh that the resource resides in.+--+-- 'meshOwner', 'gatewayRouteRef_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'resourceOwner', 'gatewayRouteRef_resourceOwner' - The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'version', 'gatewayRouteRef_version' - The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+--+-- 'virtualGatewayName', 'gatewayRouteRef_virtualGatewayName' - The virtual gateway that the gateway route is associated with.+newGatewayRouteRef ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'gatewayRouteName'+ Prelude.Text ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'meshOwner'+ Prelude.Text ->+ -- | 'resourceOwner'+ Prelude.Text ->+ -- | 'version'+ Prelude.Integer ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ GatewayRouteRef+newGatewayRouteRef+ pArn_+ pCreatedAt_+ pGatewayRouteName_+ pLastUpdatedAt_+ pMeshName_+ pMeshOwner_+ pResourceOwner_+ pVersion_+ pVirtualGatewayName_ =+ GatewayRouteRef'+ { arn = pArn_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ gatewayRouteName = pGatewayRouteName_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_,+ meshName = pMeshName_,+ meshOwner = pMeshOwner_,+ resourceOwner = pResourceOwner_,+ version = pVersion_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The full Amazon Resource Name (ARN) for the gateway route.+gatewayRouteRef_arn :: Lens.Lens' GatewayRouteRef Prelude.Text+gatewayRouteRef_arn = Lens.lens (\GatewayRouteRef' {arn} -> arn) (\s@GatewayRouteRef' {} a -> s {arn = a} :: GatewayRouteRef)++-- | The Unix epoch timestamp in seconds for when the resource was created.+gatewayRouteRef_createdAt :: Lens.Lens' GatewayRouteRef Prelude.UTCTime+gatewayRouteRef_createdAt = Lens.lens (\GatewayRouteRef' {createdAt} -> createdAt) (\s@GatewayRouteRef' {} a -> s {createdAt = a} :: GatewayRouteRef) Prelude.. Data._Time++-- | The name of the gateway route.+gatewayRouteRef_gatewayRouteName :: Lens.Lens' GatewayRouteRef Prelude.Text+gatewayRouteRef_gatewayRouteName = Lens.lens (\GatewayRouteRef' {gatewayRouteName} -> gatewayRouteName) (\s@GatewayRouteRef' {} a -> s {gatewayRouteName = a} :: GatewayRouteRef)++-- | The Unix epoch timestamp in seconds for when the resource was last+-- updated.+gatewayRouteRef_lastUpdatedAt :: Lens.Lens' GatewayRouteRef Prelude.UTCTime+gatewayRouteRef_lastUpdatedAt = Lens.lens (\GatewayRouteRef' {lastUpdatedAt} -> lastUpdatedAt) (\s@GatewayRouteRef' {} a -> s {lastUpdatedAt = a} :: GatewayRouteRef) Prelude.. Data._Time++-- | The name of the service mesh that the resource resides in.+gatewayRouteRef_meshName :: Lens.Lens' GatewayRouteRef Prelude.Text+gatewayRouteRef_meshName = Lens.lens (\GatewayRouteRef' {meshName} -> meshName) (\s@GatewayRouteRef' {} a -> s {meshName = a} :: GatewayRouteRef)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+gatewayRouteRef_meshOwner :: Lens.Lens' GatewayRouteRef Prelude.Text+gatewayRouteRef_meshOwner = Lens.lens (\GatewayRouteRef' {meshOwner} -> meshOwner) (\s@GatewayRouteRef' {} a -> s {meshOwner = a} :: GatewayRouteRef)++-- | The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+gatewayRouteRef_resourceOwner :: Lens.Lens' GatewayRouteRef Prelude.Text+gatewayRouteRef_resourceOwner = Lens.lens (\GatewayRouteRef' {resourceOwner} -> resourceOwner) (\s@GatewayRouteRef' {} a -> s {resourceOwner = a} :: GatewayRouteRef)++-- | The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+gatewayRouteRef_version :: Lens.Lens' GatewayRouteRef Prelude.Integer+gatewayRouteRef_version = Lens.lens (\GatewayRouteRef' {version} -> version) (\s@GatewayRouteRef' {} a -> s {version = a} :: GatewayRouteRef)++-- | The virtual gateway that the gateway route is associated with.+gatewayRouteRef_virtualGatewayName :: Lens.Lens' GatewayRouteRef Prelude.Text+gatewayRouteRef_virtualGatewayName = Lens.lens (\GatewayRouteRef' {virtualGatewayName} -> virtualGatewayName) (\s@GatewayRouteRef' {} a -> s {virtualGatewayName = a} :: GatewayRouteRef)++instance Data.FromJSON GatewayRouteRef where+ parseJSON =+ Data.withObject+ "GatewayRouteRef"+ ( \x ->+ GatewayRouteRef'+ Prelude.<$> (x Data..: "arn")+ Prelude.<*> (x Data..: "createdAt")+ Prelude.<*> (x Data..: "gatewayRouteName")+ Prelude.<*> (x Data..: "lastUpdatedAt")+ Prelude.<*> (x Data..: "meshName")+ Prelude.<*> (x Data..: "meshOwner")+ Prelude.<*> (x Data..: "resourceOwner")+ Prelude.<*> (x Data..: "version")+ Prelude.<*> (x Data..: "virtualGatewayName")+ )++instance Prelude.Hashable GatewayRouteRef where+ hashWithSalt _salt GatewayRouteRef' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` gatewayRouteName+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` resourceOwner+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData GatewayRouteRef where+ rnf GatewayRouteRef' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf gatewayRouteName+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf resourceOwner+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf virtualGatewayName
+ gen/Amazonka/AppMesh/Types/GatewayRouteSpec.hs view
@@ -0,0 +1,122 @@+{-# 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.AppMesh.Types.GatewayRouteSpec+-- 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.AppMesh.Types.GatewayRouteSpec where++import Amazonka.AppMesh.Types.GrpcGatewayRoute+import Amazonka.AppMesh.Types.HttpGatewayRoute+import qualified 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 object that represents a gateway route specification. Specify one+-- gateway route type.+--+-- /See:/ 'newGatewayRouteSpec' smart constructor.+data GatewayRouteSpec = GatewayRouteSpec'+ { -- | An object that represents the specification of a gRPC gateway route.+ grpcRoute :: Prelude.Maybe GrpcGatewayRoute,+ -- | An object that represents the specification of an HTTP\/2 gateway route.+ http2Route :: Prelude.Maybe HttpGatewayRoute,+ -- | An object that represents the specification of an HTTP gateway route.+ httpRoute :: Prelude.Maybe HttpGatewayRoute,+ -- | The ordering of the gateway routes spec.+ priority :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatewayRouteSpec' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'grpcRoute', 'gatewayRouteSpec_grpcRoute' - An object that represents the specification of a gRPC gateway route.+--+-- 'http2Route', 'gatewayRouteSpec_http2Route' - An object that represents the specification of an HTTP\/2 gateway route.+--+-- 'httpRoute', 'gatewayRouteSpec_httpRoute' - An object that represents the specification of an HTTP gateway route.+--+-- 'priority', 'gatewayRouteSpec_priority' - The ordering of the gateway routes spec.+newGatewayRouteSpec ::+ GatewayRouteSpec+newGatewayRouteSpec =+ GatewayRouteSpec'+ { grpcRoute = Prelude.Nothing,+ http2Route = Prelude.Nothing,+ httpRoute = Prelude.Nothing,+ priority = Prelude.Nothing+ }++-- | An object that represents the specification of a gRPC gateway route.+gatewayRouteSpec_grpcRoute :: Lens.Lens' GatewayRouteSpec (Prelude.Maybe GrpcGatewayRoute)+gatewayRouteSpec_grpcRoute = Lens.lens (\GatewayRouteSpec' {grpcRoute} -> grpcRoute) (\s@GatewayRouteSpec' {} a -> s {grpcRoute = a} :: GatewayRouteSpec)++-- | An object that represents the specification of an HTTP\/2 gateway route.+gatewayRouteSpec_http2Route :: Lens.Lens' GatewayRouteSpec (Prelude.Maybe HttpGatewayRoute)+gatewayRouteSpec_http2Route = Lens.lens (\GatewayRouteSpec' {http2Route} -> http2Route) (\s@GatewayRouteSpec' {} a -> s {http2Route = a} :: GatewayRouteSpec)++-- | An object that represents the specification of an HTTP gateway route.+gatewayRouteSpec_httpRoute :: Lens.Lens' GatewayRouteSpec (Prelude.Maybe HttpGatewayRoute)+gatewayRouteSpec_httpRoute = Lens.lens (\GatewayRouteSpec' {httpRoute} -> httpRoute) (\s@GatewayRouteSpec' {} a -> s {httpRoute = a} :: GatewayRouteSpec)++-- | The ordering of the gateway routes spec.+gatewayRouteSpec_priority :: Lens.Lens' GatewayRouteSpec (Prelude.Maybe Prelude.Natural)+gatewayRouteSpec_priority = Lens.lens (\GatewayRouteSpec' {priority} -> priority) (\s@GatewayRouteSpec' {} a -> s {priority = a} :: GatewayRouteSpec)++instance Data.FromJSON GatewayRouteSpec where+ parseJSON =+ Data.withObject+ "GatewayRouteSpec"+ ( \x ->+ GatewayRouteSpec'+ Prelude.<$> (x Data..:? "grpcRoute")+ Prelude.<*> (x Data..:? "http2Route")+ Prelude.<*> (x Data..:? "httpRoute")+ Prelude.<*> (x Data..:? "priority")+ )++instance Prelude.Hashable GatewayRouteSpec where+ hashWithSalt _salt GatewayRouteSpec' {..} =+ _salt+ `Prelude.hashWithSalt` grpcRoute+ `Prelude.hashWithSalt` http2Route+ `Prelude.hashWithSalt` httpRoute+ `Prelude.hashWithSalt` priority++instance Prelude.NFData GatewayRouteSpec where+ rnf GatewayRouteSpec' {..} =+ Prelude.rnf grpcRoute+ `Prelude.seq` Prelude.rnf http2Route+ `Prelude.seq` Prelude.rnf httpRoute+ `Prelude.seq` Prelude.rnf priority++instance Data.ToJSON GatewayRouteSpec where+ toJSON GatewayRouteSpec' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("grpcRoute" Data..=) Prelude.<$> grpcRoute,+ ("http2Route" Data..=) Prelude.<$> http2Route,+ ("httpRoute" Data..=) Prelude.<$> httpRoute,+ ("priority" Data..=) Prelude.<$> priority+ ]+ )
+ gen/Amazonka/AppMesh/Types/GatewayRouteStatus.hs view
@@ -0,0 +1,70 @@+{-# 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.AppMesh.Types.GatewayRouteStatus+-- 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.AppMesh.Types.GatewayRouteStatus where++import Amazonka.AppMesh.Types.GatewayRouteStatusCode+import qualified 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 object that represents the current status of a gateway route.+--+-- /See:/ 'newGatewayRouteStatus' smart constructor.+data GatewayRouteStatus = GatewayRouteStatus'+ { -- | The current status for the gateway route.+ status :: GatewayRouteStatusCode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatewayRouteStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'gatewayRouteStatus_status' - The current status for the gateway route.+newGatewayRouteStatus ::+ -- | 'status'+ GatewayRouteStatusCode ->+ GatewayRouteStatus+newGatewayRouteStatus pStatus_ =+ GatewayRouteStatus' {status = pStatus_}++-- | The current status for the gateway route.+gatewayRouteStatus_status :: Lens.Lens' GatewayRouteStatus GatewayRouteStatusCode+gatewayRouteStatus_status = Lens.lens (\GatewayRouteStatus' {status} -> status) (\s@GatewayRouteStatus' {} a -> s {status = a} :: GatewayRouteStatus)++instance Data.FromJSON GatewayRouteStatus where+ parseJSON =+ Data.withObject+ "GatewayRouteStatus"+ ( \x ->+ GatewayRouteStatus' Prelude.<$> (x Data..: "status")+ )++instance Prelude.Hashable GatewayRouteStatus where+ hashWithSalt _salt GatewayRouteStatus' {..} =+ _salt `Prelude.hashWithSalt` status++instance Prelude.NFData GatewayRouteStatus where+ rnf GatewayRouteStatus' {..} = Prelude.rnf status
+ gen/Amazonka/AppMesh/Types/GatewayRouteStatusCode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.GatewayRouteStatusCode+-- 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.AppMesh.Types.GatewayRouteStatusCode+ ( GatewayRouteStatusCode+ ( ..,+ GatewayRouteStatusCode_ACTIVE,+ GatewayRouteStatusCode_DELETED,+ GatewayRouteStatusCode_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype GatewayRouteStatusCode = GatewayRouteStatusCode'+ { fromGatewayRouteStatusCode ::+ 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 GatewayRouteStatusCode_ACTIVE :: GatewayRouteStatusCode+pattern GatewayRouteStatusCode_ACTIVE = GatewayRouteStatusCode' "ACTIVE"++pattern GatewayRouteStatusCode_DELETED :: GatewayRouteStatusCode+pattern GatewayRouteStatusCode_DELETED = GatewayRouteStatusCode' "DELETED"++pattern GatewayRouteStatusCode_INACTIVE :: GatewayRouteStatusCode+pattern GatewayRouteStatusCode_INACTIVE = GatewayRouteStatusCode' "INACTIVE"++{-# COMPLETE+ GatewayRouteStatusCode_ACTIVE,+ GatewayRouteStatusCode_DELETED,+ GatewayRouteStatusCode_INACTIVE,+ GatewayRouteStatusCode'+ #-}
+ gen/Amazonka/AppMesh/Types/GatewayRouteTarget.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.GatewayRouteTarget+-- 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.AppMesh.Types.GatewayRouteTarget where++import Amazonka.AppMesh.Types.GatewayRouteVirtualService+import qualified 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 object that represents a gateway route target.+--+-- /See:/ 'newGatewayRouteTarget' smart constructor.+data GatewayRouteTarget = GatewayRouteTarget'+ { -- | The port number of the gateway route target.+ port :: Prelude.Maybe Prelude.Natural,+ -- | An object that represents a virtual service gateway route target.+ virtualService :: GatewayRouteVirtualService+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatewayRouteTarget' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'port', 'gatewayRouteTarget_port' - The port number of the gateway route target.+--+-- 'virtualService', 'gatewayRouteTarget_virtualService' - An object that represents a virtual service gateway route target.+newGatewayRouteTarget ::+ -- | 'virtualService'+ GatewayRouteVirtualService ->+ GatewayRouteTarget+newGatewayRouteTarget pVirtualService_ =+ GatewayRouteTarget'+ { port = Prelude.Nothing,+ virtualService = pVirtualService_+ }++-- | The port number of the gateway route target.+gatewayRouteTarget_port :: Lens.Lens' GatewayRouteTarget (Prelude.Maybe Prelude.Natural)+gatewayRouteTarget_port = Lens.lens (\GatewayRouteTarget' {port} -> port) (\s@GatewayRouteTarget' {} a -> s {port = a} :: GatewayRouteTarget)++-- | An object that represents a virtual service gateway route target.+gatewayRouteTarget_virtualService :: Lens.Lens' GatewayRouteTarget GatewayRouteVirtualService+gatewayRouteTarget_virtualService = Lens.lens (\GatewayRouteTarget' {virtualService} -> virtualService) (\s@GatewayRouteTarget' {} a -> s {virtualService = a} :: GatewayRouteTarget)++instance Data.FromJSON GatewayRouteTarget where+ parseJSON =+ Data.withObject+ "GatewayRouteTarget"+ ( \x ->+ GatewayRouteTarget'+ Prelude.<$> (x Data..:? "port")+ Prelude.<*> (x Data..: "virtualService")+ )++instance Prelude.Hashable GatewayRouteTarget where+ hashWithSalt _salt GatewayRouteTarget' {..} =+ _salt+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` virtualService++instance Prelude.NFData GatewayRouteTarget where+ rnf GatewayRouteTarget' {..} =+ Prelude.rnf port+ `Prelude.seq` Prelude.rnf virtualService++instance Data.ToJSON GatewayRouteTarget where+ toJSON GatewayRouteTarget' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("port" Data..=) Prelude.<$> port,+ Prelude.Just+ ("virtualService" Data..= virtualService)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GatewayRouteVirtualService.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.AppMesh.Types.GatewayRouteVirtualService+-- 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.AppMesh.Types.GatewayRouteVirtualService 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++-- | An object that represents the virtual service that traffic is routed to.+--+-- /See:/ 'newGatewayRouteVirtualService' smart constructor.+data GatewayRouteVirtualService = GatewayRouteVirtualService'+ { -- | The name of the virtual service that traffic is routed to.+ virtualServiceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatewayRouteVirtualService' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'virtualServiceName', 'gatewayRouteVirtualService_virtualServiceName' - The name of the virtual service that traffic is routed to.+newGatewayRouteVirtualService ::+ -- | 'virtualServiceName'+ Prelude.Text ->+ GatewayRouteVirtualService+newGatewayRouteVirtualService pVirtualServiceName_ =+ GatewayRouteVirtualService'+ { virtualServiceName =+ pVirtualServiceName_+ }++-- | The name of the virtual service that traffic is routed to.+gatewayRouteVirtualService_virtualServiceName :: Lens.Lens' GatewayRouteVirtualService Prelude.Text+gatewayRouteVirtualService_virtualServiceName = Lens.lens (\GatewayRouteVirtualService' {virtualServiceName} -> virtualServiceName) (\s@GatewayRouteVirtualService' {} a -> s {virtualServiceName = a} :: GatewayRouteVirtualService)++instance Data.FromJSON GatewayRouteVirtualService where+ parseJSON =+ Data.withObject+ "GatewayRouteVirtualService"+ ( \x ->+ GatewayRouteVirtualService'+ Prelude.<$> (x Data..: "virtualServiceName")+ )++instance Prelude.Hashable GatewayRouteVirtualService where+ hashWithSalt _salt GatewayRouteVirtualService' {..} =+ _salt `Prelude.hashWithSalt` virtualServiceName++instance Prelude.NFData GatewayRouteVirtualService where+ rnf GatewayRouteVirtualService' {..} =+ Prelude.rnf virtualServiceName++instance Data.ToJSON GatewayRouteVirtualService where+ toJSON GatewayRouteVirtualService' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("virtualServiceName" Data..= virtualServiceName)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcGatewayRoute.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.GrpcGatewayRoute+-- 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.AppMesh.Types.GrpcGatewayRoute where++import Amazonka.AppMesh.Types.GrpcGatewayRouteAction+import Amazonka.AppMesh.Types.GrpcGatewayRouteMatch+import qualified 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 object that represents a gRPC gateway route.+--+-- /See:/ 'newGrpcGatewayRoute' smart constructor.+data GrpcGatewayRoute = GrpcGatewayRoute'+ { -- | An object that represents the action to take if a match is determined.+ action :: GrpcGatewayRouteAction,+ -- | An object that represents the criteria for determining a request match.+ match :: GrpcGatewayRouteMatch+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcGatewayRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'grpcGatewayRoute_action' - An object that represents the action to take if a match is determined.+--+-- 'match', 'grpcGatewayRoute_match' - An object that represents the criteria for determining a request match.+newGrpcGatewayRoute ::+ -- | 'action'+ GrpcGatewayRouteAction ->+ -- | 'match'+ GrpcGatewayRouteMatch ->+ GrpcGatewayRoute+newGrpcGatewayRoute pAction_ pMatch_ =+ GrpcGatewayRoute'+ { action = pAction_,+ match = pMatch_+ }++-- | An object that represents the action to take if a match is determined.+grpcGatewayRoute_action :: Lens.Lens' GrpcGatewayRoute GrpcGatewayRouteAction+grpcGatewayRoute_action = Lens.lens (\GrpcGatewayRoute' {action} -> action) (\s@GrpcGatewayRoute' {} a -> s {action = a} :: GrpcGatewayRoute)++-- | An object that represents the criteria for determining a request match.+grpcGatewayRoute_match :: Lens.Lens' GrpcGatewayRoute GrpcGatewayRouteMatch+grpcGatewayRoute_match = Lens.lens (\GrpcGatewayRoute' {match} -> match) (\s@GrpcGatewayRoute' {} a -> s {match = a} :: GrpcGatewayRoute)++instance Data.FromJSON GrpcGatewayRoute where+ parseJSON =+ Data.withObject+ "GrpcGatewayRoute"+ ( \x ->+ GrpcGatewayRoute'+ Prelude.<$> (x Data..: "action")+ Prelude.<*> (x Data..: "match")+ )++instance Prelude.Hashable GrpcGatewayRoute where+ hashWithSalt _salt GrpcGatewayRoute' {..} =+ _salt+ `Prelude.hashWithSalt` action+ `Prelude.hashWithSalt` match++instance Prelude.NFData GrpcGatewayRoute where+ rnf GrpcGatewayRoute' {..} =+ Prelude.rnf action `Prelude.seq` Prelude.rnf match++instance Data.ToJSON GrpcGatewayRoute where+ toJSON GrpcGatewayRoute' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("action" Data..= action),+ Prelude.Just ("match" Data..= match)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcGatewayRouteAction.hs view
@@ -0,0 +1,100 @@+{-# 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.AppMesh.Types.GrpcGatewayRouteAction+-- 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.AppMesh.Types.GrpcGatewayRouteAction where++import Amazonka.AppMesh.Types.GatewayRouteTarget+import Amazonka.AppMesh.Types.GrpcGatewayRouteRewrite+import qualified 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 object that represents the action to take if a match is determined.+--+-- /See:/ 'newGrpcGatewayRouteAction' smart constructor.+data GrpcGatewayRouteAction = GrpcGatewayRouteAction'+ { -- | The gateway route action to rewrite.+ rewrite :: Prelude.Maybe GrpcGatewayRouteRewrite,+ -- | An object that represents the target that traffic is routed to when a+ -- request matches the gateway route.+ target :: GatewayRouteTarget+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcGatewayRouteAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'rewrite', 'grpcGatewayRouteAction_rewrite' - The gateway route action to rewrite.+--+-- 'target', 'grpcGatewayRouteAction_target' - An object that represents the target that traffic is routed to when a+-- request matches the gateway route.+newGrpcGatewayRouteAction ::+ -- | 'target'+ GatewayRouteTarget ->+ GrpcGatewayRouteAction+newGrpcGatewayRouteAction pTarget_ =+ GrpcGatewayRouteAction'+ { rewrite = Prelude.Nothing,+ target = pTarget_+ }++-- | The gateway route action to rewrite.+grpcGatewayRouteAction_rewrite :: Lens.Lens' GrpcGatewayRouteAction (Prelude.Maybe GrpcGatewayRouteRewrite)+grpcGatewayRouteAction_rewrite = Lens.lens (\GrpcGatewayRouteAction' {rewrite} -> rewrite) (\s@GrpcGatewayRouteAction' {} a -> s {rewrite = a} :: GrpcGatewayRouteAction)++-- | An object that represents the target that traffic is routed to when a+-- request matches the gateway route.+grpcGatewayRouteAction_target :: Lens.Lens' GrpcGatewayRouteAction GatewayRouteTarget+grpcGatewayRouteAction_target = Lens.lens (\GrpcGatewayRouteAction' {target} -> target) (\s@GrpcGatewayRouteAction' {} a -> s {target = a} :: GrpcGatewayRouteAction)++instance Data.FromJSON GrpcGatewayRouteAction where+ parseJSON =+ Data.withObject+ "GrpcGatewayRouteAction"+ ( \x ->+ GrpcGatewayRouteAction'+ Prelude.<$> (x Data..:? "rewrite")+ Prelude.<*> (x Data..: "target")+ )++instance Prelude.Hashable GrpcGatewayRouteAction where+ hashWithSalt _salt GrpcGatewayRouteAction' {..} =+ _salt+ `Prelude.hashWithSalt` rewrite+ `Prelude.hashWithSalt` target++instance Prelude.NFData GrpcGatewayRouteAction where+ rnf GrpcGatewayRouteAction' {..} =+ Prelude.rnf rewrite+ `Prelude.seq` Prelude.rnf target++instance Data.ToJSON GrpcGatewayRouteAction where+ toJSON GrpcGatewayRouteAction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("rewrite" Data..=) Prelude.<$> rewrite,+ Prelude.Just ("target" Data..= target)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcGatewayRouteMatch.hs view
@@ -0,0 +1,124 @@+{-# 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.AppMesh.Types.GrpcGatewayRouteMatch+-- 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.AppMesh.Types.GrpcGatewayRouteMatch where++import Amazonka.AppMesh.Types.GatewayRouteHostnameMatch+import Amazonka.AppMesh.Types.GrpcGatewayRouteMetadata+import qualified 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 object that represents the criteria for determining a request match.+--+-- /See:/ 'newGrpcGatewayRouteMatch' smart constructor.+data GrpcGatewayRouteMatch = GrpcGatewayRouteMatch'+ { -- | The gateway route host name to be matched on.+ hostname :: Prelude.Maybe GatewayRouteHostnameMatch,+ -- | The gateway route metadata to be matched on.+ metadata :: Prelude.Maybe (Prelude.NonEmpty GrpcGatewayRouteMetadata),+ -- | The port number to match from the request.+ port :: Prelude.Maybe Prelude.Natural,+ -- | The fully qualified domain name for the service to match from the+ -- request.+ serviceName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcGatewayRouteMatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'hostname', 'grpcGatewayRouteMatch_hostname' - The gateway route host name to be matched on.+--+-- 'metadata', 'grpcGatewayRouteMatch_metadata' - The gateway route metadata to be matched on.+--+-- 'port', 'grpcGatewayRouteMatch_port' - The port number to match from the request.+--+-- 'serviceName', 'grpcGatewayRouteMatch_serviceName' - The fully qualified domain name for the service to match from the+-- request.+newGrpcGatewayRouteMatch ::+ GrpcGatewayRouteMatch+newGrpcGatewayRouteMatch =+ GrpcGatewayRouteMatch'+ { hostname = Prelude.Nothing,+ metadata = Prelude.Nothing,+ port = Prelude.Nothing,+ serviceName = Prelude.Nothing+ }++-- | The gateway route host name to be matched on.+grpcGatewayRouteMatch_hostname :: Lens.Lens' GrpcGatewayRouteMatch (Prelude.Maybe GatewayRouteHostnameMatch)+grpcGatewayRouteMatch_hostname = Lens.lens (\GrpcGatewayRouteMatch' {hostname} -> hostname) (\s@GrpcGatewayRouteMatch' {} a -> s {hostname = a} :: GrpcGatewayRouteMatch)++-- | The gateway route metadata to be matched on.+grpcGatewayRouteMatch_metadata :: Lens.Lens' GrpcGatewayRouteMatch (Prelude.Maybe (Prelude.NonEmpty GrpcGatewayRouteMetadata))+grpcGatewayRouteMatch_metadata = Lens.lens (\GrpcGatewayRouteMatch' {metadata} -> metadata) (\s@GrpcGatewayRouteMatch' {} a -> s {metadata = a} :: GrpcGatewayRouteMatch) Prelude.. Lens.mapping Lens.coerced++-- | The port number to match from the request.+grpcGatewayRouteMatch_port :: Lens.Lens' GrpcGatewayRouteMatch (Prelude.Maybe Prelude.Natural)+grpcGatewayRouteMatch_port = Lens.lens (\GrpcGatewayRouteMatch' {port} -> port) (\s@GrpcGatewayRouteMatch' {} a -> s {port = a} :: GrpcGatewayRouteMatch)++-- | The fully qualified domain name for the service to match from the+-- request.+grpcGatewayRouteMatch_serviceName :: Lens.Lens' GrpcGatewayRouteMatch (Prelude.Maybe Prelude.Text)+grpcGatewayRouteMatch_serviceName = Lens.lens (\GrpcGatewayRouteMatch' {serviceName} -> serviceName) (\s@GrpcGatewayRouteMatch' {} a -> s {serviceName = a} :: GrpcGatewayRouteMatch)++instance Data.FromJSON GrpcGatewayRouteMatch where+ parseJSON =+ Data.withObject+ "GrpcGatewayRouteMatch"+ ( \x ->+ GrpcGatewayRouteMatch'+ Prelude.<$> (x Data..:? "hostname")+ Prelude.<*> (x Data..:? "metadata")+ Prelude.<*> (x Data..:? "port")+ Prelude.<*> (x Data..:? "serviceName")+ )++instance Prelude.Hashable GrpcGatewayRouteMatch where+ hashWithSalt _salt GrpcGatewayRouteMatch' {..} =+ _salt+ `Prelude.hashWithSalt` hostname+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` serviceName++instance Prelude.NFData GrpcGatewayRouteMatch where+ rnf GrpcGatewayRouteMatch' {..} =+ Prelude.rnf hostname+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf port+ `Prelude.seq` Prelude.rnf serviceName++instance Data.ToJSON GrpcGatewayRouteMatch where+ toJSON GrpcGatewayRouteMatch' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("hostname" Data..=) Prelude.<$> hostname,+ ("metadata" Data..=) Prelude.<$> metadata,+ ("port" Data..=) Prelude.<$> port,+ ("serviceName" Data..=) Prelude.<$> serviceName+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcGatewayRouteMetadata.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.AppMesh.Types.GrpcGatewayRouteMetadata+-- 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.AppMesh.Types.GrpcGatewayRouteMetadata where++import Amazonka.AppMesh.Types.GrpcMetadataMatchMethod+import qualified 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 object representing the metadata of the gateway route.+--+-- /See:/ 'newGrpcGatewayRouteMetadata' smart constructor.+data GrpcGatewayRouteMetadata = GrpcGatewayRouteMetadata'+ { -- | Specify @True@ to match anything except the match criteria. The default+ -- value is @False@.+ invert :: Prelude.Maybe Prelude.Bool,+ -- | The criteria for determining a metadata match.+ match :: Prelude.Maybe GrpcMetadataMatchMethod,+ -- | A name for the gateway route metadata.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcGatewayRouteMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invert', 'grpcGatewayRouteMetadata_invert' - Specify @True@ to match anything except the match criteria. The default+-- value is @False@.+--+-- 'match', 'grpcGatewayRouteMetadata_match' - The criteria for determining a metadata match.+--+-- 'name', 'grpcGatewayRouteMetadata_name' - A name for the gateway route metadata.+newGrpcGatewayRouteMetadata ::+ -- | 'name'+ Prelude.Text ->+ GrpcGatewayRouteMetadata+newGrpcGatewayRouteMetadata pName_ =+ GrpcGatewayRouteMetadata'+ { invert = Prelude.Nothing,+ match = Prelude.Nothing,+ name = pName_+ }++-- | Specify @True@ to match anything except the match criteria. The default+-- value is @False@.+grpcGatewayRouteMetadata_invert :: Lens.Lens' GrpcGatewayRouteMetadata (Prelude.Maybe Prelude.Bool)+grpcGatewayRouteMetadata_invert = Lens.lens (\GrpcGatewayRouteMetadata' {invert} -> invert) (\s@GrpcGatewayRouteMetadata' {} a -> s {invert = a} :: GrpcGatewayRouteMetadata)++-- | The criteria for determining a metadata match.+grpcGatewayRouteMetadata_match :: Lens.Lens' GrpcGatewayRouteMetadata (Prelude.Maybe GrpcMetadataMatchMethod)+grpcGatewayRouteMetadata_match = Lens.lens (\GrpcGatewayRouteMetadata' {match} -> match) (\s@GrpcGatewayRouteMetadata' {} a -> s {match = a} :: GrpcGatewayRouteMetadata)++-- | A name for the gateway route metadata.+grpcGatewayRouteMetadata_name :: Lens.Lens' GrpcGatewayRouteMetadata Prelude.Text+grpcGatewayRouteMetadata_name = Lens.lens (\GrpcGatewayRouteMetadata' {name} -> name) (\s@GrpcGatewayRouteMetadata' {} a -> s {name = a} :: GrpcGatewayRouteMetadata)++instance Data.FromJSON GrpcGatewayRouteMetadata where+ parseJSON =+ Data.withObject+ "GrpcGatewayRouteMetadata"+ ( \x ->+ GrpcGatewayRouteMetadata'+ Prelude.<$> (x Data..:? "invert")+ Prelude.<*> (x Data..:? "match")+ Prelude.<*> (x Data..: "name")+ )++instance Prelude.Hashable GrpcGatewayRouteMetadata where+ hashWithSalt _salt GrpcGatewayRouteMetadata' {..} =+ _salt+ `Prelude.hashWithSalt` invert+ `Prelude.hashWithSalt` match+ `Prelude.hashWithSalt` name++instance Prelude.NFData GrpcGatewayRouteMetadata where+ rnf GrpcGatewayRouteMetadata' {..} =+ Prelude.rnf invert+ `Prelude.seq` Prelude.rnf match+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON GrpcGatewayRouteMetadata where+ toJSON GrpcGatewayRouteMetadata' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("invert" Data..=) Prelude.<$> invert,+ ("match" Data..=) Prelude.<$> match,+ Prelude.Just ("name" Data..= name)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcGatewayRouteRewrite.hs view
@@ -0,0 +1,80 @@+{-# 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.AppMesh.Types.GrpcGatewayRouteRewrite+-- 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.AppMesh.Types.GrpcGatewayRouteRewrite where++import Amazonka.AppMesh.Types.GatewayRouteHostnameRewrite+import qualified 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 object that represents the gateway route to rewrite.+--+-- /See:/ 'newGrpcGatewayRouteRewrite' smart constructor.+data GrpcGatewayRouteRewrite = GrpcGatewayRouteRewrite'+ { -- | The host name of the gateway route to rewrite.+ hostname :: Prelude.Maybe GatewayRouteHostnameRewrite+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcGatewayRouteRewrite' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'hostname', 'grpcGatewayRouteRewrite_hostname' - The host name of the gateway route to rewrite.+newGrpcGatewayRouteRewrite ::+ GrpcGatewayRouteRewrite+newGrpcGatewayRouteRewrite =+ GrpcGatewayRouteRewrite'+ { hostname =+ Prelude.Nothing+ }++-- | The host name of the gateway route to rewrite.+grpcGatewayRouteRewrite_hostname :: Lens.Lens' GrpcGatewayRouteRewrite (Prelude.Maybe GatewayRouteHostnameRewrite)+grpcGatewayRouteRewrite_hostname = Lens.lens (\GrpcGatewayRouteRewrite' {hostname} -> hostname) (\s@GrpcGatewayRouteRewrite' {} a -> s {hostname = a} :: GrpcGatewayRouteRewrite)++instance Data.FromJSON GrpcGatewayRouteRewrite where+ parseJSON =+ Data.withObject+ "GrpcGatewayRouteRewrite"+ ( \x ->+ GrpcGatewayRouteRewrite'+ Prelude.<$> (x Data..:? "hostname")+ )++instance Prelude.Hashable GrpcGatewayRouteRewrite where+ hashWithSalt _salt GrpcGatewayRouteRewrite' {..} =+ _salt `Prelude.hashWithSalt` hostname++instance Prelude.NFData GrpcGatewayRouteRewrite where+ rnf GrpcGatewayRouteRewrite' {..} =+ Prelude.rnf hostname++instance Data.ToJSON GrpcGatewayRouteRewrite where+ toJSON GrpcGatewayRouteRewrite' {..} =+ Data.object+ ( Prelude.catMaybes+ [("hostname" Data..=) Prelude.<$> hostname]+ )
+ gen/Amazonka/AppMesh/Types/GrpcMetadataMatchMethod.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.AppMesh.Types.GrpcMetadataMatchMethod+-- 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.AppMesh.Types.GrpcMetadataMatchMethod where++import Amazonka.AppMesh.Types.MatchRange+import qualified 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 object representing the method header to be matched.+--+-- /See:/ 'newGrpcMetadataMatchMethod' smart constructor.+data GrpcMetadataMatchMethod = GrpcMetadataMatchMethod'+ { -- | The exact method header to be matched on.+ exact :: Prelude.Maybe Prelude.Text,+ -- | The specified beginning characters of the method header to be matched+ -- on.+ prefix :: Prelude.Maybe Prelude.Text,+ range :: Prelude.Maybe MatchRange,+ -- | The regex used to match the method header.+ regex :: Prelude.Maybe Prelude.Text,+ -- | The specified ending characters of the method header to match on.+ suffix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcMetadataMatchMethod' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exact', 'grpcMetadataMatchMethod_exact' - The exact method header to be matched on.+--+-- 'prefix', 'grpcMetadataMatchMethod_prefix' - The specified beginning characters of the method header to be matched+-- on.+--+-- 'range', 'grpcMetadataMatchMethod_range' - Undocumented member.+--+-- 'regex', 'grpcMetadataMatchMethod_regex' - The regex used to match the method header.+--+-- 'suffix', 'grpcMetadataMatchMethod_suffix' - The specified ending characters of the method header to match on.+newGrpcMetadataMatchMethod ::+ GrpcMetadataMatchMethod+newGrpcMetadataMatchMethod =+ GrpcMetadataMatchMethod'+ { exact = Prelude.Nothing,+ prefix = Prelude.Nothing,+ range = Prelude.Nothing,+ regex = Prelude.Nothing,+ suffix = Prelude.Nothing+ }++-- | The exact method header to be matched on.+grpcMetadataMatchMethod_exact :: Lens.Lens' GrpcMetadataMatchMethod (Prelude.Maybe Prelude.Text)+grpcMetadataMatchMethod_exact = Lens.lens (\GrpcMetadataMatchMethod' {exact} -> exact) (\s@GrpcMetadataMatchMethod' {} a -> s {exact = a} :: GrpcMetadataMatchMethod)++-- | The specified beginning characters of the method header to be matched+-- on.+grpcMetadataMatchMethod_prefix :: Lens.Lens' GrpcMetadataMatchMethod (Prelude.Maybe Prelude.Text)+grpcMetadataMatchMethod_prefix = Lens.lens (\GrpcMetadataMatchMethod' {prefix} -> prefix) (\s@GrpcMetadataMatchMethod' {} a -> s {prefix = a} :: GrpcMetadataMatchMethod)++-- | Undocumented member.+grpcMetadataMatchMethod_range :: Lens.Lens' GrpcMetadataMatchMethod (Prelude.Maybe MatchRange)+grpcMetadataMatchMethod_range = Lens.lens (\GrpcMetadataMatchMethod' {range} -> range) (\s@GrpcMetadataMatchMethod' {} a -> s {range = a} :: GrpcMetadataMatchMethod)++-- | The regex used to match the method header.+grpcMetadataMatchMethod_regex :: Lens.Lens' GrpcMetadataMatchMethod (Prelude.Maybe Prelude.Text)+grpcMetadataMatchMethod_regex = Lens.lens (\GrpcMetadataMatchMethod' {regex} -> regex) (\s@GrpcMetadataMatchMethod' {} a -> s {regex = a} :: GrpcMetadataMatchMethod)++-- | The specified ending characters of the method header to match on.+grpcMetadataMatchMethod_suffix :: Lens.Lens' GrpcMetadataMatchMethod (Prelude.Maybe Prelude.Text)+grpcMetadataMatchMethod_suffix = Lens.lens (\GrpcMetadataMatchMethod' {suffix} -> suffix) (\s@GrpcMetadataMatchMethod' {} a -> s {suffix = a} :: GrpcMetadataMatchMethod)++instance Data.FromJSON GrpcMetadataMatchMethod where+ parseJSON =+ Data.withObject+ "GrpcMetadataMatchMethod"+ ( \x ->+ GrpcMetadataMatchMethod'+ Prelude.<$> (x Data..:? "exact")+ Prelude.<*> (x Data..:? "prefix")+ Prelude.<*> (x Data..:? "range")+ Prelude.<*> (x Data..:? "regex")+ Prelude.<*> (x Data..:? "suffix")+ )++instance Prelude.Hashable GrpcMetadataMatchMethod where+ hashWithSalt _salt GrpcMetadataMatchMethod' {..} =+ _salt+ `Prelude.hashWithSalt` exact+ `Prelude.hashWithSalt` prefix+ `Prelude.hashWithSalt` range+ `Prelude.hashWithSalt` regex+ `Prelude.hashWithSalt` suffix++instance Prelude.NFData GrpcMetadataMatchMethod where+ rnf GrpcMetadataMatchMethod' {..} =+ Prelude.rnf exact+ `Prelude.seq` Prelude.rnf prefix+ `Prelude.seq` Prelude.rnf range+ `Prelude.seq` Prelude.rnf regex+ `Prelude.seq` Prelude.rnf suffix++instance Data.ToJSON GrpcMetadataMatchMethod where+ toJSON GrpcMetadataMatchMethod' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("exact" Data..=) Prelude.<$> exact,+ ("prefix" Data..=) Prelude.<$> prefix,+ ("range" Data..=) Prelude.<$> range,+ ("regex" Data..=) Prelude.<$> regex,+ ("suffix" Data..=) Prelude.<$> suffix+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcRetryPolicy.hs view
@@ -0,0 +1,181 @@+{-# 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.AppMesh.Types.GrpcRetryPolicy+-- 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.AppMesh.Types.GrpcRetryPolicy where++import Amazonka.AppMesh.Types.Duration+import Amazonka.AppMesh.Types.GrpcRetryPolicyEvent+import Amazonka.AppMesh.Types.TcpRetryPolicyEvent+import qualified 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 object that represents a retry policy. Specify at least one value for+-- at least one of the types of @RetryEvents@, a value for @maxRetries@,+-- and a value for @perRetryTimeout@. Both @server-error@ and+-- @gateway-error@ under @httpRetryEvents@ include the Envoy @reset@+-- policy. For more information on the @reset@ policy, see the+-- <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on Envoy documentation>.+--+-- /See:/ 'newGrpcRetryPolicy' smart constructor.+data GrpcRetryPolicy = GrpcRetryPolicy'+ { -- | Specify at least one of the valid values.+ grpcRetryEvents :: Prelude.Maybe (Prelude.NonEmpty GrpcRetryPolicyEvent),+ -- | Specify at least one of the following values.+ --+ -- - __server-error__ – HTTP status codes 500, 501, 502, 503, 504, 505,+ -- 506, 507, 508, 510, and 511+ --+ -- - __gateway-error__ – HTTP status codes 502, 503, and 504+ --+ -- - __client-error__ – HTTP status code 409+ --+ -- - __stream-error__ – Retry on refused stream+ httpRetryEvents :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | Specify a valid value. The event occurs before any processing of a+ -- request has started and is encountered when the upstream is temporarily+ -- or permanently unavailable.+ tcpRetryEvents :: Prelude.Maybe (Prelude.NonEmpty TcpRetryPolicyEvent),+ -- | The maximum number of retry attempts.+ maxRetries :: Prelude.Natural,+ -- | The timeout for each retry attempt.+ perRetryTimeout :: Duration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcRetryPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'grpcRetryEvents', 'grpcRetryPolicy_grpcRetryEvents' - Specify at least one of the valid values.+--+-- 'httpRetryEvents', 'grpcRetryPolicy_httpRetryEvents' - Specify at least one of the following values.+--+-- - __server-error__ – HTTP status codes 500, 501, 502, 503, 504, 505,+-- 506, 507, 508, 510, and 511+--+-- - __gateway-error__ – HTTP status codes 502, 503, and 504+--+-- - __client-error__ – HTTP status code 409+--+-- - __stream-error__ – Retry on refused stream+--+-- 'tcpRetryEvents', 'grpcRetryPolicy_tcpRetryEvents' - Specify a valid value. The event occurs before any processing of a+-- request has started and is encountered when the upstream is temporarily+-- or permanently unavailable.+--+-- 'maxRetries', 'grpcRetryPolicy_maxRetries' - The maximum number of retry attempts.+--+-- 'perRetryTimeout', 'grpcRetryPolicy_perRetryTimeout' - The timeout for each retry attempt.+newGrpcRetryPolicy ::+ -- | 'maxRetries'+ Prelude.Natural ->+ -- | 'perRetryTimeout'+ Duration ->+ GrpcRetryPolicy+newGrpcRetryPolicy pMaxRetries_ pPerRetryTimeout_ =+ GrpcRetryPolicy'+ { grpcRetryEvents = Prelude.Nothing,+ httpRetryEvents = Prelude.Nothing,+ tcpRetryEvents = Prelude.Nothing,+ maxRetries = pMaxRetries_,+ perRetryTimeout = pPerRetryTimeout_+ }++-- | Specify at least one of the valid values.+grpcRetryPolicy_grpcRetryEvents :: Lens.Lens' GrpcRetryPolicy (Prelude.Maybe (Prelude.NonEmpty GrpcRetryPolicyEvent))+grpcRetryPolicy_grpcRetryEvents = Lens.lens (\GrpcRetryPolicy' {grpcRetryEvents} -> grpcRetryEvents) (\s@GrpcRetryPolicy' {} a -> s {grpcRetryEvents = a} :: GrpcRetryPolicy) Prelude.. Lens.mapping Lens.coerced++-- | Specify at least one of the following values.+--+-- - __server-error__ – HTTP status codes 500, 501, 502, 503, 504, 505,+-- 506, 507, 508, 510, and 511+--+-- - __gateway-error__ – HTTP status codes 502, 503, and 504+--+-- - __client-error__ – HTTP status code 409+--+-- - __stream-error__ – Retry on refused stream+grpcRetryPolicy_httpRetryEvents :: Lens.Lens' GrpcRetryPolicy (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+grpcRetryPolicy_httpRetryEvents = Lens.lens (\GrpcRetryPolicy' {httpRetryEvents} -> httpRetryEvents) (\s@GrpcRetryPolicy' {} a -> s {httpRetryEvents = a} :: GrpcRetryPolicy) Prelude.. Lens.mapping Lens.coerced++-- | Specify a valid value. The event occurs before any processing of a+-- request has started and is encountered when the upstream is temporarily+-- or permanently unavailable.+grpcRetryPolicy_tcpRetryEvents :: Lens.Lens' GrpcRetryPolicy (Prelude.Maybe (Prelude.NonEmpty TcpRetryPolicyEvent))+grpcRetryPolicy_tcpRetryEvents = Lens.lens (\GrpcRetryPolicy' {tcpRetryEvents} -> tcpRetryEvents) (\s@GrpcRetryPolicy' {} a -> s {tcpRetryEvents = a} :: GrpcRetryPolicy) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of retry attempts.+grpcRetryPolicy_maxRetries :: Lens.Lens' GrpcRetryPolicy Prelude.Natural+grpcRetryPolicy_maxRetries = Lens.lens (\GrpcRetryPolicy' {maxRetries} -> maxRetries) (\s@GrpcRetryPolicy' {} a -> s {maxRetries = a} :: GrpcRetryPolicy)++-- | The timeout for each retry attempt.+grpcRetryPolicy_perRetryTimeout :: Lens.Lens' GrpcRetryPolicy Duration+grpcRetryPolicy_perRetryTimeout = Lens.lens (\GrpcRetryPolicy' {perRetryTimeout} -> perRetryTimeout) (\s@GrpcRetryPolicy' {} a -> s {perRetryTimeout = a} :: GrpcRetryPolicy)++instance Data.FromJSON GrpcRetryPolicy where+ parseJSON =+ Data.withObject+ "GrpcRetryPolicy"+ ( \x ->+ GrpcRetryPolicy'+ Prelude.<$> (x Data..:? "grpcRetryEvents")+ Prelude.<*> (x Data..:? "httpRetryEvents")+ Prelude.<*> (x Data..:? "tcpRetryEvents")+ Prelude.<*> (x Data..: "maxRetries")+ Prelude.<*> (x Data..: "perRetryTimeout")+ )++instance Prelude.Hashable GrpcRetryPolicy where+ hashWithSalt _salt GrpcRetryPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` grpcRetryEvents+ `Prelude.hashWithSalt` httpRetryEvents+ `Prelude.hashWithSalt` tcpRetryEvents+ `Prelude.hashWithSalt` maxRetries+ `Prelude.hashWithSalt` perRetryTimeout++instance Prelude.NFData GrpcRetryPolicy where+ rnf GrpcRetryPolicy' {..} =+ Prelude.rnf grpcRetryEvents+ `Prelude.seq` Prelude.rnf httpRetryEvents+ `Prelude.seq` Prelude.rnf tcpRetryEvents+ `Prelude.seq` Prelude.rnf maxRetries+ `Prelude.seq` Prelude.rnf perRetryTimeout++instance Data.ToJSON GrpcRetryPolicy where+ toJSON GrpcRetryPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("grpcRetryEvents" Data..=)+ Prelude.<$> grpcRetryEvents,+ ("httpRetryEvents" Data..=)+ Prelude.<$> httpRetryEvents,+ ("tcpRetryEvents" Data..=)+ Prelude.<$> tcpRetryEvents,+ Prelude.Just ("maxRetries" Data..= maxRetries),+ Prelude.Just+ ("perRetryTimeout" Data..= perRetryTimeout)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcRetryPolicyEvent.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.AppMesh.Types.GrpcRetryPolicyEvent+-- 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.AppMesh.Types.GrpcRetryPolicyEvent+ ( GrpcRetryPolicyEvent+ ( ..,+ GrpcRetryPolicyEvent_Cancelled,+ GrpcRetryPolicyEvent_Deadline_exceeded,+ GrpcRetryPolicyEvent_Internal,+ GrpcRetryPolicyEvent_Resource_exhausted,+ GrpcRetryPolicyEvent_Unavailable+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype GrpcRetryPolicyEvent = GrpcRetryPolicyEvent'+ { fromGrpcRetryPolicyEvent ::+ 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 GrpcRetryPolicyEvent_Cancelled :: GrpcRetryPolicyEvent+pattern GrpcRetryPolicyEvent_Cancelled = GrpcRetryPolicyEvent' "cancelled"++pattern GrpcRetryPolicyEvent_Deadline_exceeded :: GrpcRetryPolicyEvent+pattern GrpcRetryPolicyEvent_Deadline_exceeded = GrpcRetryPolicyEvent' "deadline-exceeded"++pattern GrpcRetryPolicyEvent_Internal :: GrpcRetryPolicyEvent+pattern GrpcRetryPolicyEvent_Internal = GrpcRetryPolicyEvent' "internal"++pattern GrpcRetryPolicyEvent_Resource_exhausted :: GrpcRetryPolicyEvent+pattern GrpcRetryPolicyEvent_Resource_exhausted = GrpcRetryPolicyEvent' "resource-exhausted"++pattern GrpcRetryPolicyEvent_Unavailable :: GrpcRetryPolicyEvent+pattern GrpcRetryPolicyEvent_Unavailable = GrpcRetryPolicyEvent' "unavailable"++{-# COMPLETE+ GrpcRetryPolicyEvent_Cancelled,+ GrpcRetryPolicyEvent_Deadline_exceeded,+ GrpcRetryPolicyEvent_Internal,+ GrpcRetryPolicyEvent_Resource_exhausted,+ GrpcRetryPolicyEvent_Unavailable,+ GrpcRetryPolicyEvent'+ #-}
+ gen/Amazonka/AppMesh/Types/GrpcRoute.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.AppMesh.Types.GrpcRoute+-- 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.AppMesh.Types.GrpcRoute where++import Amazonka.AppMesh.Types.GrpcRetryPolicy+import Amazonka.AppMesh.Types.GrpcRouteAction+import Amazonka.AppMesh.Types.GrpcRouteMatch+import Amazonka.AppMesh.Types.GrpcTimeout+import qualified 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 object that represents a gRPC route type.+--+-- /See:/ 'newGrpcRoute' smart constructor.+data GrpcRoute = GrpcRoute'+ { -- | An object that represents a retry policy.+ retryPolicy :: Prelude.Maybe GrpcRetryPolicy,+ -- | An object that represents types of timeouts.+ timeout :: Prelude.Maybe GrpcTimeout,+ -- | An object that represents the action to take if a match is determined.+ action :: GrpcRouteAction,+ -- | An object that represents the criteria for determining a request match.+ match :: GrpcRouteMatch+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'retryPolicy', 'grpcRoute_retryPolicy' - An object that represents a retry policy.+--+-- 'timeout', 'grpcRoute_timeout' - An object that represents types of timeouts.+--+-- 'action', 'grpcRoute_action' - An object that represents the action to take if a match is determined.+--+-- 'match', 'grpcRoute_match' - An object that represents the criteria for determining a request match.+newGrpcRoute ::+ -- | 'action'+ GrpcRouteAction ->+ -- | 'match'+ GrpcRouteMatch ->+ GrpcRoute+newGrpcRoute pAction_ pMatch_ =+ GrpcRoute'+ { retryPolicy = Prelude.Nothing,+ timeout = Prelude.Nothing,+ action = pAction_,+ match = pMatch_+ }++-- | An object that represents a retry policy.+grpcRoute_retryPolicy :: Lens.Lens' GrpcRoute (Prelude.Maybe GrpcRetryPolicy)+grpcRoute_retryPolicy = Lens.lens (\GrpcRoute' {retryPolicy} -> retryPolicy) (\s@GrpcRoute' {} a -> s {retryPolicy = a} :: GrpcRoute)++-- | An object that represents types of timeouts.+grpcRoute_timeout :: Lens.Lens' GrpcRoute (Prelude.Maybe GrpcTimeout)+grpcRoute_timeout = Lens.lens (\GrpcRoute' {timeout} -> timeout) (\s@GrpcRoute' {} a -> s {timeout = a} :: GrpcRoute)++-- | An object that represents the action to take if a match is determined.+grpcRoute_action :: Lens.Lens' GrpcRoute GrpcRouteAction+grpcRoute_action = Lens.lens (\GrpcRoute' {action} -> action) (\s@GrpcRoute' {} a -> s {action = a} :: GrpcRoute)++-- | An object that represents the criteria for determining a request match.+grpcRoute_match :: Lens.Lens' GrpcRoute GrpcRouteMatch+grpcRoute_match = Lens.lens (\GrpcRoute' {match} -> match) (\s@GrpcRoute' {} a -> s {match = a} :: GrpcRoute)++instance Data.FromJSON GrpcRoute where+ parseJSON =+ Data.withObject+ "GrpcRoute"+ ( \x ->+ GrpcRoute'+ Prelude.<$> (x Data..:? "retryPolicy")+ Prelude.<*> (x Data..:? "timeout")+ Prelude.<*> (x Data..: "action")+ Prelude.<*> (x Data..: "match")+ )++instance Prelude.Hashable GrpcRoute where+ hashWithSalt _salt GrpcRoute' {..} =+ _salt+ `Prelude.hashWithSalt` retryPolicy+ `Prelude.hashWithSalt` timeout+ `Prelude.hashWithSalt` action+ `Prelude.hashWithSalt` match++instance Prelude.NFData GrpcRoute where+ rnf GrpcRoute' {..} =+ Prelude.rnf retryPolicy+ `Prelude.seq` Prelude.rnf timeout+ `Prelude.seq` Prelude.rnf action+ `Prelude.seq` Prelude.rnf match++instance Data.ToJSON GrpcRoute where+ toJSON GrpcRoute' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("retryPolicy" Data..=) Prelude.<$> retryPolicy,+ ("timeout" Data..=) Prelude.<$> timeout,+ Prelude.Just ("action" Data..= action),+ Prelude.Just ("match" Data..= match)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcRouteAction.hs view
@@ -0,0 +1,87 @@+{-# 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.AppMesh.Types.GrpcRouteAction+-- 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.AppMesh.Types.GrpcRouteAction where++import Amazonka.AppMesh.Types.WeightedTarget+import qualified 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 object that represents the action to take if a match is determined.+--+-- /See:/ 'newGrpcRouteAction' smart constructor.+data GrpcRouteAction = GrpcRouteAction'+ { -- | An object that represents the targets that traffic is routed to when a+ -- request matches the route.+ weightedTargets :: Prelude.NonEmpty WeightedTarget+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcRouteAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'weightedTargets', 'grpcRouteAction_weightedTargets' - An object that represents the targets that traffic is routed to when a+-- request matches the route.+newGrpcRouteAction ::+ -- | 'weightedTargets'+ Prelude.NonEmpty WeightedTarget ->+ GrpcRouteAction+newGrpcRouteAction pWeightedTargets_ =+ GrpcRouteAction'+ { weightedTargets =+ Lens.coerced Lens.# pWeightedTargets_+ }++-- | An object that represents the targets that traffic is routed to when a+-- request matches the route.+grpcRouteAction_weightedTargets :: Lens.Lens' GrpcRouteAction (Prelude.NonEmpty WeightedTarget)+grpcRouteAction_weightedTargets = Lens.lens (\GrpcRouteAction' {weightedTargets} -> weightedTargets) (\s@GrpcRouteAction' {} a -> s {weightedTargets = a} :: GrpcRouteAction) Prelude.. Lens.coerced++instance Data.FromJSON GrpcRouteAction where+ parseJSON =+ Data.withObject+ "GrpcRouteAction"+ ( \x ->+ GrpcRouteAction'+ Prelude.<$> (x Data..: "weightedTargets")+ )++instance Prelude.Hashable GrpcRouteAction where+ hashWithSalt _salt GrpcRouteAction' {..} =+ _salt `Prelude.hashWithSalt` weightedTargets++instance Prelude.NFData GrpcRouteAction where+ rnf GrpcRouteAction' {..} =+ Prelude.rnf weightedTargets++instance Data.ToJSON GrpcRouteAction where+ toJSON GrpcRouteAction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("weightedTargets" Data..= weightedTargets)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcRouteMatch.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.GrpcRouteMatch+-- 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.AppMesh.Types.GrpcRouteMatch where++import Amazonka.AppMesh.Types.GrpcRouteMetadata+import qualified 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 object that represents the criteria for determining a request match.+--+-- /See:/ 'newGrpcRouteMatch' smart constructor.+data GrpcRouteMatch = GrpcRouteMatch'+ { -- | An object that represents the data to match from the request.+ metadata :: Prelude.Maybe (Prelude.NonEmpty GrpcRouteMetadata),+ -- | The method name to match from the request. If you specify a name, you+ -- must also specify a @serviceName@.+ methodName :: Prelude.Maybe Prelude.Text,+ -- | The port number to match on.+ port :: Prelude.Maybe Prelude.Natural,+ -- | The fully qualified domain name for the service to match from the+ -- request.+ serviceName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcRouteMatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metadata', 'grpcRouteMatch_metadata' - An object that represents the data to match from the request.+--+-- 'methodName', 'grpcRouteMatch_methodName' - The method name to match from the request. If you specify a name, you+-- must also specify a @serviceName@.+--+-- 'port', 'grpcRouteMatch_port' - The port number to match on.+--+-- 'serviceName', 'grpcRouteMatch_serviceName' - The fully qualified domain name for the service to match from the+-- request.+newGrpcRouteMatch ::+ GrpcRouteMatch+newGrpcRouteMatch =+ GrpcRouteMatch'+ { metadata = Prelude.Nothing,+ methodName = Prelude.Nothing,+ port = Prelude.Nothing,+ serviceName = Prelude.Nothing+ }++-- | An object that represents the data to match from the request.+grpcRouteMatch_metadata :: Lens.Lens' GrpcRouteMatch (Prelude.Maybe (Prelude.NonEmpty GrpcRouteMetadata))+grpcRouteMatch_metadata = Lens.lens (\GrpcRouteMatch' {metadata} -> metadata) (\s@GrpcRouteMatch' {} a -> s {metadata = a} :: GrpcRouteMatch) Prelude.. Lens.mapping Lens.coerced++-- | The method name to match from the request. If you specify a name, you+-- must also specify a @serviceName@.+grpcRouteMatch_methodName :: Lens.Lens' GrpcRouteMatch (Prelude.Maybe Prelude.Text)+grpcRouteMatch_methodName = Lens.lens (\GrpcRouteMatch' {methodName} -> methodName) (\s@GrpcRouteMatch' {} a -> s {methodName = a} :: GrpcRouteMatch)++-- | The port number to match on.+grpcRouteMatch_port :: Lens.Lens' GrpcRouteMatch (Prelude.Maybe Prelude.Natural)+grpcRouteMatch_port = Lens.lens (\GrpcRouteMatch' {port} -> port) (\s@GrpcRouteMatch' {} a -> s {port = a} :: GrpcRouteMatch)++-- | The fully qualified domain name for the service to match from the+-- request.+grpcRouteMatch_serviceName :: Lens.Lens' GrpcRouteMatch (Prelude.Maybe Prelude.Text)+grpcRouteMatch_serviceName = Lens.lens (\GrpcRouteMatch' {serviceName} -> serviceName) (\s@GrpcRouteMatch' {} a -> s {serviceName = a} :: GrpcRouteMatch)++instance Data.FromJSON GrpcRouteMatch where+ parseJSON =+ Data.withObject+ "GrpcRouteMatch"+ ( \x ->+ GrpcRouteMatch'+ Prelude.<$> (x Data..:? "metadata")+ Prelude.<*> (x Data..:? "methodName")+ Prelude.<*> (x Data..:? "port")+ Prelude.<*> (x Data..:? "serviceName")+ )++instance Prelude.Hashable GrpcRouteMatch where+ hashWithSalt _salt GrpcRouteMatch' {..} =+ _salt+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` methodName+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` serviceName++instance Prelude.NFData GrpcRouteMatch where+ rnf GrpcRouteMatch' {..} =+ Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf methodName+ `Prelude.seq` Prelude.rnf port+ `Prelude.seq` Prelude.rnf serviceName++instance Data.ToJSON GrpcRouteMatch where+ toJSON GrpcRouteMatch' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("metadata" Data..=) Prelude.<$> metadata,+ ("methodName" Data..=) Prelude.<$> methodName,+ ("port" Data..=) Prelude.<$> port,+ ("serviceName" Data..=) Prelude.<$> serviceName+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcRouteMetadata.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.AppMesh.Types.GrpcRouteMetadata+-- 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.AppMesh.Types.GrpcRouteMetadata where++import Amazonka.AppMesh.Types.GrpcRouteMetadataMatchMethod+import qualified 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 object that represents the match metadata for the route.+--+-- /See:/ 'newGrpcRouteMetadata' smart constructor.+data GrpcRouteMetadata = GrpcRouteMetadata'+ { -- | Specify @True@ to match anything except the match criteria. The default+ -- value is @False@.+ invert :: Prelude.Maybe Prelude.Bool,+ -- | An object that represents the data to match from the request.+ match :: Prelude.Maybe GrpcRouteMetadataMatchMethod,+ -- | The name of the route.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcRouteMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invert', 'grpcRouteMetadata_invert' - Specify @True@ to match anything except the match criteria. The default+-- value is @False@.+--+-- 'match', 'grpcRouteMetadata_match' - An object that represents the data to match from the request.+--+-- 'name', 'grpcRouteMetadata_name' - The name of the route.+newGrpcRouteMetadata ::+ -- | 'name'+ Prelude.Text ->+ GrpcRouteMetadata+newGrpcRouteMetadata pName_ =+ GrpcRouteMetadata'+ { invert = Prelude.Nothing,+ match = Prelude.Nothing,+ name = pName_+ }++-- | Specify @True@ to match anything except the match criteria. The default+-- value is @False@.+grpcRouteMetadata_invert :: Lens.Lens' GrpcRouteMetadata (Prelude.Maybe Prelude.Bool)+grpcRouteMetadata_invert = Lens.lens (\GrpcRouteMetadata' {invert} -> invert) (\s@GrpcRouteMetadata' {} a -> s {invert = a} :: GrpcRouteMetadata)++-- | An object that represents the data to match from the request.+grpcRouteMetadata_match :: Lens.Lens' GrpcRouteMetadata (Prelude.Maybe GrpcRouteMetadataMatchMethod)+grpcRouteMetadata_match = Lens.lens (\GrpcRouteMetadata' {match} -> match) (\s@GrpcRouteMetadata' {} a -> s {match = a} :: GrpcRouteMetadata)++-- | The name of the route.+grpcRouteMetadata_name :: Lens.Lens' GrpcRouteMetadata Prelude.Text+grpcRouteMetadata_name = Lens.lens (\GrpcRouteMetadata' {name} -> name) (\s@GrpcRouteMetadata' {} a -> s {name = a} :: GrpcRouteMetadata)++instance Data.FromJSON GrpcRouteMetadata where+ parseJSON =+ Data.withObject+ "GrpcRouteMetadata"+ ( \x ->+ GrpcRouteMetadata'+ Prelude.<$> (x Data..:? "invert")+ Prelude.<*> (x Data..:? "match")+ Prelude.<*> (x Data..: "name")+ )++instance Prelude.Hashable GrpcRouteMetadata where+ hashWithSalt _salt GrpcRouteMetadata' {..} =+ _salt+ `Prelude.hashWithSalt` invert+ `Prelude.hashWithSalt` match+ `Prelude.hashWithSalt` name++instance Prelude.NFData GrpcRouteMetadata where+ rnf GrpcRouteMetadata' {..} =+ Prelude.rnf invert+ `Prelude.seq` Prelude.rnf match+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON GrpcRouteMetadata where+ toJSON GrpcRouteMetadata' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("invert" Data..=) Prelude.<$> invert,+ ("match" Data..=) Prelude.<$> match,+ Prelude.Just ("name" Data..= name)+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcRouteMetadataMatchMethod.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.GrpcRouteMetadataMatchMethod+-- 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.AppMesh.Types.GrpcRouteMetadataMatchMethod where++import Amazonka.AppMesh.Types.MatchRange+import qualified 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 object that represents the match method. Specify one of the match+-- values.+--+-- /See:/ 'newGrpcRouteMetadataMatchMethod' smart constructor.+data GrpcRouteMetadataMatchMethod = GrpcRouteMetadataMatchMethod'+ { -- | The value sent by the client must match the specified value exactly.+ exact :: Prelude.Maybe Prelude.Text,+ -- | The value sent by the client must begin with the specified characters.+ prefix :: Prelude.Maybe Prelude.Text,+ -- | An object that represents the range of values to match on.+ range :: Prelude.Maybe MatchRange,+ -- | The value sent by the client must include the specified characters.+ regex :: Prelude.Maybe Prelude.Text,+ -- | The value sent by the client must end with the specified characters.+ suffix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcRouteMetadataMatchMethod' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exact', 'grpcRouteMetadataMatchMethod_exact' - The value sent by the client must match the specified value exactly.+--+-- 'prefix', 'grpcRouteMetadataMatchMethod_prefix' - The value sent by the client must begin with the specified characters.+--+-- 'range', 'grpcRouteMetadataMatchMethod_range' - An object that represents the range of values to match on.+--+-- 'regex', 'grpcRouteMetadataMatchMethod_regex' - The value sent by the client must include the specified characters.+--+-- 'suffix', 'grpcRouteMetadataMatchMethod_suffix' - The value sent by the client must end with the specified characters.+newGrpcRouteMetadataMatchMethod ::+ GrpcRouteMetadataMatchMethod+newGrpcRouteMetadataMatchMethod =+ GrpcRouteMetadataMatchMethod'+ { exact =+ Prelude.Nothing,+ prefix = Prelude.Nothing,+ range = Prelude.Nothing,+ regex = Prelude.Nothing,+ suffix = Prelude.Nothing+ }++-- | The value sent by the client must match the specified value exactly.+grpcRouteMetadataMatchMethod_exact :: Lens.Lens' GrpcRouteMetadataMatchMethod (Prelude.Maybe Prelude.Text)+grpcRouteMetadataMatchMethod_exact = Lens.lens (\GrpcRouteMetadataMatchMethod' {exact} -> exact) (\s@GrpcRouteMetadataMatchMethod' {} a -> s {exact = a} :: GrpcRouteMetadataMatchMethod)++-- | The value sent by the client must begin with the specified characters.+grpcRouteMetadataMatchMethod_prefix :: Lens.Lens' GrpcRouteMetadataMatchMethod (Prelude.Maybe Prelude.Text)+grpcRouteMetadataMatchMethod_prefix = Lens.lens (\GrpcRouteMetadataMatchMethod' {prefix} -> prefix) (\s@GrpcRouteMetadataMatchMethod' {} a -> s {prefix = a} :: GrpcRouteMetadataMatchMethod)++-- | An object that represents the range of values to match on.+grpcRouteMetadataMatchMethod_range :: Lens.Lens' GrpcRouteMetadataMatchMethod (Prelude.Maybe MatchRange)+grpcRouteMetadataMatchMethod_range = Lens.lens (\GrpcRouteMetadataMatchMethod' {range} -> range) (\s@GrpcRouteMetadataMatchMethod' {} a -> s {range = a} :: GrpcRouteMetadataMatchMethod)++-- | The value sent by the client must include the specified characters.+grpcRouteMetadataMatchMethod_regex :: Lens.Lens' GrpcRouteMetadataMatchMethod (Prelude.Maybe Prelude.Text)+grpcRouteMetadataMatchMethod_regex = Lens.lens (\GrpcRouteMetadataMatchMethod' {regex} -> regex) (\s@GrpcRouteMetadataMatchMethod' {} a -> s {regex = a} :: GrpcRouteMetadataMatchMethod)++-- | The value sent by the client must end with the specified characters.+grpcRouteMetadataMatchMethod_suffix :: Lens.Lens' GrpcRouteMetadataMatchMethod (Prelude.Maybe Prelude.Text)+grpcRouteMetadataMatchMethod_suffix = Lens.lens (\GrpcRouteMetadataMatchMethod' {suffix} -> suffix) (\s@GrpcRouteMetadataMatchMethod' {} a -> s {suffix = a} :: GrpcRouteMetadataMatchMethod)++instance Data.FromJSON GrpcRouteMetadataMatchMethod where+ parseJSON =+ Data.withObject+ "GrpcRouteMetadataMatchMethod"+ ( \x ->+ GrpcRouteMetadataMatchMethod'+ Prelude.<$> (x Data..:? "exact")+ Prelude.<*> (x Data..:? "prefix")+ Prelude.<*> (x Data..:? "range")+ Prelude.<*> (x Data..:? "regex")+ Prelude.<*> (x Data..:? "suffix")+ )++instance+ Prelude.Hashable+ GrpcRouteMetadataMatchMethod+ where+ hashWithSalt _salt GrpcRouteMetadataMatchMethod' {..} =+ _salt+ `Prelude.hashWithSalt` exact+ `Prelude.hashWithSalt` prefix+ `Prelude.hashWithSalt` range+ `Prelude.hashWithSalt` regex+ `Prelude.hashWithSalt` suffix++instance Prelude.NFData GrpcRouteMetadataMatchMethod where+ rnf GrpcRouteMetadataMatchMethod' {..} =+ Prelude.rnf exact+ `Prelude.seq` Prelude.rnf prefix+ `Prelude.seq` Prelude.rnf range+ `Prelude.seq` Prelude.rnf regex+ `Prelude.seq` Prelude.rnf suffix++instance Data.ToJSON GrpcRouteMetadataMatchMethod where+ toJSON GrpcRouteMetadataMatchMethod' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("exact" Data..=) Prelude.<$> exact,+ ("prefix" Data..=) Prelude.<$> prefix,+ ("range" Data..=) Prelude.<$> range,+ ("regex" Data..=) Prelude.<$> regex,+ ("suffix" Data..=) Prelude.<$> suffix+ ]+ )
+ gen/Amazonka/AppMesh/Types/GrpcTimeout.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.AppMesh.Types.GrpcTimeout+-- 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.AppMesh.Types.GrpcTimeout where++import Amazonka.AppMesh.Types.Duration+import qualified 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 object that represents types of timeouts.+--+-- /See:/ 'newGrpcTimeout' smart constructor.+data GrpcTimeout = GrpcTimeout'+ { -- | An object that represents an idle timeout. An idle timeout bounds the+ -- amount of time that a connection may be idle. The default value is none.+ idle :: Prelude.Maybe Duration,+ -- | An object that represents a per request timeout. The default value is 15+ -- seconds. If you set a higher timeout, then make sure that the higher+ -- value is set for each App Mesh resource in a conversation. For example,+ -- if a virtual node backend uses a virtual router provider to route to+ -- another virtual node, then the timeout should be greater than 15 seconds+ -- for the source and destination virtual node and the route.+ perRequest :: Prelude.Maybe Duration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrpcTimeout' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'idle', 'grpcTimeout_idle' - An object that represents an idle timeout. An idle timeout bounds the+-- amount of time that a connection may be idle. The default value is none.+--+-- 'perRequest', 'grpcTimeout_perRequest' - An object that represents a per request timeout. The default value is 15+-- seconds. If you set a higher timeout, then make sure that the higher+-- value is set for each App Mesh resource in a conversation. For example,+-- if a virtual node backend uses a virtual router provider to route to+-- another virtual node, then the timeout should be greater than 15 seconds+-- for the source and destination virtual node and the route.+newGrpcTimeout ::+ GrpcTimeout+newGrpcTimeout =+ GrpcTimeout'+ { idle = Prelude.Nothing,+ perRequest = Prelude.Nothing+ }++-- | An object that represents an idle timeout. An idle timeout bounds the+-- amount of time that a connection may be idle. The default value is none.+grpcTimeout_idle :: Lens.Lens' GrpcTimeout (Prelude.Maybe Duration)+grpcTimeout_idle = Lens.lens (\GrpcTimeout' {idle} -> idle) (\s@GrpcTimeout' {} a -> s {idle = a} :: GrpcTimeout)++-- | An object that represents a per request timeout. The default value is 15+-- seconds. If you set a higher timeout, then make sure that the higher+-- value is set for each App Mesh resource in a conversation. For example,+-- if a virtual node backend uses a virtual router provider to route to+-- another virtual node, then the timeout should be greater than 15 seconds+-- for the source and destination virtual node and the route.+grpcTimeout_perRequest :: Lens.Lens' GrpcTimeout (Prelude.Maybe Duration)+grpcTimeout_perRequest = Lens.lens (\GrpcTimeout' {perRequest} -> perRequest) (\s@GrpcTimeout' {} a -> s {perRequest = a} :: GrpcTimeout)++instance Data.FromJSON GrpcTimeout where+ parseJSON =+ Data.withObject+ "GrpcTimeout"+ ( \x ->+ GrpcTimeout'+ Prelude.<$> (x Data..:? "idle")+ Prelude.<*> (x Data..:? "perRequest")+ )++instance Prelude.Hashable GrpcTimeout where+ hashWithSalt _salt GrpcTimeout' {..} =+ _salt+ `Prelude.hashWithSalt` idle+ `Prelude.hashWithSalt` perRequest++instance Prelude.NFData GrpcTimeout where+ rnf GrpcTimeout' {..} =+ Prelude.rnf idle+ `Prelude.seq` Prelude.rnf perRequest++instance Data.ToJSON GrpcTimeout where+ toJSON GrpcTimeout' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("idle" Data..=) Prelude.<$> idle,+ ("perRequest" Data..=) Prelude.<$> perRequest+ ]+ )
+ gen/Amazonka/AppMesh/Types/HeaderMatchMethod.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.HeaderMatchMethod+-- 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.AppMesh.Types.HeaderMatchMethod where++import Amazonka.AppMesh.Types.MatchRange+import qualified 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 object that represents the method and value to match with the header+-- value sent in a request. Specify one match method.+--+-- /See:/ 'newHeaderMatchMethod' smart constructor.+data HeaderMatchMethod = HeaderMatchMethod'+ { -- | The value sent by the client must match the specified value exactly.+ exact :: Prelude.Maybe Prelude.Text,+ -- | The value sent by the client must begin with the specified characters.+ prefix :: Prelude.Maybe Prelude.Text,+ -- | An object that represents the range of values to match on.+ range :: Prelude.Maybe MatchRange,+ -- | The value sent by the client must include the specified characters.+ regex :: Prelude.Maybe Prelude.Text,+ -- | The value sent by the client must end with the specified characters.+ suffix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HeaderMatchMethod' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exact', 'headerMatchMethod_exact' - The value sent by the client must match the specified value exactly.+--+-- 'prefix', 'headerMatchMethod_prefix' - The value sent by the client must begin with the specified characters.+--+-- 'range', 'headerMatchMethod_range' - An object that represents the range of values to match on.+--+-- 'regex', 'headerMatchMethod_regex' - The value sent by the client must include the specified characters.+--+-- 'suffix', 'headerMatchMethod_suffix' - The value sent by the client must end with the specified characters.+newHeaderMatchMethod ::+ HeaderMatchMethod+newHeaderMatchMethod =+ HeaderMatchMethod'+ { exact = Prelude.Nothing,+ prefix = Prelude.Nothing,+ range = Prelude.Nothing,+ regex = Prelude.Nothing,+ suffix = Prelude.Nothing+ }++-- | The value sent by the client must match the specified value exactly.+headerMatchMethod_exact :: Lens.Lens' HeaderMatchMethod (Prelude.Maybe Prelude.Text)+headerMatchMethod_exact = Lens.lens (\HeaderMatchMethod' {exact} -> exact) (\s@HeaderMatchMethod' {} a -> s {exact = a} :: HeaderMatchMethod)++-- | The value sent by the client must begin with the specified characters.+headerMatchMethod_prefix :: Lens.Lens' HeaderMatchMethod (Prelude.Maybe Prelude.Text)+headerMatchMethod_prefix = Lens.lens (\HeaderMatchMethod' {prefix} -> prefix) (\s@HeaderMatchMethod' {} a -> s {prefix = a} :: HeaderMatchMethod)++-- | An object that represents the range of values to match on.+headerMatchMethod_range :: Lens.Lens' HeaderMatchMethod (Prelude.Maybe MatchRange)+headerMatchMethod_range = Lens.lens (\HeaderMatchMethod' {range} -> range) (\s@HeaderMatchMethod' {} a -> s {range = a} :: HeaderMatchMethod)++-- | The value sent by the client must include the specified characters.+headerMatchMethod_regex :: Lens.Lens' HeaderMatchMethod (Prelude.Maybe Prelude.Text)+headerMatchMethod_regex = Lens.lens (\HeaderMatchMethod' {regex} -> regex) (\s@HeaderMatchMethod' {} a -> s {regex = a} :: HeaderMatchMethod)++-- | The value sent by the client must end with the specified characters.+headerMatchMethod_suffix :: Lens.Lens' HeaderMatchMethod (Prelude.Maybe Prelude.Text)+headerMatchMethod_suffix = Lens.lens (\HeaderMatchMethod' {suffix} -> suffix) (\s@HeaderMatchMethod' {} a -> s {suffix = a} :: HeaderMatchMethod)++instance Data.FromJSON HeaderMatchMethod where+ parseJSON =+ Data.withObject+ "HeaderMatchMethod"+ ( \x ->+ HeaderMatchMethod'+ Prelude.<$> (x Data..:? "exact")+ Prelude.<*> (x Data..:? "prefix")+ Prelude.<*> (x Data..:? "range")+ Prelude.<*> (x Data..:? "regex")+ Prelude.<*> (x Data..:? "suffix")+ )++instance Prelude.Hashable HeaderMatchMethod where+ hashWithSalt _salt HeaderMatchMethod' {..} =+ _salt+ `Prelude.hashWithSalt` exact+ `Prelude.hashWithSalt` prefix+ `Prelude.hashWithSalt` range+ `Prelude.hashWithSalt` regex+ `Prelude.hashWithSalt` suffix++instance Prelude.NFData HeaderMatchMethod where+ rnf HeaderMatchMethod' {..} =+ Prelude.rnf exact+ `Prelude.seq` Prelude.rnf prefix+ `Prelude.seq` Prelude.rnf range+ `Prelude.seq` Prelude.rnf regex+ `Prelude.seq` Prelude.rnf suffix++instance Data.ToJSON HeaderMatchMethod where+ toJSON HeaderMatchMethod' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("exact" Data..=) Prelude.<$> exact,+ ("prefix" Data..=) Prelude.<$> prefix,+ ("range" Data..=) Prelude.<$> range,+ ("regex" Data..=) Prelude.<$> regex,+ ("suffix" Data..=) Prelude.<$> suffix+ ]+ )
+ gen/Amazonka/AppMesh/Types/HealthCheckPolicy.hs view
@@ -0,0 +1,202 @@+{-# 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.AppMesh.Types.HealthCheckPolicy+-- 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.AppMesh.Types.HealthCheckPolicy where++import Amazonka.AppMesh.Types.PortProtocol+import qualified 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 object that represents the health check policy for a virtual node\'s+-- listener.+--+-- /See:/ 'newHealthCheckPolicy' smart constructor.+data HealthCheckPolicy = HealthCheckPolicy'+ { -- | The destination path for the health check request. This value is only+ -- used if the specified protocol is HTTP or HTTP\/2. For any other+ -- protocol, this value is ignored.+ path :: Prelude.Maybe Prelude.Text,+ -- | The destination port for the health check request. This port must match+ -- the port defined in the PortMapping for the listener.+ port :: Prelude.Maybe Prelude.Natural,+ -- | The number of consecutive successful health checks that must occur+ -- before declaring listener healthy.+ healthyThreshold :: Prelude.Natural,+ -- | The time period in milliseconds between each health check execution.+ intervalMillis :: Prelude.Natural,+ -- | The protocol for the health check request. If you specify @grpc@, then+ -- your service must conform to the+ -- <https://github.com/grpc/grpc/blob/master/doc/health-checking.md GRPC Health Checking Protocol>.+ protocol :: PortProtocol,+ -- | The amount of time to wait when receiving a response from the health+ -- check, in milliseconds.+ timeoutMillis :: Prelude.Natural,+ -- | The number of consecutive failed health checks that must occur before+ -- declaring a virtual node unhealthy.+ unhealthyThreshold :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HealthCheckPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'path', 'healthCheckPolicy_path' - The destination path for the health check request. This value is only+-- used if the specified protocol is HTTP or HTTP\/2. For any other+-- protocol, this value is ignored.+--+-- 'port', 'healthCheckPolicy_port' - The destination port for the health check request. This port must match+-- the port defined in the PortMapping for the listener.+--+-- 'healthyThreshold', 'healthCheckPolicy_healthyThreshold' - The number of consecutive successful health checks that must occur+-- before declaring listener healthy.+--+-- 'intervalMillis', 'healthCheckPolicy_intervalMillis' - The time period in milliseconds between each health check execution.+--+-- 'protocol', 'healthCheckPolicy_protocol' - The protocol for the health check request. If you specify @grpc@, then+-- your service must conform to the+-- <https://github.com/grpc/grpc/blob/master/doc/health-checking.md GRPC Health Checking Protocol>.+--+-- 'timeoutMillis', 'healthCheckPolicy_timeoutMillis' - The amount of time to wait when receiving a response from the health+-- check, in milliseconds.+--+-- 'unhealthyThreshold', 'healthCheckPolicy_unhealthyThreshold' - The number of consecutive failed health checks that must occur before+-- declaring a virtual node unhealthy.+newHealthCheckPolicy ::+ -- | 'healthyThreshold'+ Prelude.Natural ->+ -- | 'intervalMillis'+ Prelude.Natural ->+ -- | 'protocol'+ PortProtocol ->+ -- | 'timeoutMillis'+ Prelude.Natural ->+ -- | 'unhealthyThreshold'+ Prelude.Natural ->+ HealthCheckPolicy+newHealthCheckPolicy+ pHealthyThreshold_+ pIntervalMillis_+ pProtocol_+ pTimeoutMillis_+ pUnhealthyThreshold_ =+ HealthCheckPolicy'+ { path = Prelude.Nothing,+ port = Prelude.Nothing,+ healthyThreshold = pHealthyThreshold_,+ intervalMillis = pIntervalMillis_,+ protocol = pProtocol_,+ timeoutMillis = pTimeoutMillis_,+ unhealthyThreshold = pUnhealthyThreshold_+ }++-- | The destination path for the health check request. This value is only+-- used if the specified protocol is HTTP or HTTP\/2. For any other+-- protocol, this value is ignored.+healthCheckPolicy_path :: Lens.Lens' HealthCheckPolicy (Prelude.Maybe Prelude.Text)+healthCheckPolicy_path = Lens.lens (\HealthCheckPolicy' {path} -> path) (\s@HealthCheckPolicy' {} a -> s {path = a} :: HealthCheckPolicy)++-- | The destination port for the health check request. This port must match+-- the port defined in the PortMapping for the listener.+healthCheckPolicy_port :: Lens.Lens' HealthCheckPolicy (Prelude.Maybe Prelude.Natural)+healthCheckPolicy_port = Lens.lens (\HealthCheckPolicy' {port} -> port) (\s@HealthCheckPolicy' {} a -> s {port = a} :: HealthCheckPolicy)++-- | The number of consecutive successful health checks that must occur+-- before declaring listener healthy.+healthCheckPolicy_healthyThreshold :: Lens.Lens' HealthCheckPolicy Prelude.Natural+healthCheckPolicy_healthyThreshold = Lens.lens (\HealthCheckPolicy' {healthyThreshold} -> healthyThreshold) (\s@HealthCheckPolicy' {} a -> s {healthyThreshold = a} :: HealthCheckPolicy)++-- | The time period in milliseconds between each health check execution.+healthCheckPolicy_intervalMillis :: Lens.Lens' HealthCheckPolicy Prelude.Natural+healthCheckPolicy_intervalMillis = Lens.lens (\HealthCheckPolicy' {intervalMillis} -> intervalMillis) (\s@HealthCheckPolicy' {} a -> s {intervalMillis = a} :: HealthCheckPolicy)++-- | The protocol for the health check request. If you specify @grpc@, then+-- your service must conform to the+-- <https://github.com/grpc/grpc/blob/master/doc/health-checking.md GRPC Health Checking Protocol>.+healthCheckPolicy_protocol :: Lens.Lens' HealthCheckPolicy PortProtocol+healthCheckPolicy_protocol = Lens.lens (\HealthCheckPolicy' {protocol} -> protocol) (\s@HealthCheckPolicy' {} a -> s {protocol = a} :: HealthCheckPolicy)++-- | The amount of time to wait when receiving a response from the health+-- check, in milliseconds.+healthCheckPolicy_timeoutMillis :: Lens.Lens' HealthCheckPolicy Prelude.Natural+healthCheckPolicy_timeoutMillis = Lens.lens (\HealthCheckPolicy' {timeoutMillis} -> timeoutMillis) (\s@HealthCheckPolicy' {} a -> s {timeoutMillis = a} :: HealthCheckPolicy)++-- | The number of consecutive failed health checks that must occur before+-- declaring a virtual node unhealthy.+healthCheckPolicy_unhealthyThreshold :: Lens.Lens' HealthCheckPolicy Prelude.Natural+healthCheckPolicy_unhealthyThreshold = Lens.lens (\HealthCheckPolicy' {unhealthyThreshold} -> unhealthyThreshold) (\s@HealthCheckPolicy' {} a -> s {unhealthyThreshold = a} :: HealthCheckPolicy)++instance Data.FromJSON HealthCheckPolicy where+ parseJSON =+ Data.withObject+ "HealthCheckPolicy"+ ( \x ->+ HealthCheckPolicy'+ Prelude.<$> (x Data..:? "path")+ Prelude.<*> (x Data..:? "port")+ Prelude.<*> (x Data..: "healthyThreshold")+ Prelude.<*> (x Data..: "intervalMillis")+ Prelude.<*> (x Data..: "protocol")+ Prelude.<*> (x Data..: "timeoutMillis")+ Prelude.<*> (x Data..: "unhealthyThreshold")+ )++instance Prelude.Hashable HealthCheckPolicy where+ hashWithSalt _salt HealthCheckPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` path+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` healthyThreshold+ `Prelude.hashWithSalt` intervalMillis+ `Prelude.hashWithSalt` protocol+ `Prelude.hashWithSalt` timeoutMillis+ `Prelude.hashWithSalt` unhealthyThreshold++instance Prelude.NFData HealthCheckPolicy where+ rnf HealthCheckPolicy' {..} =+ Prelude.rnf path+ `Prelude.seq` Prelude.rnf port+ `Prelude.seq` Prelude.rnf healthyThreshold+ `Prelude.seq` Prelude.rnf intervalMillis+ `Prelude.seq` Prelude.rnf protocol+ `Prelude.seq` Prelude.rnf timeoutMillis+ `Prelude.seq` Prelude.rnf unhealthyThreshold++instance Data.ToJSON HealthCheckPolicy where+ toJSON HealthCheckPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("path" Data..=) Prelude.<$> path,+ ("port" Data..=) Prelude.<$> port,+ Prelude.Just+ ("healthyThreshold" Data..= healthyThreshold),+ Prelude.Just+ ("intervalMillis" Data..= intervalMillis),+ Prelude.Just ("protocol" Data..= protocol),+ Prelude.Just ("timeoutMillis" Data..= timeoutMillis),+ Prelude.Just+ ("unhealthyThreshold" Data..= unhealthyThreshold)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpGatewayRoute.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.HttpGatewayRoute+-- 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.AppMesh.Types.HttpGatewayRoute where++import Amazonka.AppMesh.Types.HttpGatewayRouteAction+import Amazonka.AppMesh.Types.HttpGatewayRouteMatch+import qualified 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 object that represents an HTTP gateway route.+--+-- /See:/ 'newHttpGatewayRoute' smart constructor.+data HttpGatewayRoute = HttpGatewayRoute'+ { -- | An object that represents the action to take if a match is determined.+ action :: HttpGatewayRouteAction,+ -- | An object that represents the criteria for determining a request match.+ match :: HttpGatewayRouteMatch+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpGatewayRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'httpGatewayRoute_action' - An object that represents the action to take if a match is determined.+--+-- 'match', 'httpGatewayRoute_match' - An object that represents the criteria for determining a request match.+newHttpGatewayRoute ::+ -- | 'action'+ HttpGatewayRouteAction ->+ -- | 'match'+ HttpGatewayRouteMatch ->+ HttpGatewayRoute+newHttpGatewayRoute pAction_ pMatch_ =+ HttpGatewayRoute'+ { action = pAction_,+ match = pMatch_+ }++-- | An object that represents the action to take if a match is determined.+httpGatewayRoute_action :: Lens.Lens' HttpGatewayRoute HttpGatewayRouteAction+httpGatewayRoute_action = Lens.lens (\HttpGatewayRoute' {action} -> action) (\s@HttpGatewayRoute' {} a -> s {action = a} :: HttpGatewayRoute)++-- | An object that represents the criteria for determining a request match.+httpGatewayRoute_match :: Lens.Lens' HttpGatewayRoute HttpGatewayRouteMatch+httpGatewayRoute_match = Lens.lens (\HttpGatewayRoute' {match} -> match) (\s@HttpGatewayRoute' {} a -> s {match = a} :: HttpGatewayRoute)++instance Data.FromJSON HttpGatewayRoute where+ parseJSON =+ Data.withObject+ "HttpGatewayRoute"+ ( \x ->+ HttpGatewayRoute'+ Prelude.<$> (x Data..: "action")+ Prelude.<*> (x Data..: "match")+ )++instance Prelude.Hashable HttpGatewayRoute where+ hashWithSalt _salt HttpGatewayRoute' {..} =+ _salt+ `Prelude.hashWithSalt` action+ `Prelude.hashWithSalt` match++instance Prelude.NFData HttpGatewayRoute where+ rnf HttpGatewayRoute' {..} =+ Prelude.rnf action `Prelude.seq` Prelude.rnf match++instance Data.ToJSON HttpGatewayRoute where+ toJSON HttpGatewayRoute' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("action" Data..= action),+ Prelude.Just ("match" Data..= match)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpGatewayRouteAction.hs view
@@ -0,0 +1,100 @@+{-# 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.AppMesh.Types.HttpGatewayRouteAction+-- 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.AppMesh.Types.HttpGatewayRouteAction where++import Amazonka.AppMesh.Types.GatewayRouteTarget+import Amazonka.AppMesh.Types.HttpGatewayRouteRewrite+import qualified 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 object that represents the action to take if a match is determined.+--+-- /See:/ 'newHttpGatewayRouteAction' smart constructor.+data HttpGatewayRouteAction = HttpGatewayRouteAction'+ { -- | The gateway route action to rewrite.+ rewrite :: Prelude.Maybe HttpGatewayRouteRewrite,+ -- | An object that represents the target that traffic is routed to when a+ -- request matches the gateway route.+ target :: GatewayRouteTarget+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpGatewayRouteAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'rewrite', 'httpGatewayRouteAction_rewrite' - The gateway route action to rewrite.+--+-- 'target', 'httpGatewayRouteAction_target' - An object that represents the target that traffic is routed to when a+-- request matches the gateway route.+newHttpGatewayRouteAction ::+ -- | 'target'+ GatewayRouteTarget ->+ HttpGatewayRouteAction+newHttpGatewayRouteAction pTarget_ =+ HttpGatewayRouteAction'+ { rewrite = Prelude.Nothing,+ target = pTarget_+ }++-- | The gateway route action to rewrite.+httpGatewayRouteAction_rewrite :: Lens.Lens' HttpGatewayRouteAction (Prelude.Maybe HttpGatewayRouteRewrite)+httpGatewayRouteAction_rewrite = Lens.lens (\HttpGatewayRouteAction' {rewrite} -> rewrite) (\s@HttpGatewayRouteAction' {} a -> s {rewrite = a} :: HttpGatewayRouteAction)++-- | An object that represents the target that traffic is routed to when a+-- request matches the gateway route.+httpGatewayRouteAction_target :: Lens.Lens' HttpGatewayRouteAction GatewayRouteTarget+httpGatewayRouteAction_target = Lens.lens (\HttpGatewayRouteAction' {target} -> target) (\s@HttpGatewayRouteAction' {} a -> s {target = a} :: HttpGatewayRouteAction)++instance Data.FromJSON HttpGatewayRouteAction where+ parseJSON =+ Data.withObject+ "HttpGatewayRouteAction"+ ( \x ->+ HttpGatewayRouteAction'+ Prelude.<$> (x Data..:? "rewrite")+ Prelude.<*> (x Data..: "target")+ )++instance Prelude.Hashable HttpGatewayRouteAction where+ hashWithSalt _salt HttpGatewayRouteAction' {..} =+ _salt+ `Prelude.hashWithSalt` rewrite+ `Prelude.hashWithSalt` target++instance Prelude.NFData HttpGatewayRouteAction where+ rnf HttpGatewayRouteAction' {..} =+ Prelude.rnf rewrite+ `Prelude.seq` Prelude.rnf target++instance Data.ToJSON HttpGatewayRouteAction where+ toJSON HttpGatewayRouteAction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("rewrite" Data..=) Prelude.<$> rewrite,+ Prelude.Just ("target" Data..= target)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpGatewayRouteHeader.hs view
@@ -0,0 +1,115 @@+{-# 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.AppMesh.Types.HttpGatewayRouteHeader+-- 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.AppMesh.Types.HttpGatewayRouteHeader where++import Amazonka.AppMesh.Types.HeaderMatchMethod+import qualified 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 object that represents the HTTP header in the gateway route.+--+-- /See:/ 'newHttpGatewayRouteHeader' smart constructor.+data HttpGatewayRouteHeader = HttpGatewayRouteHeader'+ { -- | Specify @True@ to match anything except the match criteria. The default+ -- value is @False@.+ invert :: Prelude.Maybe Prelude.Bool,+ -- | An object that represents the method and value to match with the header+ -- value sent in a request. Specify one match method.+ match :: Prelude.Maybe HeaderMatchMethod,+ -- | A name for the HTTP header in the gateway route that will be matched on.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpGatewayRouteHeader' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invert', 'httpGatewayRouteHeader_invert' - Specify @True@ to match anything except the match criteria. The default+-- value is @False@.+--+-- 'match', 'httpGatewayRouteHeader_match' - An object that represents the method and value to match with the header+-- value sent in a request. Specify one match method.+--+-- 'name', 'httpGatewayRouteHeader_name' - A name for the HTTP header in the gateway route that will be matched on.+newHttpGatewayRouteHeader ::+ -- | 'name'+ Prelude.Text ->+ HttpGatewayRouteHeader+newHttpGatewayRouteHeader pName_ =+ HttpGatewayRouteHeader'+ { invert = Prelude.Nothing,+ match = Prelude.Nothing,+ name = pName_+ }++-- | Specify @True@ to match anything except the match criteria. The default+-- value is @False@.+httpGatewayRouteHeader_invert :: Lens.Lens' HttpGatewayRouteHeader (Prelude.Maybe Prelude.Bool)+httpGatewayRouteHeader_invert = Lens.lens (\HttpGatewayRouteHeader' {invert} -> invert) (\s@HttpGatewayRouteHeader' {} a -> s {invert = a} :: HttpGatewayRouteHeader)++-- | An object that represents the method and value to match with the header+-- value sent in a request. Specify one match method.+httpGatewayRouteHeader_match :: Lens.Lens' HttpGatewayRouteHeader (Prelude.Maybe HeaderMatchMethod)+httpGatewayRouteHeader_match = Lens.lens (\HttpGatewayRouteHeader' {match} -> match) (\s@HttpGatewayRouteHeader' {} a -> s {match = a} :: HttpGatewayRouteHeader)++-- | A name for the HTTP header in the gateway route that will be matched on.+httpGatewayRouteHeader_name :: Lens.Lens' HttpGatewayRouteHeader Prelude.Text+httpGatewayRouteHeader_name = Lens.lens (\HttpGatewayRouteHeader' {name} -> name) (\s@HttpGatewayRouteHeader' {} a -> s {name = a} :: HttpGatewayRouteHeader)++instance Data.FromJSON HttpGatewayRouteHeader where+ parseJSON =+ Data.withObject+ "HttpGatewayRouteHeader"+ ( \x ->+ HttpGatewayRouteHeader'+ Prelude.<$> (x Data..:? "invert")+ Prelude.<*> (x Data..:? "match")+ Prelude.<*> (x Data..: "name")+ )++instance Prelude.Hashable HttpGatewayRouteHeader where+ hashWithSalt _salt HttpGatewayRouteHeader' {..} =+ _salt+ `Prelude.hashWithSalt` invert+ `Prelude.hashWithSalt` match+ `Prelude.hashWithSalt` name++instance Prelude.NFData HttpGatewayRouteHeader where+ rnf HttpGatewayRouteHeader' {..} =+ Prelude.rnf invert+ `Prelude.seq` Prelude.rnf match+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON HttpGatewayRouteHeader where+ toJSON HttpGatewayRouteHeader' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("invert" Data..=) Prelude.<$> invert,+ ("match" Data..=) Prelude.<$> match,+ Prelude.Just ("name" Data..= name)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpGatewayRouteMatch.hs view
@@ -0,0 +1,179 @@+{-# 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.AppMesh.Types.HttpGatewayRouteMatch+-- 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.AppMesh.Types.HttpGatewayRouteMatch where++import Amazonka.AppMesh.Types.GatewayRouteHostnameMatch+import Amazonka.AppMesh.Types.HttpGatewayRouteHeader+import Amazonka.AppMesh.Types.HttpMethod+import Amazonka.AppMesh.Types.HttpPathMatch+import Amazonka.AppMesh.Types.HttpQueryParameter+import qualified 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 object that represents the criteria for determining a request match.+--+-- /See:/ 'newHttpGatewayRouteMatch' smart constructor.+data HttpGatewayRouteMatch = HttpGatewayRouteMatch'+ { -- | The client request headers to match on.+ headers :: Prelude.Maybe (Prelude.NonEmpty HttpGatewayRouteHeader),+ -- | The host name to match on.+ hostname :: Prelude.Maybe GatewayRouteHostnameMatch,+ -- | The method to match on.+ method :: Prelude.Maybe HttpMethod,+ -- | The path to match on.+ path :: Prelude.Maybe HttpPathMatch,+ -- | The port number to match on.+ port :: Prelude.Maybe Prelude.Natural,+ -- | Specifies the path to match requests with. This parameter must always+ -- start with @\/@, which by itself matches all requests to the virtual+ -- service name. You can also match for path-based routing of requests. For+ -- example, if your virtual service name is @my-service.local@ and you want+ -- the route to match requests to @my-service.local\/metrics@, your prefix+ -- should be @\/metrics@.+ prefix :: Prelude.Maybe Prelude.Text,+ -- | The query parameter to match on.+ queryParameters :: Prelude.Maybe (Prelude.NonEmpty HttpQueryParameter)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpGatewayRouteMatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'headers', 'httpGatewayRouteMatch_headers' - The client request headers to match on.+--+-- 'hostname', 'httpGatewayRouteMatch_hostname' - The host name to match on.+--+-- 'method', 'httpGatewayRouteMatch_method' - The method to match on.+--+-- 'path', 'httpGatewayRouteMatch_path' - The path to match on.+--+-- 'port', 'httpGatewayRouteMatch_port' - The port number to match on.+--+-- 'prefix', 'httpGatewayRouteMatch_prefix' - Specifies the path to match requests with. This parameter must always+-- start with @\/@, which by itself matches all requests to the virtual+-- service name. You can also match for path-based routing of requests. For+-- example, if your virtual service name is @my-service.local@ and you want+-- the route to match requests to @my-service.local\/metrics@, your prefix+-- should be @\/metrics@.+--+-- 'queryParameters', 'httpGatewayRouteMatch_queryParameters' - The query parameter to match on.+newHttpGatewayRouteMatch ::+ HttpGatewayRouteMatch+newHttpGatewayRouteMatch =+ HttpGatewayRouteMatch'+ { headers = Prelude.Nothing,+ hostname = Prelude.Nothing,+ method = Prelude.Nothing,+ path = Prelude.Nothing,+ port = Prelude.Nothing,+ prefix = Prelude.Nothing,+ queryParameters = Prelude.Nothing+ }++-- | The client request headers to match on.+httpGatewayRouteMatch_headers :: Lens.Lens' HttpGatewayRouteMatch (Prelude.Maybe (Prelude.NonEmpty HttpGatewayRouteHeader))+httpGatewayRouteMatch_headers = Lens.lens (\HttpGatewayRouteMatch' {headers} -> headers) (\s@HttpGatewayRouteMatch' {} a -> s {headers = a} :: HttpGatewayRouteMatch) Prelude.. Lens.mapping Lens.coerced++-- | The host name to match on.+httpGatewayRouteMatch_hostname :: Lens.Lens' HttpGatewayRouteMatch (Prelude.Maybe GatewayRouteHostnameMatch)+httpGatewayRouteMatch_hostname = Lens.lens (\HttpGatewayRouteMatch' {hostname} -> hostname) (\s@HttpGatewayRouteMatch' {} a -> s {hostname = a} :: HttpGatewayRouteMatch)++-- | The method to match on.+httpGatewayRouteMatch_method :: Lens.Lens' HttpGatewayRouteMatch (Prelude.Maybe HttpMethod)+httpGatewayRouteMatch_method = Lens.lens (\HttpGatewayRouteMatch' {method} -> method) (\s@HttpGatewayRouteMatch' {} a -> s {method = a} :: HttpGatewayRouteMatch)++-- | The path to match on.+httpGatewayRouteMatch_path :: Lens.Lens' HttpGatewayRouteMatch (Prelude.Maybe HttpPathMatch)+httpGatewayRouteMatch_path = Lens.lens (\HttpGatewayRouteMatch' {path} -> path) (\s@HttpGatewayRouteMatch' {} a -> s {path = a} :: HttpGatewayRouteMatch)++-- | The port number to match on.+httpGatewayRouteMatch_port :: Lens.Lens' HttpGatewayRouteMatch (Prelude.Maybe Prelude.Natural)+httpGatewayRouteMatch_port = Lens.lens (\HttpGatewayRouteMatch' {port} -> port) (\s@HttpGatewayRouteMatch' {} a -> s {port = a} :: HttpGatewayRouteMatch)++-- | Specifies the path to match requests with. This parameter must always+-- start with @\/@, which by itself matches all requests to the virtual+-- service name. You can also match for path-based routing of requests. For+-- example, if your virtual service name is @my-service.local@ and you want+-- the route to match requests to @my-service.local\/metrics@, your prefix+-- should be @\/metrics@.+httpGatewayRouteMatch_prefix :: Lens.Lens' HttpGatewayRouteMatch (Prelude.Maybe Prelude.Text)+httpGatewayRouteMatch_prefix = Lens.lens (\HttpGatewayRouteMatch' {prefix} -> prefix) (\s@HttpGatewayRouteMatch' {} a -> s {prefix = a} :: HttpGatewayRouteMatch)++-- | The query parameter to match on.+httpGatewayRouteMatch_queryParameters :: Lens.Lens' HttpGatewayRouteMatch (Prelude.Maybe (Prelude.NonEmpty HttpQueryParameter))+httpGatewayRouteMatch_queryParameters = Lens.lens (\HttpGatewayRouteMatch' {queryParameters} -> queryParameters) (\s@HttpGatewayRouteMatch' {} a -> s {queryParameters = a} :: HttpGatewayRouteMatch) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON HttpGatewayRouteMatch where+ parseJSON =+ Data.withObject+ "HttpGatewayRouteMatch"+ ( \x ->+ HttpGatewayRouteMatch'+ Prelude.<$> (x Data..:? "headers")+ Prelude.<*> (x Data..:? "hostname")+ Prelude.<*> (x Data..:? "method")+ Prelude.<*> (x Data..:? "path")+ Prelude.<*> (x Data..:? "port")+ Prelude.<*> (x Data..:? "prefix")+ Prelude.<*> (x Data..:? "queryParameters")+ )++instance Prelude.Hashable HttpGatewayRouteMatch where+ hashWithSalt _salt HttpGatewayRouteMatch' {..} =+ _salt+ `Prelude.hashWithSalt` headers+ `Prelude.hashWithSalt` hostname+ `Prelude.hashWithSalt` method+ `Prelude.hashWithSalt` path+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` prefix+ `Prelude.hashWithSalt` queryParameters++instance Prelude.NFData HttpGatewayRouteMatch where+ rnf HttpGatewayRouteMatch' {..} =+ Prelude.rnf headers+ `Prelude.seq` Prelude.rnf hostname+ `Prelude.seq` Prelude.rnf method+ `Prelude.seq` Prelude.rnf path+ `Prelude.seq` Prelude.rnf port+ `Prelude.seq` Prelude.rnf prefix+ `Prelude.seq` Prelude.rnf queryParameters++instance Data.ToJSON HttpGatewayRouteMatch where+ toJSON HttpGatewayRouteMatch' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("headers" Data..=) Prelude.<$> headers,+ ("hostname" Data..=) Prelude.<$> hostname,+ ("method" Data..=) Prelude.<$> method,+ ("path" Data..=) Prelude.<$> path,+ ("port" Data..=) Prelude.<$> port,+ ("prefix" Data..=) Prelude.<$> prefix,+ ("queryParameters" Data..=)+ Prelude.<$> queryParameters+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpGatewayRoutePathRewrite.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.AppMesh.Types.HttpGatewayRoutePathRewrite+-- 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.AppMesh.Types.HttpGatewayRoutePathRewrite 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++-- | An object that represents the path to rewrite.+--+-- /See:/ 'newHttpGatewayRoutePathRewrite' smart constructor.+data HttpGatewayRoutePathRewrite = HttpGatewayRoutePathRewrite'+ { -- | The exact path to rewrite.+ exact :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpGatewayRoutePathRewrite' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exact', 'httpGatewayRoutePathRewrite_exact' - The exact path to rewrite.+newHttpGatewayRoutePathRewrite ::+ HttpGatewayRoutePathRewrite+newHttpGatewayRoutePathRewrite =+ HttpGatewayRoutePathRewrite'+ { exact =+ Prelude.Nothing+ }++-- | The exact path to rewrite.+httpGatewayRoutePathRewrite_exact :: Lens.Lens' HttpGatewayRoutePathRewrite (Prelude.Maybe Prelude.Text)+httpGatewayRoutePathRewrite_exact = Lens.lens (\HttpGatewayRoutePathRewrite' {exact} -> exact) (\s@HttpGatewayRoutePathRewrite' {} a -> s {exact = a} :: HttpGatewayRoutePathRewrite)++instance Data.FromJSON HttpGatewayRoutePathRewrite where+ parseJSON =+ Data.withObject+ "HttpGatewayRoutePathRewrite"+ ( \x ->+ HttpGatewayRoutePathRewrite'+ Prelude.<$> (x Data..:? "exact")+ )++instance Prelude.Hashable HttpGatewayRoutePathRewrite where+ hashWithSalt _salt HttpGatewayRoutePathRewrite' {..} =+ _salt `Prelude.hashWithSalt` exact++instance Prelude.NFData HttpGatewayRoutePathRewrite where+ rnf HttpGatewayRoutePathRewrite' {..} =+ Prelude.rnf exact++instance Data.ToJSON HttpGatewayRoutePathRewrite where+ toJSON HttpGatewayRoutePathRewrite' {..} =+ Data.object+ ( Prelude.catMaybes+ [("exact" Data..=) Prelude.<$> exact]+ )
+ gen/Amazonka/AppMesh/Types/HttpGatewayRoutePrefixRewrite.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.AppMesh.Types.HttpGatewayRoutePrefixRewrite+-- 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.AppMesh.Types.HttpGatewayRoutePrefixRewrite where++import Amazonka.AppMesh.Types.DefaultGatewayRouteRewrite+import qualified 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 object representing the beginning characters of the route to rewrite.+--+-- /See:/ 'newHttpGatewayRoutePrefixRewrite' smart constructor.+data HttpGatewayRoutePrefixRewrite = HttpGatewayRoutePrefixRewrite'+ { -- | The default prefix used to replace the incoming route prefix when+ -- rewritten.+ defaultPrefix :: Prelude.Maybe DefaultGatewayRouteRewrite,+ -- | The value used to replace the incoming route prefix when rewritten.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpGatewayRoutePrefixRewrite' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultPrefix', 'httpGatewayRoutePrefixRewrite_defaultPrefix' - The default prefix used to replace the incoming route prefix when+-- rewritten.+--+-- 'value', 'httpGatewayRoutePrefixRewrite_value' - The value used to replace the incoming route prefix when rewritten.+newHttpGatewayRoutePrefixRewrite ::+ HttpGatewayRoutePrefixRewrite+newHttpGatewayRoutePrefixRewrite =+ HttpGatewayRoutePrefixRewrite'+ { defaultPrefix =+ Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The default prefix used to replace the incoming route prefix when+-- rewritten.+httpGatewayRoutePrefixRewrite_defaultPrefix :: Lens.Lens' HttpGatewayRoutePrefixRewrite (Prelude.Maybe DefaultGatewayRouteRewrite)+httpGatewayRoutePrefixRewrite_defaultPrefix = Lens.lens (\HttpGatewayRoutePrefixRewrite' {defaultPrefix} -> defaultPrefix) (\s@HttpGatewayRoutePrefixRewrite' {} a -> s {defaultPrefix = a} :: HttpGatewayRoutePrefixRewrite)++-- | The value used to replace the incoming route prefix when rewritten.+httpGatewayRoutePrefixRewrite_value :: Lens.Lens' HttpGatewayRoutePrefixRewrite (Prelude.Maybe Prelude.Text)+httpGatewayRoutePrefixRewrite_value = Lens.lens (\HttpGatewayRoutePrefixRewrite' {value} -> value) (\s@HttpGatewayRoutePrefixRewrite' {} a -> s {value = a} :: HttpGatewayRoutePrefixRewrite)++instance Data.FromJSON HttpGatewayRoutePrefixRewrite where+ parseJSON =+ Data.withObject+ "HttpGatewayRoutePrefixRewrite"+ ( \x ->+ HttpGatewayRoutePrefixRewrite'+ Prelude.<$> (x Data..:? "defaultPrefix")+ Prelude.<*> (x Data..:? "value")+ )++instance+ Prelude.Hashable+ HttpGatewayRoutePrefixRewrite+ where+ hashWithSalt _salt HttpGatewayRoutePrefixRewrite' {..} =+ _salt+ `Prelude.hashWithSalt` defaultPrefix+ `Prelude.hashWithSalt` value++instance Prelude.NFData HttpGatewayRoutePrefixRewrite where+ rnf HttpGatewayRoutePrefixRewrite' {..} =+ Prelude.rnf defaultPrefix+ `Prelude.seq` Prelude.rnf value++instance Data.ToJSON HttpGatewayRoutePrefixRewrite where+ toJSON HttpGatewayRoutePrefixRewrite' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("defaultPrefix" Data..=) Prelude.<$> defaultPrefix,+ ("value" Data..=) Prelude.<$> value+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpGatewayRouteRewrite.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.HttpGatewayRouteRewrite+-- 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.AppMesh.Types.HttpGatewayRouteRewrite where++import Amazonka.AppMesh.Types.GatewayRouteHostnameRewrite+import Amazonka.AppMesh.Types.HttpGatewayRoutePathRewrite+import Amazonka.AppMesh.Types.HttpGatewayRoutePrefixRewrite+import qualified 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 object representing the gateway route to rewrite.+--+-- /See:/ 'newHttpGatewayRouteRewrite' smart constructor.+data HttpGatewayRouteRewrite = HttpGatewayRouteRewrite'+ { -- | The host name to rewrite.+ hostname :: Prelude.Maybe GatewayRouteHostnameRewrite,+ -- | The path to rewrite.+ path :: Prelude.Maybe HttpGatewayRoutePathRewrite,+ -- | The specified beginning characters to rewrite.+ prefix :: Prelude.Maybe HttpGatewayRoutePrefixRewrite+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpGatewayRouteRewrite' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'hostname', 'httpGatewayRouteRewrite_hostname' - The host name to rewrite.+--+-- 'path', 'httpGatewayRouteRewrite_path' - The path to rewrite.+--+-- 'prefix', 'httpGatewayRouteRewrite_prefix' - The specified beginning characters to rewrite.+newHttpGatewayRouteRewrite ::+ HttpGatewayRouteRewrite+newHttpGatewayRouteRewrite =+ HttpGatewayRouteRewrite'+ { hostname =+ Prelude.Nothing,+ path = Prelude.Nothing,+ prefix = Prelude.Nothing+ }++-- | The host name to rewrite.+httpGatewayRouteRewrite_hostname :: Lens.Lens' HttpGatewayRouteRewrite (Prelude.Maybe GatewayRouteHostnameRewrite)+httpGatewayRouteRewrite_hostname = Lens.lens (\HttpGatewayRouteRewrite' {hostname} -> hostname) (\s@HttpGatewayRouteRewrite' {} a -> s {hostname = a} :: HttpGatewayRouteRewrite)++-- | The path to rewrite.+httpGatewayRouteRewrite_path :: Lens.Lens' HttpGatewayRouteRewrite (Prelude.Maybe HttpGatewayRoutePathRewrite)+httpGatewayRouteRewrite_path = Lens.lens (\HttpGatewayRouteRewrite' {path} -> path) (\s@HttpGatewayRouteRewrite' {} a -> s {path = a} :: HttpGatewayRouteRewrite)++-- | The specified beginning characters to rewrite.+httpGatewayRouteRewrite_prefix :: Lens.Lens' HttpGatewayRouteRewrite (Prelude.Maybe HttpGatewayRoutePrefixRewrite)+httpGatewayRouteRewrite_prefix = Lens.lens (\HttpGatewayRouteRewrite' {prefix} -> prefix) (\s@HttpGatewayRouteRewrite' {} a -> s {prefix = a} :: HttpGatewayRouteRewrite)++instance Data.FromJSON HttpGatewayRouteRewrite where+ parseJSON =+ Data.withObject+ "HttpGatewayRouteRewrite"+ ( \x ->+ HttpGatewayRouteRewrite'+ Prelude.<$> (x Data..:? "hostname")+ Prelude.<*> (x Data..:? "path")+ Prelude.<*> (x Data..:? "prefix")+ )++instance Prelude.Hashable HttpGatewayRouteRewrite where+ hashWithSalt _salt HttpGatewayRouteRewrite' {..} =+ _salt+ `Prelude.hashWithSalt` hostname+ `Prelude.hashWithSalt` path+ `Prelude.hashWithSalt` prefix++instance Prelude.NFData HttpGatewayRouteRewrite where+ rnf HttpGatewayRouteRewrite' {..} =+ Prelude.rnf hostname+ `Prelude.seq` Prelude.rnf path+ `Prelude.seq` Prelude.rnf prefix++instance Data.ToJSON HttpGatewayRouteRewrite where+ toJSON HttpGatewayRouteRewrite' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("hostname" Data..=) Prelude.<$> hostname,+ ("path" Data..=) Prelude.<$> path,+ ("prefix" Data..=) Prelude.<$> prefix+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpMethod.hs view
@@ -0,0 +1,106 @@+{-# 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.AppMesh.Types.HttpMethod+-- 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.AppMesh.Types.HttpMethod+ ( HttpMethod+ ( ..,+ HttpMethod_CONNECT,+ HttpMethod_DELETE,+ HttpMethod_GET,+ HttpMethod_HEAD,+ HttpMethod_OPTIONS,+ HttpMethod_PATCH,+ HttpMethod_POST,+ HttpMethod_PUT,+ HttpMethod_TRACE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HttpMethod = HttpMethod'+ { fromHttpMethod ::+ 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 HttpMethod_CONNECT :: HttpMethod+pattern HttpMethod_CONNECT = HttpMethod' "CONNECT"++pattern HttpMethod_DELETE :: HttpMethod+pattern HttpMethod_DELETE = HttpMethod' "DELETE"++pattern HttpMethod_GET :: HttpMethod+pattern HttpMethod_GET = HttpMethod' "GET"++pattern HttpMethod_HEAD :: HttpMethod+pattern HttpMethod_HEAD = HttpMethod' "HEAD"++pattern HttpMethod_OPTIONS :: HttpMethod+pattern HttpMethod_OPTIONS = HttpMethod' "OPTIONS"++pattern HttpMethod_PATCH :: HttpMethod+pattern HttpMethod_PATCH = HttpMethod' "PATCH"++pattern HttpMethod_POST :: HttpMethod+pattern HttpMethod_POST = HttpMethod' "POST"++pattern HttpMethod_PUT :: HttpMethod+pattern HttpMethod_PUT = HttpMethod' "PUT"++pattern HttpMethod_TRACE :: HttpMethod+pattern HttpMethod_TRACE = HttpMethod' "TRACE"++{-# COMPLETE+ HttpMethod_CONNECT,+ HttpMethod_DELETE,+ HttpMethod_GET,+ HttpMethod_HEAD,+ HttpMethod_OPTIONS,+ HttpMethod_PATCH,+ HttpMethod_POST,+ HttpMethod_PUT,+ HttpMethod_TRACE,+ HttpMethod'+ #-}
+ gen/Amazonka/AppMesh/Types/HttpPathMatch.hs view
@@ -0,0 +1,92 @@+{-# 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.AppMesh.Types.HttpPathMatch+-- 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.AppMesh.Types.HttpPathMatch 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++-- | An object representing the path to match in the request.+--+-- /See:/ 'newHttpPathMatch' smart constructor.+data HttpPathMatch = HttpPathMatch'+ { -- | The exact path to match on.+ exact :: Prelude.Maybe Prelude.Text,+ -- | The regex used to match the path.+ regex :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpPathMatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exact', 'httpPathMatch_exact' - The exact path to match on.+--+-- 'regex', 'httpPathMatch_regex' - The regex used to match the path.+newHttpPathMatch ::+ HttpPathMatch+newHttpPathMatch =+ HttpPathMatch'+ { exact = Prelude.Nothing,+ regex = Prelude.Nothing+ }++-- | The exact path to match on.+httpPathMatch_exact :: Lens.Lens' HttpPathMatch (Prelude.Maybe Prelude.Text)+httpPathMatch_exact = Lens.lens (\HttpPathMatch' {exact} -> exact) (\s@HttpPathMatch' {} a -> s {exact = a} :: HttpPathMatch)++-- | The regex used to match the path.+httpPathMatch_regex :: Lens.Lens' HttpPathMatch (Prelude.Maybe Prelude.Text)+httpPathMatch_regex = Lens.lens (\HttpPathMatch' {regex} -> regex) (\s@HttpPathMatch' {} a -> s {regex = a} :: HttpPathMatch)++instance Data.FromJSON HttpPathMatch where+ parseJSON =+ Data.withObject+ "HttpPathMatch"+ ( \x ->+ HttpPathMatch'+ Prelude.<$> (x Data..:? "exact")+ Prelude.<*> (x Data..:? "regex")+ )++instance Prelude.Hashable HttpPathMatch where+ hashWithSalt _salt HttpPathMatch' {..} =+ _salt+ `Prelude.hashWithSalt` exact+ `Prelude.hashWithSalt` regex++instance Prelude.NFData HttpPathMatch where+ rnf HttpPathMatch' {..} =+ Prelude.rnf exact `Prelude.seq` Prelude.rnf regex++instance Data.ToJSON HttpPathMatch where+ toJSON HttpPathMatch' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("exact" Data..=) Prelude.<$> exact,+ ("regex" Data..=) Prelude.<$> regex+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpQueryParameter.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.HttpQueryParameter+-- 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.AppMesh.Types.HttpQueryParameter where++import Amazonka.AppMesh.Types.QueryParameterMatch+import qualified 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 object that represents the query parameter in the request.+--+-- /See:/ 'newHttpQueryParameter' smart constructor.+data HttpQueryParameter = HttpQueryParameter'+ { -- | The query parameter to match on.+ match :: Prelude.Maybe QueryParameterMatch,+ -- | A name for the query parameter that will be matched on.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpQueryParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'match', 'httpQueryParameter_match' - The query parameter to match on.+--+-- 'name', 'httpQueryParameter_name' - A name for the query parameter that will be matched on.+newHttpQueryParameter ::+ -- | 'name'+ Prelude.Text ->+ HttpQueryParameter+newHttpQueryParameter pName_ =+ HttpQueryParameter'+ { match = Prelude.Nothing,+ name = pName_+ }++-- | The query parameter to match on.+httpQueryParameter_match :: Lens.Lens' HttpQueryParameter (Prelude.Maybe QueryParameterMatch)+httpQueryParameter_match = Lens.lens (\HttpQueryParameter' {match} -> match) (\s@HttpQueryParameter' {} a -> s {match = a} :: HttpQueryParameter)++-- | A name for the query parameter that will be matched on.+httpQueryParameter_name :: Lens.Lens' HttpQueryParameter Prelude.Text+httpQueryParameter_name = Lens.lens (\HttpQueryParameter' {name} -> name) (\s@HttpQueryParameter' {} a -> s {name = a} :: HttpQueryParameter)++instance Data.FromJSON HttpQueryParameter where+ parseJSON =+ Data.withObject+ "HttpQueryParameter"+ ( \x ->+ HttpQueryParameter'+ Prelude.<$> (x Data..:? "match")+ Prelude.<*> (x Data..: "name")+ )++instance Prelude.Hashable HttpQueryParameter where+ hashWithSalt _salt HttpQueryParameter' {..} =+ _salt+ `Prelude.hashWithSalt` match+ `Prelude.hashWithSalt` name++instance Prelude.NFData HttpQueryParameter where+ rnf HttpQueryParameter' {..} =+ Prelude.rnf match `Prelude.seq` Prelude.rnf name++instance Data.ToJSON HttpQueryParameter where+ toJSON HttpQueryParameter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("match" Data..=) Prelude.<$> match,+ Prelude.Just ("name" Data..= name)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpRetryPolicy.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.AppMesh.Types.HttpRetryPolicy+-- 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.AppMesh.Types.HttpRetryPolicy where++import Amazonka.AppMesh.Types.Duration+import Amazonka.AppMesh.Types.TcpRetryPolicyEvent+import qualified 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 object that represents a retry policy. Specify at least one value for+-- at least one of the types of @RetryEvents@, a value for @maxRetries@,+-- and a value for @perRetryTimeout@. Both @server-error@ and+-- @gateway-error@ under @httpRetryEvents@ include the Envoy @reset@+-- policy. For more information on the @reset@ policy, see the+-- <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on Envoy documentation>.+--+-- /See:/ 'newHttpRetryPolicy' smart constructor.+data HttpRetryPolicy = HttpRetryPolicy'+ { -- | Specify at least one of the following values.+ --+ -- - __server-error__ – HTTP status codes 500, 501, 502, 503, 504, 505,+ -- 506, 507, 508, 510, and 511+ --+ -- - __gateway-error__ – HTTP status codes 502, 503, and 504+ --+ -- - __client-error__ – HTTP status code 409+ --+ -- - __stream-error__ – Retry on refused stream+ httpRetryEvents :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | Specify a valid value. The event occurs before any processing of a+ -- request has started and is encountered when the upstream is temporarily+ -- or permanently unavailable.+ tcpRetryEvents :: Prelude.Maybe (Prelude.NonEmpty TcpRetryPolicyEvent),+ -- | The maximum number of retry attempts.+ maxRetries :: Prelude.Natural,+ -- | The timeout for each retry attempt.+ perRetryTimeout :: Duration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpRetryPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpRetryEvents', 'httpRetryPolicy_httpRetryEvents' - Specify at least one of the following values.+--+-- - __server-error__ – HTTP status codes 500, 501, 502, 503, 504, 505,+-- 506, 507, 508, 510, and 511+--+-- - __gateway-error__ – HTTP status codes 502, 503, and 504+--+-- - __client-error__ – HTTP status code 409+--+-- - __stream-error__ – Retry on refused stream+--+-- 'tcpRetryEvents', 'httpRetryPolicy_tcpRetryEvents' - Specify a valid value. The event occurs before any processing of a+-- request has started and is encountered when the upstream is temporarily+-- or permanently unavailable.+--+-- 'maxRetries', 'httpRetryPolicy_maxRetries' - The maximum number of retry attempts.+--+-- 'perRetryTimeout', 'httpRetryPolicy_perRetryTimeout' - The timeout for each retry attempt.+newHttpRetryPolicy ::+ -- | 'maxRetries'+ Prelude.Natural ->+ -- | 'perRetryTimeout'+ Duration ->+ HttpRetryPolicy+newHttpRetryPolicy pMaxRetries_ pPerRetryTimeout_ =+ HttpRetryPolicy'+ { httpRetryEvents = Prelude.Nothing,+ tcpRetryEvents = Prelude.Nothing,+ maxRetries = pMaxRetries_,+ perRetryTimeout = pPerRetryTimeout_+ }++-- | Specify at least one of the following values.+--+-- - __server-error__ – HTTP status codes 500, 501, 502, 503, 504, 505,+-- 506, 507, 508, 510, and 511+--+-- - __gateway-error__ – HTTP status codes 502, 503, and 504+--+-- - __client-error__ – HTTP status code 409+--+-- - __stream-error__ – Retry on refused stream+httpRetryPolicy_httpRetryEvents :: Lens.Lens' HttpRetryPolicy (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+httpRetryPolicy_httpRetryEvents = Lens.lens (\HttpRetryPolicy' {httpRetryEvents} -> httpRetryEvents) (\s@HttpRetryPolicy' {} a -> s {httpRetryEvents = a} :: HttpRetryPolicy) Prelude.. Lens.mapping Lens.coerced++-- | Specify a valid value. The event occurs before any processing of a+-- request has started and is encountered when the upstream is temporarily+-- or permanently unavailable.+httpRetryPolicy_tcpRetryEvents :: Lens.Lens' HttpRetryPolicy (Prelude.Maybe (Prelude.NonEmpty TcpRetryPolicyEvent))+httpRetryPolicy_tcpRetryEvents = Lens.lens (\HttpRetryPolicy' {tcpRetryEvents} -> tcpRetryEvents) (\s@HttpRetryPolicy' {} a -> s {tcpRetryEvents = a} :: HttpRetryPolicy) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of retry attempts.+httpRetryPolicy_maxRetries :: Lens.Lens' HttpRetryPolicy Prelude.Natural+httpRetryPolicy_maxRetries = Lens.lens (\HttpRetryPolicy' {maxRetries} -> maxRetries) (\s@HttpRetryPolicy' {} a -> s {maxRetries = a} :: HttpRetryPolicy)++-- | The timeout for each retry attempt.+httpRetryPolicy_perRetryTimeout :: Lens.Lens' HttpRetryPolicy Duration+httpRetryPolicy_perRetryTimeout = Lens.lens (\HttpRetryPolicy' {perRetryTimeout} -> perRetryTimeout) (\s@HttpRetryPolicy' {} a -> s {perRetryTimeout = a} :: HttpRetryPolicy)++instance Data.FromJSON HttpRetryPolicy where+ parseJSON =+ Data.withObject+ "HttpRetryPolicy"+ ( \x ->+ HttpRetryPolicy'+ Prelude.<$> (x Data..:? "httpRetryEvents")+ Prelude.<*> (x Data..:? "tcpRetryEvents")+ Prelude.<*> (x Data..: "maxRetries")+ Prelude.<*> (x Data..: "perRetryTimeout")+ )++instance Prelude.Hashable HttpRetryPolicy where+ hashWithSalt _salt HttpRetryPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` httpRetryEvents+ `Prelude.hashWithSalt` tcpRetryEvents+ `Prelude.hashWithSalt` maxRetries+ `Prelude.hashWithSalt` perRetryTimeout++instance Prelude.NFData HttpRetryPolicy where+ rnf HttpRetryPolicy' {..} =+ Prelude.rnf httpRetryEvents+ `Prelude.seq` Prelude.rnf tcpRetryEvents+ `Prelude.seq` Prelude.rnf maxRetries+ `Prelude.seq` Prelude.rnf perRetryTimeout++instance Data.ToJSON HttpRetryPolicy where+ toJSON HttpRetryPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("httpRetryEvents" Data..=)+ Prelude.<$> httpRetryEvents,+ ("tcpRetryEvents" Data..=)+ Prelude.<$> tcpRetryEvents,+ Prelude.Just ("maxRetries" Data..= maxRetries),+ Prelude.Just+ ("perRetryTimeout" Data..= perRetryTimeout)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpRoute.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.AppMesh.Types.HttpRoute+-- 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.AppMesh.Types.HttpRoute where++import Amazonka.AppMesh.Types.HttpRetryPolicy+import Amazonka.AppMesh.Types.HttpRouteAction+import Amazonka.AppMesh.Types.HttpRouteMatch+import Amazonka.AppMesh.Types.HttpTimeout+import qualified 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 object that represents an HTTP or HTTP\/2 route type.+--+-- /See:/ 'newHttpRoute' smart constructor.+data HttpRoute = HttpRoute'+ { -- | An object that represents a retry policy.+ retryPolicy :: Prelude.Maybe HttpRetryPolicy,+ -- | An object that represents types of timeouts.+ timeout :: Prelude.Maybe HttpTimeout,+ -- | An object that represents the action to take if a match is determined.+ action :: HttpRouteAction,+ -- | An object that represents the criteria for determining a request match.+ match :: HttpRouteMatch+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'retryPolicy', 'httpRoute_retryPolicy' - An object that represents a retry policy.+--+-- 'timeout', 'httpRoute_timeout' - An object that represents types of timeouts.+--+-- 'action', 'httpRoute_action' - An object that represents the action to take if a match is determined.+--+-- 'match', 'httpRoute_match' - An object that represents the criteria for determining a request match.+newHttpRoute ::+ -- | 'action'+ HttpRouteAction ->+ -- | 'match'+ HttpRouteMatch ->+ HttpRoute+newHttpRoute pAction_ pMatch_ =+ HttpRoute'+ { retryPolicy = Prelude.Nothing,+ timeout = Prelude.Nothing,+ action = pAction_,+ match = pMatch_+ }++-- | An object that represents a retry policy.+httpRoute_retryPolicy :: Lens.Lens' HttpRoute (Prelude.Maybe HttpRetryPolicy)+httpRoute_retryPolicy = Lens.lens (\HttpRoute' {retryPolicy} -> retryPolicy) (\s@HttpRoute' {} a -> s {retryPolicy = a} :: HttpRoute)++-- | An object that represents types of timeouts.+httpRoute_timeout :: Lens.Lens' HttpRoute (Prelude.Maybe HttpTimeout)+httpRoute_timeout = Lens.lens (\HttpRoute' {timeout} -> timeout) (\s@HttpRoute' {} a -> s {timeout = a} :: HttpRoute)++-- | An object that represents the action to take if a match is determined.+httpRoute_action :: Lens.Lens' HttpRoute HttpRouteAction+httpRoute_action = Lens.lens (\HttpRoute' {action} -> action) (\s@HttpRoute' {} a -> s {action = a} :: HttpRoute)++-- | An object that represents the criteria for determining a request match.+httpRoute_match :: Lens.Lens' HttpRoute HttpRouteMatch+httpRoute_match = Lens.lens (\HttpRoute' {match} -> match) (\s@HttpRoute' {} a -> s {match = a} :: HttpRoute)++instance Data.FromJSON HttpRoute where+ parseJSON =+ Data.withObject+ "HttpRoute"+ ( \x ->+ HttpRoute'+ Prelude.<$> (x Data..:? "retryPolicy")+ Prelude.<*> (x Data..:? "timeout")+ Prelude.<*> (x Data..: "action")+ Prelude.<*> (x Data..: "match")+ )++instance Prelude.Hashable HttpRoute where+ hashWithSalt _salt HttpRoute' {..} =+ _salt+ `Prelude.hashWithSalt` retryPolicy+ `Prelude.hashWithSalt` timeout+ `Prelude.hashWithSalt` action+ `Prelude.hashWithSalt` match++instance Prelude.NFData HttpRoute where+ rnf HttpRoute' {..} =+ Prelude.rnf retryPolicy+ `Prelude.seq` Prelude.rnf timeout+ `Prelude.seq` Prelude.rnf action+ `Prelude.seq` Prelude.rnf match++instance Data.ToJSON HttpRoute where+ toJSON HttpRoute' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("retryPolicy" Data..=) Prelude.<$> retryPolicy,+ ("timeout" Data..=) Prelude.<$> timeout,+ Prelude.Just ("action" Data..= action),+ Prelude.Just ("match" Data..= match)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpRouteAction.hs view
@@ -0,0 +1,87 @@+{-# 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.AppMesh.Types.HttpRouteAction+-- 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.AppMesh.Types.HttpRouteAction where++import Amazonka.AppMesh.Types.WeightedTarget+import qualified 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 object that represents the action to take if a match is determined.+--+-- /See:/ 'newHttpRouteAction' smart constructor.+data HttpRouteAction = HttpRouteAction'+ { -- | An object that represents the targets that traffic is routed to when a+ -- request matches the route.+ weightedTargets :: Prelude.NonEmpty WeightedTarget+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpRouteAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'weightedTargets', 'httpRouteAction_weightedTargets' - An object that represents the targets that traffic is routed to when a+-- request matches the route.+newHttpRouteAction ::+ -- | 'weightedTargets'+ Prelude.NonEmpty WeightedTarget ->+ HttpRouteAction+newHttpRouteAction pWeightedTargets_ =+ HttpRouteAction'+ { weightedTargets =+ Lens.coerced Lens.# pWeightedTargets_+ }++-- | An object that represents the targets that traffic is routed to when a+-- request matches the route.+httpRouteAction_weightedTargets :: Lens.Lens' HttpRouteAction (Prelude.NonEmpty WeightedTarget)+httpRouteAction_weightedTargets = Lens.lens (\HttpRouteAction' {weightedTargets} -> weightedTargets) (\s@HttpRouteAction' {} a -> s {weightedTargets = a} :: HttpRouteAction) Prelude.. Lens.coerced++instance Data.FromJSON HttpRouteAction where+ parseJSON =+ Data.withObject+ "HttpRouteAction"+ ( \x ->+ HttpRouteAction'+ Prelude.<$> (x Data..: "weightedTargets")+ )++instance Prelude.Hashable HttpRouteAction where+ hashWithSalt _salt HttpRouteAction' {..} =+ _salt `Prelude.hashWithSalt` weightedTargets++instance Prelude.NFData HttpRouteAction where+ rnf HttpRouteAction' {..} =+ Prelude.rnf weightedTargets++instance Data.ToJSON HttpRouteAction where+ toJSON HttpRouteAction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("weightedTargets" Data..= weightedTargets)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpRouteHeader.hs view
@@ -0,0 +1,115 @@+{-# 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.AppMesh.Types.HttpRouteHeader+-- 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.AppMesh.Types.HttpRouteHeader where++import Amazonka.AppMesh.Types.HeaderMatchMethod+import qualified 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 object that represents the HTTP header in the request.+--+-- /See:/ 'newHttpRouteHeader' smart constructor.+data HttpRouteHeader = HttpRouteHeader'+ { -- | Specify @True@ to match anything except the match criteria. The default+ -- value is @False@.+ invert :: Prelude.Maybe Prelude.Bool,+ -- | The @HeaderMatchMethod@ object.+ match :: Prelude.Maybe HeaderMatchMethod,+ -- | A name for the HTTP header in the client request that will be matched+ -- on.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpRouteHeader' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invert', 'httpRouteHeader_invert' - Specify @True@ to match anything except the match criteria. The default+-- value is @False@.+--+-- 'match', 'httpRouteHeader_match' - The @HeaderMatchMethod@ object.+--+-- 'name', 'httpRouteHeader_name' - A name for the HTTP header in the client request that will be matched+-- on.+newHttpRouteHeader ::+ -- | 'name'+ Prelude.Text ->+ HttpRouteHeader+newHttpRouteHeader pName_ =+ HttpRouteHeader'+ { invert = Prelude.Nothing,+ match = Prelude.Nothing,+ name = pName_+ }++-- | Specify @True@ to match anything except the match criteria. The default+-- value is @False@.+httpRouteHeader_invert :: Lens.Lens' HttpRouteHeader (Prelude.Maybe Prelude.Bool)+httpRouteHeader_invert = Lens.lens (\HttpRouteHeader' {invert} -> invert) (\s@HttpRouteHeader' {} a -> s {invert = a} :: HttpRouteHeader)++-- | The @HeaderMatchMethod@ object.+httpRouteHeader_match :: Lens.Lens' HttpRouteHeader (Prelude.Maybe HeaderMatchMethod)+httpRouteHeader_match = Lens.lens (\HttpRouteHeader' {match} -> match) (\s@HttpRouteHeader' {} a -> s {match = a} :: HttpRouteHeader)++-- | A name for the HTTP header in the client request that will be matched+-- on.+httpRouteHeader_name :: Lens.Lens' HttpRouteHeader Prelude.Text+httpRouteHeader_name = Lens.lens (\HttpRouteHeader' {name} -> name) (\s@HttpRouteHeader' {} a -> s {name = a} :: HttpRouteHeader)++instance Data.FromJSON HttpRouteHeader where+ parseJSON =+ Data.withObject+ "HttpRouteHeader"+ ( \x ->+ HttpRouteHeader'+ Prelude.<$> (x Data..:? "invert")+ Prelude.<*> (x Data..:? "match")+ Prelude.<*> (x Data..: "name")+ )++instance Prelude.Hashable HttpRouteHeader where+ hashWithSalt _salt HttpRouteHeader' {..} =+ _salt+ `Prelude.hashWithSalt` invert+ `Prelude.hashWithSalt` match+ `Prelude.hashWithSalt` name++instance Prelude.NFData HttpRouteHeader where+ rnf HttpRouteHeader' {..} =+ Prelude.rnf invert+ `Prelude.seq` Prelude.rnf match+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON HttpRouteHeader where+ toJSON HttpRouteHeader' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("invert" Data..=) Prelude.<$> invert,+ ("match" Data..=) Prelude.<$> match,+ Prelude.Just ("name" Data..= name)+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpRouteMatch.hs view
@@ -0,0 +1,183 @@+{-# 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.AppMesh.Types.HttpRouteMatch+-- 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.AppMesh.Types.HttpRouteMatch where++import Amazonka.AppMesh.Types.HttpMethod+import Amazonka.AppMesh.Types.HttpPathMatch+import Amazonka.AppMesh.Types.HttpQueryParameter+import Amazonka.AppMesh.Types.HttpRouteHeader+import Amazonka.AppMesh.Types.HttpScheme+import qualified 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 object that represents the requirements for a route to match HTTP+-- requests for a virtual router.+--+-- /See:/ 'newHttpRouteMatch' smart constructor.+data HttpRouteMatch = HttpRouteMatch'+ { -- | The client request headers to match on.+ headers :: Prelude.Maybe (Prelude.NonEmpty HttpRouteHeader),+ -- | The client request method to match on. Specify only one.+ method :: Prelude.Maybe HttpMethod,+ -- | The client request path to match on.+ path :: Prelude.Maybe HttpPathMatch,+ -- | The port number to match on.+ port :: Prelude.Maybe Prelude.Natural,+ -- | Specifies the path to match requests with. This parameter must always+ -- start with @\/@, which by itself matches all requests to the virtual+ -- service name. You can also match for path-based routing of requests. For+ -- example, if your virtual service name is @my-service.local@ and you want+ -- the route to match requests to @my-service.local\/metrics@, your prefix+ -- should be @\/metrics@.+ prefix :: Prelude.Maybe Prelude.Text,+ -- | The client request query parameters to match on.+ queryParameters :: Prelude.Maybe (Prelude.NonEmpty HttpQueryParameter),+ -- | The client request scheme to match on. Specify only one. Applicable only+ -- for HTTP2 routes.+ scheme :: Prelude.Maybe HttpScheme+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpRouteMatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'headers', 'httpRouteMatch_headers' - The client request headers to match on.+--+-- 'method', 'httpRouteMatch_method' - The client request method to match on. Specify only one.+--+-- 'path', 'httpRouteMatch_path' - The client request path to match on.+--+-- 'port', 'httpRouteMatch_port' - The port number to match on.+--+-- 'prefix', 'httpRouteMatch_prefix' - Specifies the path to match requests with. This parameter must always+-- start with @\/@, which by itself matches all requests to the virtual+-- service name. You can also match for path-based routing of requests. For+-- example, if your virtual service name is @my-service.local@ and you want+-- the route to match requests to @my-service.local\/metrics@, your prefix+-- should be @\/metrics@.+--+-- 'queryParameters', 'httpRouteMatch_queryParameters' - The client request query parameters to match on.+--+-- 'scheme', 'httpRouteMatch_scheme' - The client request scheme to match on. Specify only one. Applicable only+-- for HTTP2 routes.+newHttpRouteMatch ::+ HttpRouteMatch+newHttpRouteMatch =+ HttpRouteMatch'+ { headers = Prelude.Nothing,+ method = Prelude.Nothing,+ path = Prelude.Nothing,+ port = Prelude.Nothing,+ prefix = Prelude.Nothing,+ queryParameters = Prelude.Nothing,+ scheme = Prelude.Nothing+ }++-- | The client request headers to match on.+httpRouteMatch_headers :: Lens.Lens' HttpRouteMatch (Prelude.Maybe (Prelude.NonEmpty HttpRouteHeader))+httpRouteMatch_headers = Lens.lens (\HttpRouteMatch' {headers} -> headers) (\s@HttpRouteMatch' {} a -> s {headers = a} :: HttpRouteMatch) Prelude.. Lens.mapping Lens.coerced++-- | The client request method to match on. Specify only one.+httpRouteMatch_method :: Lens.Lens' HttpRouteMatch (Prelude.Maybe HttpMethod)+httpRouteMatch_method = Lens.lens (\HttpRouteMatch' {method} -> method) (\s@HttpRouteMatch' {} a -> s {method = a} :: HttpRouteMatch)++-- | The client request path to match on.+httpRouteMatch_path :: Lens.Lens' HttpRouteMatch (Prelude.Maybe HttpPathMatch)+httpRouteMatch_path = Lens.lens (\HttpRouteMatch' {path} -> path) (\s@HttpRouteMatch' {} a -> s {path = a} :: HttpRouteMatch)++-- | The port number to match on.+httpRouteMatch_port :: Lens.Lens' HttpRouteMatch (Prelude.Maybe Prelude.Natural)+httpRouteMatch_port = Lens.lens (\HttpRouteMatch' {port} -> port) (\s@HttpRouteMatch' {} a -> s {port = a} :: HttpRouteMatch)++-- | Specifies the path to match requests with. This parameter must always+-- start with @\/@, which by itself matches all requests to the virtual+-- service name. You can also match for path-based routing of requests. For+-- example, if your virtual service name is @my-service.local@ and you want+-- the route to match requests to @my-service.local\/metrics@, your prefix+-- should be @\/metrics@.+httpRouteMatch_prefix :: Lens.Lens' HttpRouteMatch (Prelude.Maybe Prelude.Text)+httpRouteMatch_prefix = Lens.lens (\HttpRouteMatch' {prefix} -> prefix) (\s@HttpRouteMatch' {} a -> s {prefix = a} :: HttpRouteMatch)++-- | The client request query parameters to match on.+httpRouteMatch_queryParameters :: Lens.Lens' HttpRouteMatch (Prelude.Maybe (Prelude.NonEmpty HttpQueryParameter))+httpRouteMatch_queryParameters = Lens.lens (\HttpRouteMatch' {queryParameters} -> queryParameters) (\s@HttpRouteMatch' {} a -> s {queryParameters = a} :: HttpRouteMatch) Prelude.. Lens.mapping Lens.coerced++-- | The client request scheme to match on. Specify only one. Applicable only+-- for HTTP2 routes.+httpRouteMatch_scheme :: Lens.Lens' HttpRouteMatch (Prelude.Maybe HttpScheme)+httpRouteMatch_scheme = Lens.lens (\HttpRouteMatch' {scheme} -> scheme) (\s@HttpRouteMatch' {} a -> s {scheme = a} :: HttpRouteMatch)++instance Data.FromJSON HttpRouteMatch where+ parseJSON =+ Data.withObject+ "HttpRouteMatch"+ ( \x ->+ HttpRouteMatch'+ Prelude.<$> (x Data..:? "headers")+ Prelude.<*> (x Data..:? "method")+ Prelude.<*> (x Data..:? "path")+ Prelude.<*> (x Data..:? "port")+ Prelude.<*> (x Data..:? "prefix")+ Prelude.<*> (x Data..:? "queryParameters")+ Prelude.<*> (x Data..:? "scheme")+ )++instance Prelude.Hashable HttpRouteMatch where+ hashWithSalt _salt HttpRouteMatch' {..} =+ _salt+ `Prelude.hashWithSalt` headers+ `Prelude.hashWithSalt` method+ `Prelude.hashWithSalt` path+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` prefix+ `Prelude.hashWithSalt` queryParameters+ `Prelude.hashWithSalt` scheme++instance Prelude.NFData HttpRouteMatch where+ rnf HttpRouteMatch' {..} =+ Prelude.rnf headers+ `Prelude.seq` Prelude.rnf method+ `Prelude.seq` Prelude.rnf path+ `Prelude.seq` Prelude.rnf port+ `Prelude.seq` Prelude.rnf prefix+ `Prelude.seq` Prelude.rnf queryParameters+ `Prelude.seq` Prelude.rnf scheme++instance Data.ToJSON HttpRouteMatch where+ toJSON HttpRouteMatch' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("headers" Data..=) Prelude.<$> headers,+ ("method" Data..=) Prelude.<$> method,+ ("path" Data..=) Prelude.<$> path,+ ("port" Data..=) Prelude.<$> port,+ ("prefix" Data..=) Prelude.<$> prefix,+ ("queryParameters" Data..=)+ Prelude.<$> queryParameters,+ ("scheme" Data..=) Prelude.<$> scheme+ ]+ )
+ gen/Amazonka/AppMesh/Types/HttpScheme.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.HttpScheme+-- 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.AppMesh.Types.HttpScheme+ ( HttpScheme+ ( ..,+ HttpScheme_Http,+ HttpScheme_Https+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HttpScheme = HttpScheme'+ { fromHttpScheme ::+ 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 HttpScheme_Http :: HttpScheme+pattern HttpScheme_Http = HttpScheme' "http"++pattern HttpScheme_Https :: HttpScheme+pattern HttpScheme_Https = HttpScheme' "https"++{-# COMPLETE+ HttpScheme_Http,+ HttpScheme_Https,+ HttpScheme'+ #-}
+ gen/Amazonka/AppMesh/Types/HttpTimeout.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.AppMesh.Types.HttpTimeout+-- 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.AppMesh.Types.HttpTimeout where++import Amazonka.AppMesh.Types.Duration+import qualified 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 object that represents types of timeouts.+--+-- /See:/ 'newHttpTimeout' smart constructor.+data HttpTimeout = HttpTimeout'+ { -- | An object that represents an idle timeout. An idle timeout bounds the+ -- amount of time that a connection may be idle. The default value is none.+ idle :: Prelude.Maybe Duration,+ -- | An object that represents a per request timeout. The default value is 15+ -- seconds. If you set a higher timeout, then make sure that the higher+ -- value is set for each App Mesh resource in a conversation. For example,+ -- if a virtual node backend uses a virtual router provider to route to+ -- another virtual node, then the timeout should be greater than 15 seconds+ -- for the source and destination virtual node and the route.+ perRequest :: Prelude.Maybe Duration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HttpTimeout' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'idle', 'httpTimeout_idle' - An object that represents an idle timeout. An idle timeout bounds the+-- amount of time that a connection may be idle. The default value is none.+--+-- 'perRequest', 'httpTimeout_perRequest' - An object that represents a per request timeout. The default value is 15+-- seconds. If you set a higher timeout, then make sure that the higher+-- value is set for each App Mesh resource in a conversation. For example,+-- if a virtual node backend uses a virtual router provider to route to+-- another virtual node, then the timeout should be greater than 15 seconds+-- for the source and destination virtual node and the route.+newHttpTimeout ::+ HttpTimeout+newHttpTimeout =+ HttpTimeout'+ { idle = Prelude.Nothing,+ perRequest = Prelude.Nothing+ }++-- | An object that represents an idle timeout. An idle timeout bounds the+-- amount of time that a connection may be idle. The default value is none.+httpTimeout_idle :: Lens.Lens' HttpTimeout (Prelude.Maybe Duration)+httpTimeout_idle = Lens.lens (\HttpTimeout' {idle} -> idle) (\s@HttpTimeout' {} a -> s {idle = a} :: HttpTimeout)++-- | An object that represents a per request timeout. The default value is 15+-- seconds. If you set a higher timeout, then make sure that the higher+-- value is set for each App Mesh resource in a conversation. For example,+-- if a virtual node backend uses a virtual router provider to route to+-- another virtual node, then the timeout should be greater than 15 seconds+-- for the source and destination virtual node and the route.+httpTimeout_perRequest :: Lens.Lens' HttpTimeout (Prelude.Maybe Duration)+httpTimeout_perRequest = Lens.lens (\HttpTimeout' {perRequest} -> perRequest) (\s@HttpTimeout' {} a -> s {perRequest = a} :: HttpTimeout)++instance Data.FromJSON HttpTimeout where+ parseJSON =+ Data.withObject+ "HttpTimeout"+ ( \x ->+ HttpTimeout'+ Prelude.<$> (x Data..:? "idle")+ Prelude.<*> (x Data..:? "perRequest")+ )++instance Prelude.Hashable HttpTimeout where+ hashWithSalt _salt HttpTimeout' {..} =+ _salt+ `Prelude.hashWithSalt` idle+ `Prelude.hashWithSalt` perRequest++instance Prelude.NFData HttpTimeout where+ rnf HttpTimeout' {..} =+ Prelude.rnf idle+ `Prelude.seq` Prelude.rnf perRequest++instance Data.ToJSON HttpTimeout where+ toJSON HttpTimeout' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("idle" Data..=) Prelude.<$> idle,+ ("perRequest" Data..=) Prelude.<$> perRequest+ ]+ )
+ gen/Amazonka/AppMesh/Types/IpPreference.hs view
@@ -0,0 +1,81 @@+{-# 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.AppMesh.Types.IpPreference+-- 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.AppMesh.Types.IpPreference+ ( IpPreference+ ( ..,+ IpPreference_IPv4_ONLY,+ IpPreference_IPv4_PREFERRED,+ IpPreference_IPv6_ONLY,+ IpPreference_IPv6_PREFERRED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IpPreference = IpPreference'+ { fromIpPreference ::+ 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 IpPreference_IPv4_ONLY :: IpPreference+pattern IpPreference_IPv4_ONLY = IpPreference' "IPv4_ONLY"++pattern IpPreference_IPv4_PREFERRED :: IpPreference+pattern IpPreference_IPv4_PREFERRED = IpPreference' "IPv4_PREFERRED"++pattern IpPreference_IPv6_ONLY :: IpPreference+pattern IpPreference_IPv6_ONLY = IpPreference' "IPv6_ONLY"++pattern IpPreference_IPv6_PREFERRED :: IpPreference+pattern IpPreference_IPv6_PREFERRED = IpPreference' "IPv6_PREFERRED"++{-# COMPLETE+ IpPreference_IPv4_ONLY,+ IpPreference_IPv4_PREFERRED,+ IpPreference_IPv6_ONLY,+ IpPreference_IPv6_PREFERRED,+ IpPreference'+ #-}
+ gen/Amazonka/AppMesh/Types/JsonFormatRef.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.JsonFormatRef+-- 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.AppMesh.Types.JsonFormatRef 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++-- | An object that represents the key value pairs for the JSON.+--+-- /See:/ 'newJsonFormatRef' smart constructor.+data JsonFormatRef = JsonFormatRef'+ { -- | The specified key for the JSON.+ key :: Prelude.Text,+ -- | The specified value for the JSON.+ value :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JsonFormatRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'jsonFormatRef_key' - The specified key for the JSON.+--+-- 'value', 'jsonFormatRef_value' - The specified value for the JSON.+newJsonFormatRef ::+ -- | 'key'+ Prelude.Text ->+ -- | 'value'+ Prelude.Text ->+ JsonFormatRef+newJsonFormatRef pKey_ pValue_ =+ JsonFormatRef' {key = pKey_, value = pValue_}++-- | The specified key for the JSON.+jsonFormatRef_key :: Lens.Lens' JsonFormatRef Prelude.Text+jsonFormatRef_key = Lens.lens (\JsonFormatRef' {key} -> key) (\s@JsonFormatRef' {} a -> s {key = a} :: JsonFormatRef)++-- | The specified value for the JSON.+jsonFormatRef_value :: Lens.Lens' JsonFormatRef Prelude.Text+jsonFormatRef_value = Lens.lens (\JsonFormatRef' {value} -> value) (\s@JsonFormatRef' {} a -> s {value = a} :: JsonFormatRef)++instance Data.FromJSON JsonFormatRef where+ parseJSON =+ Data.withObject+ "JsonFormatRef"+ ( \x ->+ JsonFormatRef'+ Prelude.<$> (x Data..: "key")+ Prelude.<*> (x Data..: "value")+ )++instance Prelude.Hashable JsonFormatRef where+ hashWithSalt _salt JsonFormatRef' {..} =+ _salt+ `Prelude.hashWithSalt` key+ `Prelude.hashWithSalt` value++instance Prelude.NFData JsonFormatRef where+ rnf JsonFormatRef' {..} =+ Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON JsonFormatRef where+ toJSON JsonFormatRef' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("key" Data..= key),+ Prelude.Just ("value" Data..= value)+ ]+ )
+ gen/Amazonka/AppMesh/Types/Listener.hs view
@@ -0,0 +1,158 @@+{-# 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.AppMesh.Types.Listener+-- 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.AppMesh.Types.Listener where++import Amazonka.AppMesh.Types.HealthCheckPolicy+import Amazonka.AppMesh.Types.ListenerTimeout+import Amazonka.AppMesh.Types.ListenerTls+import Amazonka.AppMesh.Types.OutlierDetection+import Amazonka.AppMesh.Types.PortMapping+import Amazonka.AppMesh.Types.VirtualNodeConnectionPool+import qualified 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 object that represents a listener for a virtual node.+--+-- /See:/ 'newListener' smart constructor.+data Listener = Listener'+ { -- | The connection pool information for the listener.+ connectionPool :: Prelude.Maybe VirtualNodeConnectionPool,+ -- | The health check information for the listener.+ healthCheck :: Prelude.Maybe HealthCheckPolicy,+ -- | The outlier detection information for the listener.+ outlierDetection :: Prelude.Maybe OutlierDetection,+ -- | An object that represents timeouts for different protocols.+ timeout :: Prelude.Maybe ListenerTimeout,+ -- | A reference to an object that represents the Transport Layer Security+ -- (TLS) properties for a listener.+ tls :: Prelude.Maybe ListenerTls,+ -- | The port mapping information for the listener.+ portMapping :: PortMapping+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Listener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'connectionPool', 'listener_connectionPool' - The connection pool information for the listener.+--+-- 'healthCheck', 'listener_healthCheck' - The health check information for the listener.+--+-- 'outlierDetection', 'listener_outlierDetection' - The outlier detection information for the listener.+--+-- 'timeout', 'listener_timeout' - An object that represents timeouts for different protocols.+--+-- 'tls', 'listener_tls' - A reference to an object that represents the Transport Layer Security+-- (TLS) properties for a listener.+--+-- 'portMapping', 'listener_portMapping' - The port mapping information for the listener.+newListener ::+ -- | 'portMapping'+ PortMapping ->+ Listener+newListener pPortMapping_ =+ Listener'+ { connectionPool = Prelude.Nothing,+ healthCheck = Prelude.Nothing,+ outlierDetection = Prelude.Nothing,+ timeout = Prelude.Nothing,+ tls = Prelude.Nothing,+ portMapping = pPortMapping_+ }++-- | The connection pool information for the listener.+listener_connectionPool :: Lens.Lens' Listener (Prelude.Maybe VirtualNodeConnectionPool)+listener_connectionPool = Lens.lens (\Listener' {connectionPool} -> connectionPool) (\s@Listener' {} a -> s {connectionPool = a} :: Listener)++-- | The health check information for the listener.+listener_healthCheck :: Lens.Lens' Listener (Prelude.Maybe HealthCheckPolicy)+listener_healthCheck = Lens.lens (\Listener' {healthCheck} -> healthCheck) (\s@Listener' {} a -> s {healthCheck = a} :: Listener)++-- | The outlier detection information for the listener.+listener_outlierDetection :: Lens.Lens' Listener (Prelude.Maybe OutlierDetection)+listener_outlierDetection = Lens.lens (\Listener' {outlierDetection} -> outlierDetection) (\s@Listener' {} a -> s {outlierDetection = a} :: Listener)++-- | An object that represents timeouts for different protocols.+listener_timeout :: Lens.Lens' Listener (Prelude.Maybe ListenerTimeout)+listener_timeout = Lens.lens (\Listener' {timeout} -> timeout) (\s@Listener' {} a -> s {timeout = a} :: Listener)++-- | A reference to an object that represents the Transport Layer Security+-- (TLS) properties for a listener.+listener_tls :: Lens.Lens' Listener (Prelude.Maybe ListenerTls)+listener_tls = Lens.lens (\Listener' {tls} -> tls) (\s@Listener' {} a -> s {tls = a} :: Listener)++-- | The port mapping information for the listener.+listener_portMapping :: Lens.Lens' Listener PortMapping+listener_portMapping = Lens.lens (\Listener' {portMapping} -> portMapping) (\s@Listener' {} a -> s {portMapping = a} :: Listener)++instance Data.FromJSON Listener where+ parseJSON =+ Data.withObject+ "Listener"+ ( \x ->+ Listener'+ Prelude.<$> (x Data..:? "connectionPool")+ Prelude.<*> (x Data..:? "healthCheck")+ Prelude.<*> (x Data..:? "outlierDetection")+ Prelude.<*> (x Data..:? "timeout")+ Prelude.<*> (x Data..:? "tls")+ Prelude.<*> (x Data..: "portMapping")+ )++instance Prelude.Hashable Listener where+ hashWithSalt _salt Listener' {..} =+ _salt+ `Prelude.hashWithSalt` connectionPool+ `Prelude.hashWithSalt` healthCheck+ `Prelude.hashWithSalt` outlierDetection+ `Prelude.hashWithSalt` timeout+ `Prelude.hashWithSalt` tls+ `Prelude.hashWithSalt` portMapping++instance Prelude.NFData Listener where+ rnf Listener' {..} =+ Prelude.rnf connectionPool+ `Prelude.seq` Prelude.rnf healthCheck+ `Prelude.seq` Prelude.rnf outlierDetection+ `Prelude.seq` Prelude.rnf timeout+ `Prelude.seq` Prelude.rnf tls+ `Prelude.seq` Prelude.rnf portMapping++instance Data.ToJSON Listener where+ toJSON Listener' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("connectionPool" Data..=)+ Prelude.<$> connectionPool,+ ("healthCheck" Data..=) Prelude.<$> healthCheck,+ ("outlierDetection" Data..=)+ Prelude.<$> outlierDetection,+ ("timeout" Data..=) Prelude.<$> timeout,+ ("tls" Data..=) Prelude.<$> tls,+ Prelude.Just ("portMapping" Data..= portMapping)+ ]+ )
+ gen/Amazonka/AppMesh/Types/ListenerTimeout.hs view
@@ -0,0 +1,122 @@+{-# 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.AppMesh.Types.ListenerTimeout+-- 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.AppMesh.Types.ListenerTimeout where++import Amazonka.AppMesh.Types.GrpcTimeout+import Amazonka.AppMesh.Types.HttpTimeout+import Amazonka.AppMesh.Types.TcpTimeout+import qualified 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 object that represents timeouts for different protocols.+--+-- /See:/ 'newListenerTimeout' smart constructor.+data ListenerTimeout = ListenerTimeout'+ { -- | An object that represents types of timeouts.+ grpc :: Prelude.Maybe GrpcTimeout,+ -- | An object that represents types of timeouts.+ http :: Prelude.Maybe HttpTimeout,+ -- | An object that represents types of timeouts.+ http2 :: Prelude.Maybe HttpTimeout,+ -- | An object that represents types of timeouts.+ tcp :: Prelude.Maybe TcpTimeout+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListenerTimeout' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'grpc', 'listenerTimeout_grpc' - An object that represents types of timeouts.+--+-- 'http', 'listenerTimeout_http' - An object that represents types of timeouts.+--+-- 'http2', 'listenerTimeout_http2' - An object that represents types of timeouts.+--+-- 'tcp', 'listenerTimeout_tcp' - An object that represents types of timeouts.+newListenerTimeout ::+ ListenerTimeout+newListenerTimeout =+ ListenerTimeout'+ { grpc = Prelude.Nothing,+ http = Prelude.Nothing,+ http2 = Prelude.Nothing,+ tcp = Prelude.Nothing+ }++-- | An object that represents types of timeouts.+listenerTimeout_grpc :: Lens.Lens' ListenerTimeout (Prelude.Maybe GrpcTimeout)+listenerTimeout_grpc = Lens.lens (\ListenerTimeout' {grpc} -> grpc) (\s@ListenerTimeout' {} a -> s {grpc = a} :: ListenerTimeout)++-- | An object that represents types of timeouts.+listenerTimeout_http :: Lens.Lens' ListenerTimeout (Prelude.Maybe HttpTimeout)+listenerTimeout_http = Lens.lens (\ListenerTimeout' {http} -> http) (\s@ListenerTimeout' {} a -> s {http = a} :: ListenerTimeout)++-- | An object that represents types of timeouts.+listenerTimeout_http2 :: Lens.Lens' ListenerTimeout (Prelude.Maybe HttpTimeout)+listenerTimeout_http2 = Lens.lens (\ListenerTimeout' {http2} -> http2) (\s@ListenerTimeout' {} a -> s {http2 = a} :: ListenerTimeout)++-- | An object that represents types of timeouts.+listenerTimeout_tcp :: Lens.Lens' ListenerTimeout (Prelude.Maybe TcpTimeout)+listenerTimeout_tcp = Lens.lens (\ListenerTimeout' {tcp} -> tcp) (\s@ListenerTimeout' {} a -> s {tcp = a} :: ListenerTimeout)++instance Data.FromJSON ListenerTimeout where+ parseJSON =+ Data.withObject+ "ListenerTimeout"+ ( \x ->+ ListenerTimeout'+ Prelude.<$> (x Data..:? "grpc")+ Prelude.<*> (x Data..:? "http")+ Prelude.<*> (x Data..:? "http2")+ Prelude.<*> (x Data..:? "tcp")+ )++instance Prelude.Hashable ListenerTimeout where+ hashWithSalt _salt ListenerTimeout' {..} =+ _salt+ `Prelude.hashWithSalt` grpc+ `Prelude.hashWithSalt` http+ `Prelude.hashWithSalt` http2+ `Prelude.hashWithSalt` tcp++instance Prelude.NFData ListenerTimeout where+ rnf ListenerTimeout' {..} =+ Prelude.rnf grpc+ `Prelude.seq` Prelude.rnf http+ `Prelude.seq` Prelude.rnf http2+ `Prelude.seq` Prelude.rnf tcp++instance Data.ToJSON ListenerTimeout where+ toJSON ListenerTimeout' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("grpc" Data..=) Prelude.<$> grpc,+ ("http" Data..=) Prelude.<$> http,+ ("http2" Data..=) Prelude.<$> http2,+ ("tcp" Data..=) Prelude.<$> tcp+ ]+ )
+ gen/Amazonka/AppMesh/Types/ListenerTls.hs view
@@ -0,0 +1,141 @@+{-# 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.AppMesh.Types.ListenerTls+-- 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.AppMesh.Types.ListenerTls where++import Amazonka.AppMesh.Types.ListenerTlsCertificate+import Amazonka.AppMesh.Types.ListenerTlsMode+import Amazonka.AppMesh.Types.ListenerTlsValidationContext+import qualified 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 object that represents the Transport Layer Security (TLS) properties+-- for a listener.+--+-- /See:/ 'newListenerTls' smart constructor.+data ListenerTls = ListenerTls'+ { -- | A reference to an object that represents a listener\'s Transport Layer+ -- Security (TLS) validation context.+ validation :: Prelude.Maybe ListenerTlsValidationContext,+ -- | A reference to an object that represents a listener\'s Transport Layer+ -- Security (TLS) certificate.+ certificate :: ListenerTlsCertificate,+ -- | Specify one of the following modes.+ --+ -- - ____STRICT – Listener only accepts connections with TLS enabled.+ --+ -- - ____PERMISSIVE – Listener accepts connections with or without TLS+ -- enabled.+ --+ -- - ____DISABLED – Listener only accepts connections without TLS.+ mode :: ListenerTlsMode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListenerTls' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'validation', 'listenerTls_validation' - A reference to an object that represents a listener\'s Transport Layer+-- Security (TLS) validation context.+--+-- 'certificate', 'listenerTls_certificate' - A reference to an object that represents a listener\'s Transport Layer+-- Security (TLS) certificate.+--+-- 'mode', 'listenerTls_mode' - Specify one of the following modes.+--+-- - ____STRICT – Listener only accepts connections with TLS enabled.+--+-- - ____PERMISSIVE – Listener accepts connections with or without TLS+-- enabled.+--+-- - ____DISABLED – Listener only accepts connections without TLS.+newListenerTls ::+ -- | 'certificate'+ ListenerTlsCertificate ->+ -- | 'mode'+ ListenerTlsMode ->+ ListenerTls+newListenerTls pCertificate_ pMode_ =+ ListenerTls'+ { validation = Prelude.Nothing,+ certificate = pCertificate_,+ mode = pMode_+ }++-- | A reference to an object that represents a listener\'s Transport Layer+-- Security (TLS) validation context.+listenerTls_validation :: Lens.Lens' ListenerTls (Prelude.Maybe ListenerTlsValidationContext)+listenerTls_validation = Lens.lens (\ListenerTls' {validation} -> validation) (\s@ListenerTls' {} a -> s {validation = a} :: ListenerTls)++-- | A reference to an object that represents a listener\'s Transport Layer+-- Security (TLS) certificate.+listenerTls_certificate :: Lens.Lens' ListenerTls ListenerTlsCertificate+listenerTls_certificate = Lens.lens (\ListenerTls' {certificate} -> certificate) (\s@ListenerTls' {} a -> s {certificate = a} :: ListenerTls)++-- | Specify one of the following modes.+--+-- - ____STRICT – Listener only accepts connections with TLS enabled.+--+-- - ____PERMISSIVE – Listener accepts connections with or without TLS+-- enabled.+--+-- - ____DISABLED – Listener only accepts connections without TLS.+listenerTls_mode :: Lens.Lens' ListenerTls ListenerTlsMode+listenerTls_mode = Lens.lens (\ListenerTls' {mode} -> mode) (\s@ListenerTls' {} a -> s {mode = a} :: ListenerTls)++instance Data.FromJSON ListenerTls where+ parseJSON =+ Data.withObject+ "ListenerTls"+ ( \x ->+ ListenerTls'+ Prelude.<$> (x Data..:? "validation")+ Prelude.<*> (x Data..: "certificate")+ Prelude.<*> (x Data..: "mode")+ )++instance Prelude.Hashable ListenerTls where+ hashWithSalt _salt ListenerTls' {..} =+ _salt+ `Prelude.hashWithSalt` validation+ `Prelude.hashWithSalt` certificate+ `Prelude.hashWithSalt` mode++instance Prelude.NFData ListenerTls where+ rnf ListenerTls' {..} =+ Prelude.rnf validation+ `Prelude.seq` Prelude.rnf certificate+ `Prelude.seq` Prelude.rnf mode++instance Data.ToJSON ListenerTls where+ toJSON ListenerTls' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("validation" Data..=) Prelude.<$> validation,+ Prelude.Just ("certificate" Data..= certificate),+ Prelude.Just ("mode" Data..= mode)+ ]+ )
+ gen/Amazonka/AppMesh/Types/ListenerTlsAcmCertificate.hs view
@@ -0,0 +1,92 @@+{-# 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.AppMesh.Types.ListenerTlsAcmCertificate+-- 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.AppMesh.Types.ListenerTlsAcmCertificate 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++-- | An object that represents an Certificate Manager certificate.+--+-- /See:/ 'newListenerTlsAcmCertificate' smart constructor.+data ListenerTlsAcmCertificate = ListenerTlsAcmCertificate'+ { -- | The Amazon Resource Name (ARN) for the certificate. The certificate must+ -- meet specific requirements and you must have proxy authorization+ -- enabled. For more information, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites Transport Layer Security (TLS)>.+ certificateArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListenerTlsAcmCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateArn', 'listenerTlsAcmCertificate_certificateArn' - The Amazon Resource Name (ARN) for the certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites Transport Layer Security (TLS)>.+newListenerTlsAcmCertificate ::+ -- | 'certificateArn'+ Prelude.Text ->+ ListenerTlsAcmCertificate+newListenerTlsAcmCertificate pCertificateArn_ =+ ListenerTlsAcmCertificate'+ { certificateArn =+ pCertificateArn_+ }++-- | The Amazon Resource Name (ARN) for the certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites Transport Layer Security (TLS)>.+listenerTlsAcmCertificate_certificateArn :: Lens.Lens' ListenerTlsAcmCertificate Prelude.Text+listenerTlsAcmCertificate_certificateArn = Lens.lens (\ListenerTlsAcmCertificate' {certificateArn} -> certificateArn) (\s@ListenerTlsAcmCertificate' {} a -> s {certificateArn = a} :: ListenerTlsAcmCertificate)++instance Data.FromJSON ListenerTlsAcmCertificate where+ parseJSON =+ Data.withObject+ "ListenerTlsAcmCertificate"+ ( \x ->+ ListenerTlsAcmCertificate'+ Prelude.<$> (x Data..: "certificateArn")+ )++instance Prelude.Hashable ListenerTlsAcmCertificate where+ hashWithSalt _salt ListenerTlsAcmCertificate' {..} =+ _salt `Prelude.hashWithSalt` certificateArn++instance Prelude.NFData ListenerTlsAcmCertificate where+ rnf ListenerTlsAcmCertificate' {..} =+ Prelude.rnf certificateArn++instance Data.ToJSON ListenerTlsAcmCertificate where+ toJSON ListenerTlsAcmCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("certificateArn" Data..= certificateArn)+ ]+ )
+ gen/Amazonka/AppMesh/Types/ListenerTlsCertificate.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.ListenerTlsCertificate+-- 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.AppMesh.Types.ListenerTlsCertificate where++import Amazonka.AppMesh.Types.ListenerTlsAcmCertificate+import Amazonka.AppMesh.Types.ListenerTlsFileCertificate+import Amazonka.AppMesh.Types.ListenerTlsSdsCertificate+import qualified 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 object that represents a listener\'s Transport Layer Security (TLS)+-- certificate.+--+-- /See:/ 'newListenerTlsCertificate' smart constructor.+data ListenerTlsCertificate = ListenerTlsCertificate'+ { -- | A reference to an object that represents an Certificate Manager+ -- certificate.+ acm :: Prelude.Maybe ListenerTlsAcmCertificate,+ -- | A reference to an object that represents a local file certificate.+ file :: Prelude.Maybe ListenerTlsFileCertificate,+ -- | A reference to an object that represents a listener\'s Secret Discovery+ -- Service certificate.+ sds :: Prelude.Maybe ListenerTlsSdsCertificate+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListenerTlsCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acm', 'listenerTlsCertificate_acm' - A reference to an object that represents an Certificate Manager+-- certificate.+--+-- 'file', 'listenerTlsCertificate_file' - A reference to an object that represents a local file certificate.+--+-- 'sds', 'listenerTlsCertificate_sds' - A reference to an object that represents a listener\'s Secret Discovery+-- Service certificate.+newListenerTlsCertificate ::+ ListenerTlsCertificate+newListenerTlsCertificate =+ ListenerTlsCertificate'+ { acm = Prelude.Nothing,+ file = Prelude.Nothing,+ sds = Prelude.Nothing+ }++-- | A reference to an object that represents an Certificate Manager+-- certificate.+listenerTlsCertificate_acm :: Lens.Lens' ListenerTlsCertificate (Prelude.Maybe ListenerTlsAcmCertificate)+listenerTlsCertificate_acm = Lens.lens (\ListenerTlsCertificate' {acm} -> acm) (\s@ListenerTlsCertificate' {} a -> s {acm = a} :: ListenerTlsCertificate)++-- | A reference to an object that represents a local file certificate.+listenerTlsCertificate_file :: Lens.Lens' ListenerTlsCertificate (Prelude.Maybe ListenerTlsFileCertificate)+listenerTlsCertificate_file = Lens.lens (\ListenerTlsCertificate' {file} -> file) (\s@ListenerTlsCertificate' {} a -> s {file = a} :: ListenerTlsCertificate)++-- | A reference to an object that represents a listener\'s Secret Discovery+-- Service certificate.+listenerTlsCertificate_sds :: Lens.Lens' ListenerTlsCertificate (Prelude.Maybe ListenerTlsSdsCertificate)+listenerTlsCertificate_sds = Lens.lens (\ListenerTlsCertificate' {sds} -> sds) (\s@ListenerTlsCertificate' {} a -> s {sds = a} :: ListenerTlsCertificate)++instance Data.FromJSON ListenerTlsCertificate where+ parseJSON =+ Data.withObject+ "ListenerTlsCertificate"+ ( \x ->+ ListenerTlsCertificate'+ Prelude.<$> (x Data..:? "acm")+ Prelude.<*> (x Data..:? "file")+ Prelude.<*> (x Data..:? "sds")+ )++instance Prelude.Hashable ListenerTlsCertificate where+ hashWithSalt _salt ListenerTlsCertificate' {..} =+ _salt+ `Prelude.hashWithSalt` acm+ `Prelude.hashWithSalt` file+ `Prelude.hashWithSalt` sds++instance Prelude.NFData ListenerTlsCertificate where+ rnf ListenerTlsCertificate' {..} =+ Prelude.rnf acm+ `Prelude.seq` Prelude.rnf file+ `Prelude.seq` Prelude.rnf sds++instance Data.ToJSON ListenerTlsCertificate where+ toJSON ListenerTlsCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("acm" Data..=) Prelude.<$> acm,+ ("file" Data..=) Prelude.<$> file,+ ("sds" Data..=) Prelude.<$> sds+ ]+ )
+ gen/Amazonka/AppMesh/Types/ListenerTlsFileCertificate.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.ListenerTlsFileCertificate+-- 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.AppMesh.Types.ListenerTlsFileCertificate 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++-- | An object that represents a local file certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites Transport Layer Security (TLS)>.+--+-- /See:/ 'newListenerTlsFileCertificate' smart constructor.+data ListenerTlsFileCertificate = ListenerTlsFileCertificate'+ { -- | The certificate chain for the certificate.+ certificateChain :: Prelude.Text,+ -- | The private key for a certificate stored on the file system of the+ -- virtual node that the proxy is running on.+ privateKey :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListenerTlsFileCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateChain', 'listenerTlsFileCertificate_certificateChain' - The certificate chain for the certificate.+--+-- 'privateKey', 'listenerTlsFileCertificate_privateKey' - The private key for a certificate stored on the file system of the+-- virtual node that the proxy is running on.+newListenerTlsFileCertificate ::+ -- | 'certificateChain'+ Prelude.Text ->+ -- | 'privateKey'+ Prelude.Text ->+ ListenerTlsFileCertificate+newListenerTlsFileCertificate+ pCertificateChain_+ pPrivateKey_ =+ ListenerTlsFileCertificate'+ { certificateChain =+ pCertificateChain_,+ privateKey = pPrivateKey_+ }++-- | The certificate chain for the certificate.+listenerTlsFileCertificate_certificateChain :: Lens.Lens' ListenerTlsFileCertificate Prelude.Text+listenerTlsFileCertificate_certificateChain = Lens.lens (\ListenerTlsFileCertificate' {certificateChain} -> certificateChain) (\s@ListenerTlsFileCertificate' {} a -> s {certificateChain = a} :: ListenerTlsFileCertificate)++-- | The private key for a certificate stored on the file system of the+-- virtual node that the proxy is running on.+listenerTlsFileCertificate_privateKey :: Lens.Lens' ListenerTlsFileCertificate Prelude.Text+listenerTlsFileCertificate_privateKey = Lens.lens (\ListenerTlsFileCertificate' {privateKey} -> privateKey) (\s@ListenerTlsFileCertificate' {} a -> s {privateKey = a} :: ListenerTlsFileCertificate)++instance Data.FromJSON ListenerTlsFileCertificate where+ parseJSON =+ Data.withObject+ "ListenerTlsFileCertificate"+ ( \x ->+ ListenerTlsFileCertificate'+ Prelude.<$> (x Data..: "certificateChain")+ Prelude.<*> (x Data..: "privateKey")+ )++instance Prelude.Hashable ListenerTlsFileCertificate where+ hashWithSalt _salt ListenerTlsFileCertificate' {..} =+ _salt+ `Prelude.hashWithSalt` certificateChain+ `Prelude.hashWithSalt` privateKey++instance Prelude.NFData ListenerTlsFileCertificate where+ rnf ListenerTlsFileCertificate' {..} =+ Prelude.rnf certificateChain+ `Prelude.seq` Prelude.rnf privateKey++instance Data.ToJSON ListenerTlsFileCertificate where+ toJSON ListenerTlsFileCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("certificateChain" Data..= certificateChain),+ Prelude.Just ("privateKey" Data..= privateKey)+ ]+ )
+ gen/Amazonka/AppMesh/Types/ListenerTlsMode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.ListenerTlsMode+-- 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.AppMesh.Types.ListenerTlsMode+ ( ListenerTlsMode+ ( ..,+ ListenerTlsMode_DISABLED,+ ListenerTlsMode_PERMISSIVE,+ ListenerTlsMode_STRICT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ListenerTlsMode = ListenerTlsMode'+ { fromListenerTlsMode ::+ 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 ListenerTlsMode_DISABLED :: ListenerTlsMode+pattern ListenerTlsMode_DISABLED = ListenerTlsMode' "DISABLED"++pattern ListenerTlsMode_PERMISSIVE :: ListenerTlsMode+pattern ListenerTlsMode_PERMISSIVE = ListenerTlsMode' "PERMISSIVE"++pattern ListenerTlsMode_STRICT :: ListenerTlsMode+pattern ListenerTlsMode_STRICT = ListenerTlsMode' "STRICT"++{-# COMPLETE+ ListenerTlsMode_DISABLED,+ ListenerTlsMode_PERMISSIVE,+ ListenerTlsMode_STRICT,+ ListenerTlsMode'+ #-}
+ gen/Amazonka/AppMesh/Types/ListenerTlsSdsCertificate.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.ListenerTlsSdsCertificate+-- 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.AppMesh.Types.ListenerTlsSdsCertificate 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++-- | An object that represents the listener\'s Secret Discovery Service+-- certificate. The proxy must be configured with a local SDS provider via+-- a Unix Domain Socket. See App Mesh+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html TLS documentation>+-- for more info.+--+-- /See:/ 'newListenerTlsSdsCertificate' smart constructor.+data ListenerTlsSdsCertificate = ListenerTlsSdsCertificate'+ { -- | A reference to an object that represents the name of the secret+ -- requested from the Secret Discovery Service provider representing+ -- Transport Layer Security (TLS) materials like a certificate or+ -- certificate chain.+ secretName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListenerTlsSdsCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'secretName', 'listenerTlsSdsCertificate_secretName' - A reference to an object that represents the name of the secret+-- requested from the Secret Discovery Service provider representing+-- Transport Layer Security (TLS) materials like a certificate or+-- certificate chain.+newListenerTlsSdsCertificate ::+ -- | 'secretName'+ Prelude.Text ->+ ListenerTlsSdsCertificate+newListenerTlsSdsCertificate pSecretName_ =+ ListenerTlsSdsCertificate'+ { secretName =+ pSecretName_+ }++-- | A reference to an object that represents the name of the secret+-- requested from the Secret Discovery Service provider representing+-- Transport Layer Security (TLS) materials like a certificate or+-- certificate chain.+listenerTlsSdsCertificate_secretName :: Lens.Lens' ListenerTlsSdsCertificate Prelude.Text+listenerTlsSdsCertificate_secretName = Lens.lens (\ListenerTlsSdsCertificate' {secretName} -> secretName) (\s@ListenerTlsSdsCertificate' {} a -> s {secretName = a} :: ListenerTlsSdsCertificate)++instance Data.FromJSON ListenerTlsSdsCertificate where+ parseJSON =+ Data.withObject+ "ListenerTlsSdsCertificate"+ ( \x ->+ ListenerTlsSdsCertificate'+ Prelude.<$> (x Data..: "secretName")+ )++instance Prelude.Hashable ListenerTlsSdsCertificate where+ hashWithSalt _salt ListenerTlsSdsCertificate' {..} =+ _salt `Prelude.hashWithSalt` secretName++instance Prelude.NFData ListenerTlsSdsCertificate where+ rnf ListenerTlsSdsCertificate' {..} =+ Prelude.rnf secretName++instance Data.ToJSON ListenerTlsSdsCertificate where+ toJSON ListenerTlsSdsCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("secretName" Data..= secretName)]+ )
+ gen/Amazonka/AppMesh/Types/ListenerTlsValidationContext.hs view
@@ -0,0 +1,109 @@+{-# 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.AppMesh.Types.ListenerTlsValidationContext+-- 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.AppMesh.Types.ListenerTlsValidationContext where++import Amazonka.AppMesh.Types.ListenerTlsValidationContextTrust+import Amazonka.AppMesh.Types.SubjectAlternativeNames+import qualified 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 object that represents a listener\'s Transport Layer Security (TLS)+-- validation context.+--+-- /See:/ 'newListenerTlsValidationContext' smart constructor.+data ListenerTlsValidationContext = ListenerTlsValidationContext'+ { -- | A reference to an object that represents the SANs for a listener\'s+ -- Transport Layer Security (TLS) validation context.+ subjectAlternativeNames :: Prelude.Maybe SubjectAlternativeNames,+ -- | A reference to where to retrieve the trust chain when validating a+ -- peer’s Transport Layer Security (TLS) certificate.+ trust :: ListenerTlsValidationContextTrust+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListenerTlsValidationContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subjectAlternativeNames', 'listenerTlsValidationContext_subjectAlternativeNames' - A reference to an object that represents the SANs for a listener\'s+-- Transport Layer Security (TLS) validation context.+--+-- 'trust', 'listenerTlsValidationContext_trust' - A reference to where to retrieve the trust chain when validating a+-- peer’s Transport Layer Security (TLS) certificate.+newListenerTlsValidationContext ::+ -- | 'trust'+ ListenerTlsValidationContextTrust ->+ ListenerTlsValidationContext+newListenerTlsValidationContext pTrust_ =+ ListenerTlsValidationContext'+ { subjectAlternativeNames =+ Prelude.Nothing,+ trust = pTrust_+ }++-- | A reference to an object that represents the SANs for a listener\'s+-- Transport Layer Security (TLS) validation context.+listenerTlsValidationContext_subjectAlternativeNames :: Lens.Lens' ListenerTlsValidationContext (Prelude.Maybe SubjectAlternativeNames)+listenerTlsValidationContext_subjectAlternativeNames = Lens.lens (\ListenerTlsValidationContext' {subjectAlternativeNames} -> subjectAlternativeNames) (\s@ListenerTlsValidationContext' {} a -> s {subjectAlternativeNames = a} :: ListenerTlsValidationContext)++-- | A reference to where to retrieve the trust chain when validating a+-- peer’s Transport Layer Security (TLS) certificate.+listenerTlsValidationContext_trust :: Lens.Lens' ListenerTlsValidationContext ListenerTlsValidationContextTrust+listenerTlsValidationContext_trust = Lens.lens (\ListenerTlsValidationContext' {trust} -> trust) (\s@ListenerTlsValidationContext' {} a -> s {trust = a} :: ListenerTlsValidationContext)++instance Data.FromJSON ListenerTlsValidationContext where+ parseJSON =+ Data.withObject+ "ListenerTlsValidationContext"+ ( \x ->+ ListenerTlsValidationContext'+ Prelude.<$> (x Data..:? "subjectAlternativeNames")+ Prelude.<*> (x Data..: "trust")+ )++instance+ Prelude.Hashable+ ListenerTlsValidationContext+ where+ hashWithSalt _salt ListenerTlsValidationContext' {..} =+ _salt+ `Prelude.hashWithSalt` subjectAlternativeNames+ `Prelude.hashWithSalt` trust++instance Prelude.NFData ListenerTlsValidationContext where+ rnf ListenerTlsValidationContext' {..} =+ Prelude.rnf subjectAlternativeNames+ `Prelude.seq` Prelude.rnf trust++instance Data.ToJSON ListenerTlsValidationContext where+ toJSON ListenerTlsValidationContext' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("subjectAlternativeNames" Data..=)+ Prelude.<$> subjectAlternativeNames,+ Prelude.Just ("trust" Data..= trust)+ ]+ )
+ gen/Amazonka/AppMesh/Types/ListenerTlsValidationContextTrust.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.ListenerTlsValidationContextTrust+-- 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.AppMesh.Types.ListenerTlsValidationContextTrust where++import Amazonka.AppMesh.Types.TlsValidationContextFileTrust+import Amazonka.AppMesh.Types.TlsValidationContextSdsTrust+import qualified 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 object that represents a listener\'s Transport Layer Security (TLS)+-- validation context trust.+--+-- /See:/ 'newListenerTlsValidationContextTrust' smart constructor.+data ListenerTlsValidationContextTrust = ListenerTlsValidationContextTrust'+ { -- | An object that represents a Transport Layer Security (TLS) validation+ -- context trust for a local file.+ file :: Prelude.Maybe TlsValidationContextFileTrust,+ -- | A reference to an object that represents a listener\'s Transport Layer+ -- Security (TLS) Secret Discovery Service validation context trust.+ sds :: Prelude.Maybe TlsValidationContextSdsTrust+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListenerTlsValidationContextTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'file', 'listenerTlsValidationContextTrust_file' - An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+--+-- 'sds', 'listenerTlsValidationContextTrust_sds' - A reference to an object that represents a listener\'s Transport Layer+-- Security (TLS) Secret Discovery Service validation context trust.+newListenerTlsValidationContextTrust ::+ ListenerTlsValidationContextTrust+newListenerTlsValidationContextTrust =+ ListenerTlsValidationContextTrust'+ { file =+ Prelude.Nothing,+ sds = Prelude.Nothing+ }++-- | An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+listenerTlsValidationContextTrust_file :: Lens.Lens' ListenerTlsValidationContextTrust (Prelude.Maybe TlsValidationContextFileTrust)+listenerTlsValidationContextTrust_file = Lens.lens (\ListenerTlsValidationContextTrust' {file} -> file) (\s@ListenerTlsValidationContextTrust' {} a -> s {file = a} :: ListenerTlsValidationContextTrust)++-- | A reference to an object that represents a listener\'s Transport Layer+-- Security (TLS) Secret Discovery Service validation context trust.+listenerTlsValidationContextTrust_sds :: Lens.Lens' ListenerTlsValidationContextTrust (Prelude.Maybe TlsValidationContextSdsTrust)+listenerTlsValidationContextTrust_sds = Lens.lens (\ListenerTlsValidationContextTrust' {sds} -> sds) (\s@ListenerTlsValidationContextTrust' {} a -> s {sds = a} :: ListenerTlsValidationContextTrust)++instance+ Data.FromJSON+ ListenerTlsValidationContextTrust+ where+ parseJSON =+ Data.withObject+ "ListenerTlsValidationContextTrust"+ ( \x ->+ ListenerTlsValidationContextTrust'+ Prelude.<$> (x Data..:? "file")+ Prelude.<*> (x Data..:? "sds")+ )++instance+ Prelude.Hashable+ ListenerTlsValidationContextTrust+ where+ hashWithSalt+ _salt+ ListenerTlsValidationContextTrust' {..} =+ _salt+ `Prelude.hashWithSalt` file+ `Prelude.hashWithSalt` sds++instance+ Prelude.NFData+ ListenerTlsValidationContextTrust+ where+ rnf ListenerTlsValidationContextTrust' {..} =+ Prelude.rnf file `Prelude.seq` Prelude.rnf sds++instance+ Data.ToJSON+ ListenerTlsValidationContextTrust+ where+ toJSON ListenerTlsValidationContextTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("file" Data..=) Prelude.<$> file,+ ("sds" Data..=) Prelude.<$> sds+ ]+ )
+ gen/Amazonka/AppMesh/Types/Logging.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.Logging+-- 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.AppMesh.Types.Logging where++import Amazonka.AppMesh.Types.AccessLog+import qualified 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 object that represents the logging information for a virtual node.+--+-- /See:/ 'newLogging' smart constructor.+data Logging = Logging'+ { -- | The access log configuration for a virtual node.+ accessLog :: Prelude.Maybe AccessLog+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Logging' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessLog', 'logging_accessLog' - The access log configuration for a virtual node.+newLogging ::+ Logging+newLogging = Logging' {accessLog = Prelude.Nothing}++-- | The access log configuration for a virtual node.+logging_accessLog :: Lens.Lens' Logging (Prelude.Maybe AccessLog)+logging_accessLog = Lens.lens (\Logging' {accessLog} -> accessLog) (\s@Logging' {} a -> s {accessLog = a} :: Logging)++instance Data.FromJSON Logging where+ parseJSON =+ Data.withObject+ "Logging"+ ( \x ->+ Logging' Prelude.<$> (x Data..:? "accessLog")+ )++instance Prelude.Hashable Logging where+ hashWithSalt _salt Logging' {..} =+ _salt `Prelude.hashWithSalt` accessLog++instance Prelude.NFData Logging where+ rnf Logging' {..} = Prelude.rnf accessLog++instance Data.ToJSON Logging where+ toJSON Logging' {..} =+ Data.object+ ( Prelude.catMaybes+ [("accessLog" Data..=) Prelude.<$> accessLog]+ )
+ gen/Amazonka/AppMesh/Types/LoggingFormat.hs view
@@ -0,0 +1,89 @@+{-# 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.AppMesh.Types.LoggingFormat+-- 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.AppMesh.Types.LoggingFormat where++import Amazonka.AppMesh.Types.JsonFormatRef+import qualified 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 object that represents the format for the logs.+--+-- /See:/ 'newLoggingFormat' smart constructor.+data LoggingFormat = LoggingFormat'+ { json :: Prelude.Maybe [JsonFormatRef],+ text :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LoggingFormat' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'json', 'loggingFormat_json' -+--+-- 'text', 'loggingFormat_text' -+newLoggingFormat ::+ LoggingFormat+newLoggingFormat =+ LoggingFormat'+ { json = Prelude.Nothing,+ text = Prelude.Nothing+ }++loggingFormat_json :: Lens.Lens' LoggingFormat (Prelude.Maybe [JsonFormatRef])+loggingFormat_json = Lens.lens (\LoggingFormat' {json} -> json) (\s@LoggingFormat' {} a -> s {json = a} :: LoggingFormat) Prelude.. Lens.mapping Lens.coerced++loggingFormat_text :: Lens.Lens' LoggingFormat (Prelude.Maybe Prelude.Text)+loggingFormat_text = Lens.lens (\LoggingFormat' {text} -> text) (\s@LoggingFormat' {} a -> s {text = a} :: LoggingFormat)++instance Data.FromJSON LoggingFormat where+ parseJSON =+ Data.withObject+ "LoggingFormat"+ ( \x ->+ LoggingFormat'+ Prelude.<$> (x Data..:? "json" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "text")+ )++instance Prelude.Hashable LoggingFormat where+ hashWithSalt _salt LoggingFormat' {..} =+ _salt+ `Prelude.hashWithSalt` json+ `Prelude.hashWithSalt` text++instance Prelude.NFData LoggingFormat where+ rnf LoggingFormat' {..} =+ Prelude.rnf json `Prelude.seq` Prelude.rnf text++instance Data.ToJSON LoggingFormat where+ toJSON LoggingFormat' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("json" Data..=) Prelude.<$> json,+ ("text" Data..=) Prelude.<$> text+ ]+ )
+ gen/Amazonka/AppMesh/Types/MatchRange.hs view
@@ -0,0 +1,96 @@+{-# 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.AppMesh.Types.MatchRange+-- 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.AppMesh.Types.MatchRange 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++-- | An object that represents the range of values to match on. The first+-- character of the range is included in the range, though the last+-- character is not. For example, if the range specified were 1-100, only+-- values 1-99 would be matched.+--+-- /See:/ 'newMatchRange' smart constructor.+data MatchRange = MatchRange'+ { -- | The end of the range.+ end :: Prelude.Integer,+ -- | The start of the range.+ start :: Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MatchRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'end', 'matchRange_end' - The end of the range.+--+-- 'start', 'matchRange_start' - The start of the range.+newMatchRange ::+ -- | 'end'+ Prelude.Integer ->+ -- | 'start'+ Prelude.Integer ->+ MatchRange+newMatchRange pEnd_ pStart_ =+ MatchRange' {end = pEnd_, start = pStart_}++-- | The end of the range.+matchRange_end :: Lens.Lens' MatchRange Prelude.Integer+matchRange_end = Lens.lens (\MatchRange' {end} -> end) (\s@MatchRange' {} a -> s {end = a} :: MatchRange)++-- | The start of the range.+matchRange_start :: Lens.Lens' MatchRange Prelude.Integer+matchRange_start = Lens.lens (\MatchRange' {start} -> start) (\s@MatchRange' {} a -> s {start = a} :: MatchRange)++instance Data.FromJSON MatchRange where+ parseJSON =+ Data.withObject+ "MatchRange"+ ( \x ->+ MatchRange'+ Prelude.<$> (x Data..: "end")+ Prelude.<*> (x Data..: "start")+ )++instance Prelude.Hashable MatchRange where+ hashWithSalt _salt MatchRange' {..} =+ _salt+ `Prelude.hashWithSalt` end+ `Prelude.hashWithSalt` start++instance Prelude.NFData MatchRange where+ rnf MatchRange' {..} =+ Prelude.rnf end `Prelude.seq` Prelude.rnf start++instance Data.ToJSON MatchRange where+ toJSON MatchRange' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("end" Data..= end),+ Prelude.Just ("start" Data..= start)+ ]+ )
+ gen/Amazonka/AppMesh/Types/MeshData.hs view
@@ -0,0 +1,120 @@+{-# 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.AppMesh.Types.MeshData+-- 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.AppMesh.Types.MeshData where++import Amazonka.AppMesh.Types.MeshSpec+import Amazonka.AppMesh.Types.MeshStatus+import Amazonka.AppMesh.Types.ResourceMetadata+import qualified 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 object that represents a service mesh returned by a describe+-- operation.+--+-- /See:/ 'newMeshData' smart constructor.+data MeshData = MeshData'+ { -- | The name of the service mesh.+ meshName :: Prelude.Text,+ -- | The associated metadata for the service mesh.+ metadata :: ResourceMetadata,+ -- | The associated specification for the service mesh.+ spec :: MeshSpec,+ -- | The status of the service mesh.+ status :: MeshStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MeshData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshName', 'meshData_meshName' - The name of the service mesh.+--+-- 'metadata', 'meshData_metadata' - The associated metadata for the service mesh.+--+-- 'spec', 'meshData_spec' - The associated specification for the service mesh.+--+-- 'status', 'meshData_status' - The status of the service mesh.+newMeshData ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'metadata'+ ResourceMetadata ->+ -- | 'spec'+ MeshSpec ->+ -- | 'status'+ MeshStatus ->+ MeshData+newMeshData pMeshName_ pMetadata_ pSpec_ pStatus_ =+ MeshData'+ { meshName = pMeshName_,+ metadata = pMetadata_,+ spec = pSpec_,+ status = pStatus_+ }++-- | The name of the service mesh.+meshData_meshName :: Lens.Lens' MeshData Prelude.Text+meshData_meshName = Lens.lens (\MeshData' {meshName} -> meshName) (\s@MeshData' {} a -> s {meshName = a} :: MeshData)++-- | The associated metadata for the service mesh.+meshData_metadata :: Lens.Lens' MeshData ResourceMetadata+meshData_metadata = Lens.lens (\MeshData' {metadata} -> metadata) (\s@MeshData' {} a -> s {metadata = a} :: MeshData)++-- | The associated specification for the service mesh.+meshData_spec :: Lens.Lens' MeshData MeshSpec+meshData_spec = Lens.lens (\MeshData' {spec} -> spec) (\s@MeshData' {} a -> s {spec = a} :: MeshData)++-- | The status of the service mesh.+meshData_status :: Lens.Lens' MeshData MeshStatus+meshData_status = Lens.lens (\MeshData' {status} -> status) (\s@MeshData' {} a -> s {status = a} :: MeshData)++instance Data.FromJSON MeshData where+ parseJSON =+ Data.withObject+ "MeshData"+ ( \x ->+ MeshData'+ Prelude.<$> (x Data..: "meshName")+ Prelude.<*> (x Data..: "metadata")+ Prelude.<*> (x Data..: "spec")+ Prelude.<*> (x Data..: "status")+ )++instance Prelude.Hashable MeshData where+ hashWithSalt _salt MeshData' {..} =+ _salt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` status++instance Prelude.NFData MeshData where+ rnf MeshData' {..} =+ Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/AppMesh/Types/MeshRef.hs view
@@ -0,0 +1,192 @@+{-# 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.AppMesh.Types.MeshRef+-- 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.AppMesh.Types.MeshRef 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++-- | An object that represents a service mesh returned by a list operation.+--+-- /See:/ 'newMeshRef' smart constructor.+data MeshRef = MeshRef'+ { -- | The full Amazon Resource Name (ARN) of the service mesh.+ arn :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was created.+ createdAt :: Data.POSIX,+ -- | The Unix epoch timestamp in seconds for when the resource was last+ -- updated.+ lastUpdatedAt :: Data.POSIX,+ -- | The name of the service mesh.+ meshName :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the resource owner. If the+ -- account ID is not your own, then it\'s the ID of the mesh owner or of+ -- another account that the mesh is shared with. For more information about+ -- mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ resourceOwner :: Prelude.Text,+ -- | The version of the resource. Resources are created at version 1, and+ -- this version is incremented each time that they\'re updated.+ version :: Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MeshRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'meshRef_arn' - The full Amazon Resource Name (ARN) of the service mesh.+--+-- 'createdAt', 'meshRef_createdAt' - The Unix epoch timestamp in seconds for when the resource was created.+--+-- 'lastUpdatedAt', 'meshRef_lastUpdatedAt' - The Unix epoch timestamp in seconds for when the resource was last+-- updated.+--+-- 'meshName', 'meshRef_meshName' - The name of the service mesh.+--+-- 'meshOwner', 'meshRef_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'resourceOwner', 'meshRef_resourceOwner' - The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'version', 'meshRef_version' - The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+newMeshRef ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'meshOwner'+ Prelude.Text ->+ -- | 'resourceOwner'+ Prelude.Text ->+ -- | 'version'+ Prelude.Integer ->+ MeshRef+newMeshRef+ pArn_+ pCreatedAt_+ pLastUpdatedAt_+ pMeshName_+ pMeshOwner_+ pResourceOwner_+ pVersion_ =+ MeshRef'+ { arn = pArn_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_,+ meshName = pMeshName_,+ meshOwner = pMeshOwner_,+ resourceOwner = pResourceOwner_,+ version = pVersion_+ }++-- | The full Amazon Resource Name (ARN) of the service mesh.+meshRef_arn :: Lens.Lens' MeshRef Prelude.Text+meshRef_arn = Lens.lens (\MeshRef' {arn} -> arn) (\s@MeshRef' {} a -> s {arn = a} :: MeshRef)++-- | The Unix epoch timestamp in seconds for when the resource was created.+meshRef_createdAt :: Lens.Lens' MeshRef Prelude.UTCTime+meshRef_createdAt = Lens.lens (\MeshRef' {createdAt} -> createdAt) (\s@MeshRef' {} a -> s {createdAt = a} :: MeshRef) Prelude.. Data._Time++-- | The Unix epoch timestamp in seconds for when the resource was last+-- updated.+meshRef_lastUpdatedAt :: Lens.Lens' MeshRef Prelude.UTCTime+meshRef_lastUpdatedAt = Lens.lens (\MeshRef' {lastUpdatedAt} -> lastUpdatedAt) (\s@MeshRef' {} a -> s {lastUpdatedAt = a} :: MeshRef) Prelude.. Data._Time++-- | The name of the service mesh.+meshRef_meshName :: Lens.Lens' MeshRef Prelude.Text+meshRef_meshName = Lens.lens (\MeshRef' {meshName} -> meshName) (\s@MeshRef' {} a -> s {meshName = a} :: MeshRef)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+meshRef_meshOwner :: Lens.Lens' MeshRef Prelude.Text+meshRef_meshOwner = Lens.lens (\MeshRef' {meshOwner} -> meshOwner) (\s@MeshRef' {} a -> s {meshOwner = a} :: MeshRef)++-- | The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+meshRef_resourceOwner :: Lens.Lens' MeshRef Prelude.Text+meshRef_resourceOwner = Lens.lens (\MeshRef' {resourceOwner} -> resourceOwner) (\s@MeshRef' {} a -> s {resourceOwner = a} :: MeshRef)++-- | The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+meshRef_version :: Lens.Lens' MeshRef Prelude.Integer+meshRef_version = Lens.lens (\MeshRef' {version} -> version) (\s@MeshRef' {} a -> s {version = a} :: MeshRef)++instance Data.FromJSON MeshRef where+ parseJSON =+ Data.withObject+ "MeshRef"+ ( \x ->+ MeshRef'+ Prelude.<$> (x Data..: "arn")+ Prelude.<*> (x Data..: "createdAt")+ Prelude.<*> (x Data..: "lastUpdatedAt")+ Prelude.<*> (x Data..: "meshName")+ Prelude.<*> (x Data..: "meshOwner")+ Prelude.<*> (x Data..: "resourceOwner")+ Prelude.<*> (x Data..: "version")+ )++instance Prelude.Hashable MeshRef where+ hashWithSalt _salt MeshRef' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` resourceOwner+ `Prelude.hashWithSalt` version++instance Prelude.NFData MeshRef where+ rnf MeshRef' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf resourceOwner+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/AppMesh/Types/MeshServiceDiscovery.hs view
@@ -0,0 +1,81 @@+{-# 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.AppMesh.Types.MeshServiceDiscovery+-- 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.AppMesh.Types.MeshServiceDiscovery where++import Amazonka.AppMesh.Types.IpPreference+import qualified 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 object that represents the service discovery information for a+-- service mesh.+--+-- /See:/ 'newMeshServiceDiscovery' smart constructor.+data MeshServiceDiscovery = MeshServiceDiscovery'+ { -- | The IP version to use to control traffic within the mesh.+ ipPreference :: Prelude.Maybe IpPreference+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MeshServiceDiscovery' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ipPreference', 'meshServiceDiscovery_ipPreference' - The IP version to use to control traffic within the mesh.+newMeshServiceDiscovery ::+ MeshServiceDiscovery+newMeshServiceDiscovery =+ MeshServiceDiscovery'+ { ipPreference =+ Prelude.Nothing+ }++-- | The IP version to use to control traffic within the mesh.+meshServiceDiscovery_ipPreference :: Lens.Lens' MeshServiceDiscovery (Prelude.Maybe IpPreference)+meshServiceDiscovery_ipPreference = Lens.lens (\MeshServiceDiscovery' {ipPreference} -> ipPreference) (\s@MeshServiceDiscovery' {} a -> s {ipPreference = a} :: MeshServiceDiscovery)++instance Data.FromJSON MeshServiceDiscovery where+ parseJSON =+ Data.withObject+ "MeshServiceDiscovery"+ ( \x ->+ MeshServiceDiscovery'+ Prelude.<$> (x Data..:? "ipPreference")+ )++instance Prelude.Hashable MeshServiceDiscovery where+ hashWithSalt _salt MeshServiceDiscovery' {..} =+ _salt `Prelude.hashWithSalt` ipPreference++instance Prelude.NFData MeshServiceDiscovery where+ rnf MeshServiceDiscovery' {..} =+ Prelude.rnf ipPreference++instance Data.ToJSON MeshServiceDiscovery where+ toJSON MeshServiceDiscovery' {..} =+ Data.object+ ( Prelude.catMaybes+ [("ipPreference" Data..=) Prelude.<$> ipPreference]+ )
+ gen/Amazonka/AppMesh/Types/MeshSpec.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.MeshSpec+-- 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.AppMesh.Types.MeshSpec where++import Amazonka.AppMesh.Types.EgressFilter+import Amazonka.AppMesh.Types.MeshServiceDiscovery+import qualified 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 object that represents the specification of a service mesh.+--+-- /See:/ 'newMeshSpec' smart constructor.+data MeshSpec = MeshSpec'+ { -- | The egress filter rules for the service mesh.+ egressFilter :: Prelude.Maybe EgressFilter,+ serviceDiscovery :: Prelude.Maybe MeshServiceDiscovery+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MeshSpec' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'egressFilter', 'meshSpec_egressFilter' - The egress filter rules for the service mesh.+--+-- 'serviceDiscovery', 'meshSpec_serviceDiscovery' - Undocumented member.+newMeshSpec ::+ MeshSpec+newMeshSpec =+ MeshSpec'+ { egressFilter = Prelude.Nothing,+ serviceDiscovery = Prelude.Nothing+ }++-- | The egress filter rules for the service mesh.+meshSpec_egressFilter :: Lens.Lens' MeshSpec (Prelude.Maybe EgressFilter)+meshSpec_egressFilter = Lens.lens (\MeshSpec' {egressFilter} -> egressFilter) (\s@MeshSpec' {} a -> s {egressFilter = a} :: MeshSpec)++-- | Undocumented member.+meshSpec_serviceDiscovery :: Lens.Lens' MeshSpec (Prelude.Maybe MeshServiceDiscovery)+meshSpec_serviceDiscovery = Lens.lens (\MeshSpec' {serviceDiscovery} -> serviceDiscovery) (\s@MeshSpec' {} a -> s {serviceDiscovery = a} :: MeshSpec)++instance Data.FromJSON MeshSpec where+ parseJSON =+ Data.withObject+ "MeshSpec"+ ( \x ->+ MeshSpec'+ Prelude.<$> (x Data..:? "egressFilter")+ Prelude.<*> (x Data..:? "serviceDiscovery")+ )++instance Prelude.Hashable MeshSpec where+ hashWithSalt _salt MeshSpec' {..} =+ _salt+ `Prelude.hashWithSalt` egressFilter+ `Prelude.hashWithSalt` serviceDiscovery++instance Prelude.NFData MeshSpec where+ rnf MeshSpec' {..} =+ Prelude.rnf egressFilter+ `Prelude.seq` Prelude.rnf serviceDiscovery++instance Data.ToJSON MeshSpec where+ toJSON MeshSpec' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("egressFilter" Data..=) Prelude.<$> egressFilter,+ ("serviceDiscovery" Data..=)+ Prelude.<$> serviceDiscovery+ ]+ )
+ gen/Amazonka/AppMesh/Types/MeshStatus.hs view
@@ -0,0 +1,67 @@+{-# 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.AppMesh.Types.MeshStatus+-- 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.AppMesh.Types.MeshStatus where++import Amazonka.AppMesh.Types.MeshStatusCode+import qualified 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 object that represents the status of a service mesh.+--+-- /See:/ 'newMeshStatus' smart constructor.+data MeshStatus = MeshStatus'+ { -- | The current mesh status.+ status :: Prelude.Maybe MeshStatusCode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MeshStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'meshStatus_status' - The current mesh status.+newMeshStatus ::+ MeshStatus+newMeshStatus = MeshStatus' {status = Prelude.Nothing}++-- | The current mesh status.+meshStatus_status :: Lens.Lens' MeshStatus (Prelude.Maybe MeshStatusCode)+meshStatus_status = Lens.lens (\MeshStatus' {status} -> status) (\s@MeshStatus' {} a -> s {status = a} :: MeshStatus)++instance Data.FromJSON MeshStatus where+ parseJSON =+ Data.withObject+ "MeshStatus"+ ( \x ->+ MeshStatus' Prelude.<$> (x Data..:? "status")+ )++instance Prelude.Hashable MeshStatus where+ hashWithSalt _salt MeshStatus' {..} =+ _salt `Prelude.hashWithSalt` status++instance Prelude.NFData MeshStatus where+ rnf MeshStatus' {..} = Prelude.rnf status
+ gen/Amazonka/AppMesh/Types/MeshStatusCode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.MeshStatusCode+-- 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.AppMesh.Types.MeshStatusCode+ ( MeshStatusCode+ ( ..,+ MeshStatusCode_ACTIVE,+ MeshStatusCode_DELETED,+ MeshStatusCode_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MeshStatusCode = MeshStatusCode'+ { fromMeshStatusCode ::+ 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 MeshStatusCode_ACTIVE :: MeshStatusCode+pattern MeshStatusCode_ACTIVE = MeshStatusCode' "ACTIVE"++pattern MeshStatusCode_DELETED :: MeshStatusCode+pattern MeshStatusCode_DELETED = MeshStatusCode' "DELETED"++pattern MeshStatusCode_INACTIVE :: MeshStatusCode+pattern MeshStatusCode_INACTIVE = MeshStatusCode' "INACTIVE"++{-# COMPLETE+ MeshStatusCode_ACTIVE,+ MeshStatusCode_DELETED,+ MeshStatusCode_INACTIVE,+ MeshStatusCode'+ #-}
+ gen/Amazonka/AppMesh/Types/OutlierDetection.hs view
@@ -0,0 +1,145 @@+{-# 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.AppMesh.Types.OutlierDetection+-- 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.AppMesh.Types.OutlierDetection where++import Amazonka.AppMesh.Types.Duration+import qualified 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 object that represents the outlier detection for a virtual node\'s+-- listener.+--+-- /See:/ 'newOutlierDetection' smart constructor.+data OutlierDetection = OutlierDetection'+ { -- | The base amount of time for which a host is ejected.+ baseEjectionDuration :: Duration,+ -- | The time interval between ejection sweep analysis.+ interval :: Duration,+ -- | Maximum percentage of hosts in load balancing pool for upstream service+ -- that can be ejected. Will eject at least one host regardless of the+ -- value.+ maxEjectionPercent :: Prelude.Natural,+ -- | Number of consecutive @5xx@ errors required for ejection.+ maxServerErrors :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutlierDetection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'baseEjectionDuration', 'outlierDetection_baseEjectionDuration' - The base amount of time for which a host is ejected.+--+-- 'interval', 'outlierDetection_interval' - The time interval between ejection sweep analysis.+--+-- 'maxEjectionPercent', 'outlierDetection_maxEjectionPercent' - Maximum percentage of hosts in load balancing pool for upstream service+-- that can be ejected. Will eject at least one host regardless of the+-- value.+--+-- 'maxServerErrors', 'outlierDetection_maxServerErrors' - Number of consecutive @5xx@ errors required for ejection.+newOutlierDetection ::+ -- | 'baseEjectionDuration'+ Duration ->+ -- | 'interval'+ Duration ->+ -- | 'maxEjectionPercent'+ Prelude.Natural ->+ -- | 'maxServerErrors'+ Prelude.Natural ->+ OutlierDetection+newOutlierDetection+ pBaseEjectionDuration_+ pInterval_+ pMaxEjectionPercent_+ pMaxServerErrors_ =+ OutlierDetection'+ { baseEjectionDuration =+ pBaseEjectionDuration_,+ interval = pInterval_,+ maxEjectionPercent = pMaxEjectionPercent_,+ maxServerErrors = pMaxServerErrors_+ }++-- | The base amount of time for which a host is ejected.+outlierDetection_baseEjectionDuration :: Lens.Lens' OutlierDetection Duration+outlierDetection_baseEjectionDuration = Lens.lens (\OutlierDetection' {baseEjectionDuration} -> baseEjectionDuration) (\s@OutlierDetection' {} a -> s {baseEjectionDuration = a} :: OutlierDetection)++-- | The time interval between ejection sweep analysis.+outlierDetection_interval :: Lens.Lens' OutlierDetection Duration+outlierDetection_interval = Lens.lens (\OutlierDetection' {interval} -> interval) (\s@OutlierDetection' {} a -> s {interval = a} :: OutlierDetection)++-- | Maximum percentage of hosts in load balancing pool for upstream service+-- that can be ejected. Will eject at least one host regardless of the+-- value.+outlierDetection_maxEjectionPercent :: Lens.Lens' OutlierDetection Prelude.Natural+outlierDetection_maxEjectionPercent = Lens.lens (\OutlierDetection' {maxEjectionPercent} -> maxEjectionPercent) (\s@OutlierDetection' {} a -> s {maxEjectionPercent = a} :: OutlierDetection)++-- | Number of consecutive @5xx@ errors required for ejection.+outlierDetection_maxServerErrors :: Lens.Lens' OutlierDetection Prelude.Natural+outlierDetection_maxServerErrors = Lens.lens (\OutlierDetection' {maxServerErrors} -> maxServerErrors) (\s@OutlierDetection' {} a -> s {maxServerErrors = a} :: OutlierDetection)++instance Data.FromJSON OutlierDetection where+ parseJSON =+ Data.withObject+ "OutlierDetection"+ ( \x ->+ OutlierDetection'+ Prelude.<$> (x Data..: "baseEjectionDuration")+ Prelude.<*> (x Data..: "interval")+ Prelude.<*> (x Data..: "maxEjectionPercent")+ Prelude.<*> (x Data..: "maxServerErrors")+ )++instance Prelude.Hashable OutlierDetection where+ hashWithSalt _salt OutlierDetection' {..} =+ _salt+ `Prelude.hashWithSalt` baseEjectionDuration+ `Prelude.hashWithSalt` interval+ `Prelude.hashWithSalt` maxEjectionPercent+ `Prelude.hashWithSalt` maxServerErrors++instance Prelude.NFData OutlierDetection where+ rnf OutlierDetection' {..} =+ Prelude.rnf baseEjectionDuration+ `Prelude.seq` Prelude.rnf interval+ `Prelude.seq` Prelude.rnf maxEjectionPercent+ `Prelude.seq` Prelude.rnf maxServerErrors++instance Data.ToJSON OutlierDetection where+ toJSON OutlierDetection' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "baseEjectionDuration"+ Data..= baseEjectionDuration+ ),+ Prelude.Just ("interval" Data..= interval),+ Prelude.Just+ ("maxEjectionPercent" Data..= maxEjectionPercent),+ Prelude.Just+ ("maxServerErrors" Data..= maxServerErrors)+ ]+ )
+ gen/Amazonka/AppMesh/Types/PortMapping.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.PortMapping+-- 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.AppMesh.Types.PortMapping where++import Amazonka.AppMesh.Types.PortProtocol+import qualified 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 object that represents a port mapping.+--+-- /See:/ 'newPortMapping' smart constructor.+data PortMapping = PortMapping'+ { -- | The port used for the port mapping.+ port :: Prelude.Natural,+ -- | The protocol used for the port mapping. Specify one protocol.+ protocol :: PortProtocol+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PortMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'port', 'portMapping_port' - The port used for the port mapping.+--+-- 'protocol', 'portMapping_protocol' - The protocol used for the port mapping. Specify one protocol.+newPortMapping ::+ -- | 'port'+ Prelude.Natural ->+ -- | 'protocol'+ PortProtocol ->+ PortMapping+newPortMapping pPort_ pProtocol_ =+ PortMapping' {port = pPort_, protocol = pProtocol_}++-- | The port used for the port mapping.+portMapping_port :: Lens.Lens' PortMapping Prelude.Natural+portMapping_port = Lens.lens (\PortMapping' {port} -> port) (\s@PortMapping' {} a -> s {port = a} :: PortMapping)++-- | The protocol used for the port mapping. Specify one protocol.+portMapping_protocol :: Lens.Lens' PortMapping PortProtocol+portMapping_protocol = Lens.lens (\PortMapping' {protocol} -> protocol) (\s@PortMapping' {} a -> s {protocol = a} :: PortMapping)++instance Data.FromJSON PortMapping where+ parseJSON =+ Data.withObject+ "PortMapping"+ ( \x ->+ PortMapping'+ Prelude.<$> (x Data..: "port")+ Prelude.<*> (x Data..: "protocol")+ )++instance Prelude.Hashable PortMapping where+ hashWithSalt _salt PortMapping' {..} =+ _salt+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` protocol++instance Prelude.NFData PortMapping where+ rnf PortMapping' {..} =+ Prelude.rnf port `Prelude.seq` Prelude.rnf protocol++instance Data.ToJSON PortMapping where+ toJSON PortMapping' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("port" Data..= port),+ Prelude.Just ("protocol" Data..= protocol)+ ]+ )
+ gen/Amazonka/AppMesh/Types/PortProtocol.hs view
@@ -0,0 +1,81 @@+{-# 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.AppMesh.Types.PortProtocol+-- 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.AppMesh.Types.PortProtocol+ ( PortProtocol+ ( ..,+ PortProtocol_Grpc,+ PortProtocol_Http,+ PortProtocol_Http2,+ PortProtocol_Tcp+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PortProtocol = PortProtocol'+ { fromPortProtocol ::+ 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 PortProtocol_Grpc :: PortProtocol+pattern PortProtocol_Grpc = PortProtocol' "grpc"++pattern PortProtocol_Http :: PortProtocol+pattern PortProtocol_Http = PortProtocol' "http"++pattern PortProtocol_Http2 :: PortProtocol+pattern PortProtocol_Http2 = PortProtocol' "http2"++pattern PortProtocol_Tcp :: PortProtocol+pattern PortProtocol_Tcp = PortProtocol' "tcp"++{-# COMPLETE+ PortProtocol_Grpc,+ PortProtocol_Http,+ PortProtocol_Http2,+ PortProtocol_Tcp,+ PortProtocol'+ #-}
+ gen/Amazonka/AppMesh/Types/QueryParameterMatch.hs view
@@ -0,0 +1,75 @@+{-# 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.AppMesh.Types.QueryParameterMatch+-- 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.AppMesh.Types.QueryParameterMatch 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++-- | An object representing the query parameter to match.+--+-- /See:/ 'newQueryParameterMatch' smart constructor.+data QueryParameterMatch = QueryParameterMatch'+ { -- | The exact query parameter to match on.+ exact :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QueryParameterMatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exact', 'queryParameterMatch_exact' - The exact query parameter to match on.+newQueryParameterMatch ::+ QueryParameterMatch+newQueryParameterMatch =+ QueryParameterMatch' {exact = Prelude.Nothing}++-- | The exact query parameter to match on.+queryParameterMatch_exact :: Lens.Lens' QueryParameterMatch (Prelude.Maybe Prelude.Text)+queryParameterMatch_exact = Lens.lens (\QueryParameterMatch' {exact} -> exact) (\s@QueryParameterMatch' {} a -> s {exact = a} :: QueryParameterMatch)++instance Data.FromJSON QueryParameterMatch where+ parseJSON =+ Data.withObject+ "QueryParameterMatch"+ ( \x ->+ QueryParameterMatch'+ Prelude.<$> (x Data..:? "exact")+ )++instance Prelude.Hashable QueryParameterMatch where+ hashWithSalt _salt QueryParameterMatch' {..} =+ _salt `Prelude.hashWithSalt` exact++instance Prelude.NFData QueryParameterMatch where+ rnf QueryParameterMatch' {..} = Prelude.rnf exact++instance Data.ToJSON QueryParameterMatch where+ toJSON QueryParameterMatch' {..} =+ Data.object+ ( Prelude.catMaybes+ [("exact" Data..=) Prelude.<$> exact]+ )
+ gen/Amazonka/AppMesh/Types/ResourceMetadata.hs view
@@ -0,0 +1,192 @@+{-# 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.AppMesh.Types.ResourceMetadata+-- 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.AppMesh.Types.ResourceMetadata 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++-- | An object that represents metadata for a resource.+--+-- /See:/ 'newResourceMetadata' smart constructor.+data ResourceMetadata = ResourceMetadata'+ { -- | The full Amazon Resource Name (ARN) for the resource.+ arn :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was created.+ createdAt :: Data.POSIX,+ -- | The Unix epoch timestamp in seconds for when the resource was last+ -- updated.+ lastUpdatedAt :: Data.POSIX,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the resource owner. If the+ -- account ID is not your own, then it\'s the ID of the mesh owner or of+ -- another account that the mesh is shared with. For more information about+ -- mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ resourceOwner :: Prelude.Text,+ -- | The unique identifier for the resource.+ uid :: Prelude.Text,+ -- | The version of the resource. Resources are created at version 1, and+ -- this version is incremented each time that they\'re updated.+ version :: Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'resourceMetadata_arn' - The full Amazon Resource Name (ARN) for the resource.+--+-- 'createdAt', 'resourceMetadata_createdAt' - The Unix epoch timestamp in seconds for when the resource was created.+--+-- 'lastUpdatedAt', 'resourceMetadata_lastUpdatedAt' - The Unix epoch timestamp in seconds for when the resource was last+-- updated.+--+-- 'meshOwner', 'resourceMetadata_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'resourceOwner', 'resourceMetadata_resourceOwner' - The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'uid', 'resourceMetadata_uid' - The unique identifier for the resource.+--+-- 'version', 'resourceMetadata_version' - The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+newResourceMetadata ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ -- | 'meshOwner'+ Prelude.Text ->+ -- | 'resourceOwner'+ Prelude.Text ->+ -- | 'uid'+ Prelude.Text ->+ -- | 'version'+ Prelude.Integer ->+ ResourceMetadata+newResourceMetadata+ pArn_+ pCreatedAt_+ pLastUpdatedAt_+ pMeshOwner_+ pResourceOwner_+ pUid_+ pVersion_ =+ ResourceMetadata'+ { arn = pArn_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_,+ meshOwner = pMeshOwner_,+ resourceOwner = pResourceOwner_,+ uid = pUid_,+ version = pVersion_+ }++-- | The full Amazon Resource Name (ARN) for the resource.+resourceMetadata_arn :: Lens.Lens' ResourceMetadata Prelude.Text+resourceMetadata_arn = Lens.lens (\ResourceMetadata' {arn} -> arn) (\s@ResourceMetadata' {} a -> s {arn = a} :: ResourceMetadata)++-- | The Unix epoch timestamp in seconds for when the resource was created.+resourceMetadata_createdAt :: Lens.Lens' ResourceMetadata Prelude.UTCTime+resourceMetadata_createdAt = Lens.lens (\ResourceMetadata' {createdAt} -> createdAt) (\s@ResourceMetadata' {} a -> s {createdAt = a} :: ResourceMetadata) Prelude.. Data._Time++-- | The Unix epoch timestamp in seconds for when the resource was last+-- updated.+resourceMetadata_lastUpdatedAt :: Lens.Lens' ResourceMetadata Prelude.UTCTime+resourceMetadata_lastUpdatedAt = Lens.lens (\ResourceMetadata' {lastUpdatedAt} -> lastUpdatedAt) (\s@ResourceMetadata' {} a -> s {lastUpdatedAt = a} :: ResourceMetadata) Prelude.. Data._Time++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+resourceMetadata_meshOwner :: Lens.Lens' ResourceMetadata Prelude.Text+resourceMetadata_meshOwner = Lens.lens (\ResourceMetadata' {meshOwner} -> meshOwner) (\s@ResourceMetadata' {} a -> s {meshOwner = a} :: ResourceMetadata)++-- | The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+resourceMetadata_resourceOwner :: Lens.Lens' ResourceMetadata Prelude.Text+resourceMetadata_resourceOwner = Lens.lens (\ResourceMetadata' {resourceOwner} -> resourceOwner) (\s@ResourceMetadata' {} a -> s {resourceOwner = a} :: ResourceMetadata)++-- | The unique identifier for the resource.+resourceMetadata_uid :: Lens.Lens' ResourceMetadata Prelude.Text+resourceMetadata_uid = Lens.lens (\ResourceMetadata' {uid} -> uid) (\s@ResourceMetadata' {} a -> s {uid = a} :: ResourceMetadata)++-- | The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+resourceMetadata_version :: Lens.Lens' ResourceMetadata Prelude.Integer+resourceMetadata_version = Lens.lens (\ResourceMetadata' {version} -> version) (\s@ResourceMetadata' {} a -> s {version = a} :: ResourceMetadata)++instance Data.FromJSON ResourceMetadata where+ parseJSON =+ Data.withObject+ "ResourceMetadata"+ ( \x ->+ ResourceMetadata'+ Prelude.<$> (x Data..: "arn")+ Prelude.<*> (x Data..: "createdAt")+ Prelude.<*> (x Data..: "lastUpdatedAt")+ Prelude.<*> (x Data..: "meshOwner")+ Prelude.<*> (x Data..: "resourceOwner")+ Prelude.<*> (x Data..: "uid")+ Prelude.<*> (x Data..: "version")+ )++instance Prelude.Hashable ResourceMetadata where+ hashWithSalt _salt ResourceMetadata' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` resourceOwner+ `Prelude.hashWithSalt` uid+ `Prelude.hashWithSalt` version++instance Prelude.NFData ResourceMetadata where+ rnf ResourceMetadata' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf resourceOwner+ `Prelude.seq` Prelude.rnf uid+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/AppMesh/Types/RouteData.hs view
@@ -0,0 +1,153 @@+{-# 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.AppMesh.Types.RouteData+-- 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.AppMesh.Types.RouteData where++import Amazonka.AppMesh.Types.ResourceMetadata+import Amazonka.AppMesh.Types.RouteSpec+import Amazonka.AppMesh.Types.RouteStatus+import qualified 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 object that represents a route returned by a describe operation.+--+-- /See:/ 'newRouteData' smart constructor.+data RouteData = RouteData'+ { -- | The name of the service mesh that the route resides in.+ meshName :: Prelude.Text,+ -- | The associated metadata for the route.+ metadata :: ResourceMetadata,+ -- | The name of the route.+ routeName :: Prelude.Text,+ -- | The specifications of the route.+ spec :: RouteSpec,+ -- | The status of the route.+ status :: RouteStatus,+ -- | The virtual router that the route is associated with.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RouteData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshName', 'routeData_meshName' - The name of the service mesh that the route resides in.+--+-- 'metadata', 'routeData_metadata' - The associated metadata for the route.+--+-- 'routeName', 'routeData_routeName' - The name of the route.+--+-- 'spec', 'routeData_spec' - The specifications of the route.+--+-- 'status', 'routeData_status' - The status of the route.+--+-- 'virtualRouterName', 'routeData_virtualRouterName' - The virtual router that the route is associated with.+newRouteData ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'metadata'+ ResourceMetadata ->+ -- | 'routeName'+ Prelude.Text ->+ -- | 'spec'+ RouteSpec ->+ -- | 'status'+ RouteStatus ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ RouteData+newRouteData+ pMeshName_+ pMetadata_+ pRouteName_+ pSpec_+ pStatus_+ pVirtualRouterName_ =+ RouteData'+ { meshName = pMeshName_,+ metadata = pMetadata_,+ routeName = pRouteName_,+ spec = pSpec_,+ status = pStatus_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The name of the service mesh that the route resides in.+routeData_meshName :: Lens.Lens' RouteData Prelude.Text+routeData_meshName = Lens.lens (\RouteData' {meshName} -> meshName) (\s@RouteData' {} a -> s {meshName = a} :: RouteData)++-- | The associated metadata for the route.+routeData_metadata :: Lens.Lens' RouteData ResourceMetadata+routeData_metadata = Lens.lens (\RouteData' {metadata} -> metadata) (\s@RouteData' {} a -> s {metadata = a} :: RouteData)++-- | The name of the route.+routeData_routeName :: Lens.Lens' RouteData Prelude.Text+routeData_routeName = Lens.lens (\RouteData' {routeName} -> routeName) (\s@RouteData' {} a -> s {routeName = a} :: RouteData)++-- | The specifications of the route.+routeData_spec :: Lens.Lens' RouteData RouteSpec+routeData_spec = Lens.lens (\RouteData' {spec} -> spec) (\s@RouteData' {} a -> s {spec = a} :: RouteData)++-- | The status of the route.+routeData_status :: Lens.Lens' RouteData RouteStatus+routeData_status = Lens.lens (\RouteData' {status} -> status) (\s@RouteData' {} a -> s {status = a} :: RouteData)++-- | The virtual router that the route is associated with.+routeData_virtualRouterName :: Lens.Lens' RouteData Prelude.Text+routeData_virtualRouterName = Lens.lens (\RouteData' {virtualRouterName} -> virtualRouterName) (\s@RouteData' {} a -> s {virtualRouterName = a} :: RouteData)++instance Data.FromJSON RouteData where+ parseJSON =+ Data.withObject+ "RouteData"+ ( \x ->+ RouteData'+ Prelude.<$> (x Data..: "meshName")+ Prelude.<*> (x Data..: "metadata")+ Prelude.<*> (x Data..: "routeName")+ Prelude.<*> (x Data..: "spec")+ Prelude.<*> (x Data..: "status")+ Prelude.<*> (x Data..: "virtualRouterName")+ )++instance Prelude.Hashable RouteData where+ hashWithSalt _salt RouteData' {..} =+ _salt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` routeName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData RouteData where+ rnf RouteData' {..} =+ Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf routeName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf virtualRouterName
+ gen/Amazonka/AppMesh/Types/RouteRef.hs view
@@ -0,0 +1,222 @@+{-# 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.AppMesh.Types.RouteRef+-- 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.AppMesh.Types.RouteRef 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++-- | An object that represents a route returned by a list operation.+--+-- /See:/ 'newRouteRef' smart constructor.+data RouteRef = RouteRef'+ { -- | The full Amazon Resource Name (ARN) for the route.+ arn :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was created.+ createdAt :: Data.POSIX,+ -- | The Unix epoch timestamp in seconds for when the resource was last+ -- updated.+ lastUpdatedAt :: Data.POSIX,+ -- | The name of the service mesh that the route resides in.+ meshName :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the resource owner. If the+ -- account ID is not your own, then it\'s the ID of the mesh owner or of+ -- another account that the mesh is shared with. For more information about+ -- mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ resourceOwner :: Prelude.Text,+ -- | The name of the route.+ routeName :: Prelude.Text,+ -- | The version of the resource. Resources are created at version 1, and+ -- this version is incremented each time that they\'re updated.+ version :: Prelude.Integer,+ -- | The virtual router that the route is associated with.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RouteRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'routeRef_arn' - The full Amazon Resource Name (ARN) for the route.+--+-- 'createdAt', 'routeRef_createdAt' - The Unix epoch timestamp in seconds for when the resource was created.+--+-- 'lastUpdatedAt', 'routeRef_lastUpdatedAt' - The Unix epoch timestamp in seconds for when the resource was last+-- updated.+--+-- 'meshName', 'routeRef_meshName' - The name of the service mesh that the route resides in.+--+-- 'meshOwner', 'routeRef_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'resourceOwner', 'routeRef_resourceOwner' - The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'routeName', 'routeRef_routeName' - The name of the route.+--+-- 'version', 'routeRef_version' - The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+--+-- 'virtualRouterName', 'routeRef_virtualRouterName' - The virtual router that the route is associated with.+newRouteRef ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'meshOwner'+ Prelude.Text ->+ -- | 'resourceOwner'+ Prelude.Text ->+ -- | 'routeName'+ Prelude.Text ->+ -- | 'version'+ Prelude.Integer ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ RouteRef+newRouteRef+ pArn_+ pCreatedAt_+ pLastUpdatedAt_+ pMeshName_+ pMeshOwner_+ pResourceOwner_+ pRouteName_+ pVersion_+ pVirtualRouterName_ =+ RouteRef'+ { arn = pArn_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_,+ meshName = pMeshName_,+ meshOwner = pMeshOwner_,+ resourceOwner = pResourceOwner_,+ routeName = pRouteName_,+ version = pVersion_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The full Amazon Resource Name (ARN) for the route.+routeRef_arn :: Lens.Lens' RouteRef Prelude.Text+routeRef_arn = Lens.lens (\RouteRef' {arn} -> arn) (\s@RouteRef' {} a -> s {arn = a} :: RouteRef)++-- | The Unix epoch timestamp in seconds for when the resource was created.+routeRef_createdAt :: Lens.Lens' RouteRef Prelude.UTCTime+routeRef_createdAt = Lens.lens (\RouteRef' {createdAt} -> createdAt) (\s@RouteRef' {} a -> s {createdAt = a} :: RouteRef) Prelude.. Data._Time++-- | The Unix epoch timestamp in seconds for when the resource was last+-- updated.+routeRef_lastUpdatedAt :: Lens.Lens' RouteRef Prelude.UTCTime+routeRef_lastUpdatedAt = Lens.lens (\RouteRef' {lastUpdatedAt} -> lastUpdatedAt) (\s@RouteRef' {} a -> s {lastUpdatedAt = a} :: RouteRef) Prelude.. Data._Time++-- | The name of the service mesh that the route resides in.+routeRef_meshName :: Lens.Lens' RouteRef Prelude.Text+routeRef_meshName = Lens.lens (\RouteRef' {meshName} -> meshName) (\s@RouteRef' {} a -> s {meshName = a} :: RouteRef)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+routeRef_meshOwner :: Lens.Lens' RouteRef Prelude.Text+routeRef_meshOwner = Lens.lens (\RouteRef' {meshOwner} -> meshOwner) (\s@RouteRef' {} a -> s {meshOwner = a} :: RouteRef)++-- | The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+routeRef_resourceOwner :: Lens.Lens' RouteRef Prelude.Text+routeRef_resourceOwner = Lens.lens (\RouteRef' {resourceOwner} -> resourceOwner) (\s@RouteRef' {} a -> s {resourceOwner = a} :: RouteRef)++-- | The name of the route.+routeRef_routeName :: Lens.Lens' RouteRef Prelude.Text+routeRef_routeName = Lens.lens (\RouteRef' {routeName} -> routeName) (\s@RouteRef' {} a -> s {routeName = a} :: RouteRef)++-- | The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+routeRef_version :: Lens.Lens' RouteRef Prelude.Integer+routeRef_version = Lens.lens (\RouteRef' {version} -> version) (\s@RouteRef' {} a -> s {version = a} :: RouteRef)++-- | The virtual router that the route is associated with.+routeRef_virtualRouterName :: Lens.Lens' RouteRef Prelude.Text+routeRef_virtualRouterName = Lens.lens (\RouteRef' {virtualRouterName} -> virtualRouterName) (\s@RouteRef' {} a -> s {virtualRouterName = a} :: RouteRef)++instance Data.FromJSON RouteRef where+ parseJSON =+ Data.withObject+ "RouteRef"+ ( \x ->+ RouteRef'+ Prelude.<$> (x Data..: "arn")+ Prelude.<*> (x Data..: "createdAt")+ Prelude.<*> (x Data..: "lastUpdatedAt")+ Prelude.<*> (x Data..: "meshName")+ Prelude.<*> (x Data..: "meshOwner")+ Prelude.<*> (x Data..: "resourceOwner")+ Prelude.<*> (x Data..: "routeName")+ Prelude.<*> (x Data..: "version")+ Prelude.<*> (x Data..: "virtualRouterName")+ )++instance Prelude.Hashable RouteRef where+ hashWithSalt _salt RouteRef' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` resourceOwner+ `Prelude.hashWithSalt` routeName+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData RouteRef where+ rnf RouteRef' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf resourceOwner+ `Prelude.seq` Prelude.rnf routeName+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf virtualRouterName
+ gen/Amazonka/AppMesh/Types/RouteSpec.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.RouteSpec+-- 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.AppMesh.Types.RouteSpec where++import Amazonka.AppMesh.Types.GrpcRoute+import Amazonka.AppMesh.Types.HttpRoute+import Amazonka.AppMesh.Types.TcpRoute+import qualified 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 object that represents a route specification. Specify one route type.+--+-- /See:/ 'newRouteSpec' smart constructor.+data RouteSpec = RouteSpec'+ { -- | An object that represents the specification of a gRPC route.+ grpcRoute :: Prelude.Maybe GrpcRoute,+ -- | An object that represents the specification of an HTTP\/2 route.+ http2Route :: Prelude.Maybe HttpRoute,+ -- | An object that represents the specification of an HTTP route.+ httpRoute :: Prelude.Maybe HttpRoute,+ -- | The priority for the route. Routes are matched based on the specified+ -- value, where 0 is the highest priority.+ priority :: Prelude.Maybe Prelude.Natural,+ -- | An object that represents the specification of a TCP route.+ tcpRoute :: Prelude.Maybe TcpRoute+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RouteSpec' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'grpcRoute', 'routeSpec_grpcRoute' - An object that represents the specification of a gRPC route.+--+-- 'http2Route', 'routeSpec_http2Route' - An object that represents the specification of an HTTP\/2 route.+--+-- 'httpRoute', 'routeSpec_httpRoute' - An object that represents the specification of an HTTP route.+--+-- 'priority', 'routeSpec_priority' - The priority for the route. Routes are matched based on the specified+-- value, where 0 is the highest priority.+--+-- 'tcpRoute', 'routeSpec_tcpRoute' - An object that represents the specification of a TCP route.+newRouteSpec ::+ RouteSpec+newRouteSpec =+ RouteSpec'+ { grpcRoute = Prelude.Nothing,+ http2Route = Prelude.Nothing,+ httpRoute = Prelude.Nothing,+ priority = Prelude.Nothing,+ tcpRoute = Prelude.Nothing+ }++-- | An object that represents the specification of a gRPC route.+routeSpec_grpcRoute :: Lens.Lens' RouteSpec (Prelude.Maybe GrpcRoute)+routeSpec_grpcRoute = Lens.lens (\RouteSpec' {grpcRoute} -> grpcRoute) (\s@RouteSpec' {} a -> s {grpcRoute = a} :: RouteSpec)++-- | An object that represents the specification of an HTTP\/2 route.+routeSpec_http2Route :: Lens.Lens' RouteSpec (Prelude.Maybe HttpRoute)+routeSpec_http2Route = Lens.lens (\RouteSpec' {http2Route} -> http2Route) (\s@RouteSpec' {} a -> s {http2Route = a} :: RouteSpec)++-- | An object that represents the specification of an HTTP route.+routeSpec_httpRoute :: Lens.Lens' RouteSpec (Prelude.Maybe HttpRoute)+routeSpec_httpRoute = Lens.lens (\RouteSpec' {httpRoute} -> httpRoute) (\s@RouteSpec' {} a -> s {httpRoute = a} :: RouteSpec)++-- | The priority for the route. Routes are matched based on the specified+-- value, where 0 is the highest priority.+routeSpec_priority :: Lens.Lens' RouteSpec (Prelude.Maybe Prelude.Natural)+routeSpec_priority = Lens.lens (\RouteSpec' {priority} -> priority) (\s@RouteSpec' {} a -> s {priority = a} :: RouteSpec)++-- | An object that represents the specification of a TCP route.+routeSpec_tcpRoute :: Lens.Lens' RouteSpec (Prelude.Maybe TcpRoute)+routeSpec_tcpRoute = Lens.lens (\RouteSpec' {tcpRoute} -> tcpRoute) (\s@RouteSpec' {} a -> s {tcpRoute = a} :: RouteSpec)++instance Data.FromJSON RouteSpec where+ parseJSON =+ Data.withObject+ "RouteSpec"+ ( \x ->+ RouteSpec'+ Prelude.<$> (x Data..:? "grpcRoute")+ Prelude.<*> (x Data..:? "http2Route")+ Prelude.<*> (x Data..:? "httpRoute")+ Prelude.<*> (x Data..:? "priority")+ Prelude.<*> (x Data..:? "tcpRoute")+ )++instance Prelude.Hashable RouteSpec where+ hashWithSalt _salt RouteSpec' {..} =+ _salt+ `Prelude.hashWithSalt` grpcRoute+ `Prelude.hashWithSalt` http2Route+ `Prelude.hashWithSalt` httpRoute+ `Prelude.hashWithSalt` priority+ `Prelude.hashWithSalt` tcpRoute++instance Prelude.NFData RouteSpec where+ rnf RouteSpec' {..} =+ Prelude.rnf grpcRoute+ `Prelude.seq` Prelude.rnf http2Route+ `Prelude.seq` Prelude.rnf httpRoute+ `Prelude.seq` Prelude.rnf priority+ `Prelude.seq` Prelude.rnf tcpRoute++instance Data.ToJSON RouteSpec where+ toJSON RouteSpec' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("grpcRoute" Data..=) Prelude.<$> grpcRoute,+ ("http2Route" Data..=) Prelude.<$> http2Route,+ ("httpRoute" Data..=) Prelude.<$> httpRoute,+ ("priority" Data..=) Prelude.<$> priority,+ ("tcpRoute" Data..=) Prelude.<$> tcpRoute+ ]+ )
+ gen/Amazonka/AppMesh/Types/RouteStatus.hs view
@@ -0,0 +1,70 @@+{-# 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.AppMesh.Types.RouteStatus+-- 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.AppMesh.Types.RouteStatus where++import Amazonka.AppMesh.Types.RouteStatusCode+import qualified 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 object that represents the current status of a route.+--+-- /See:/ 'newRouteStatus' smart constructor.+data RouteStatus = RouteStatus'+ { -- | The current status for the route.+ status :: RouteStatusCode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RouteStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'routeStatus_status' - The current status for the route.+newRouteStatus ::+ -- | 'status'+ RouteStatusCode ->+ RouteStatus+newRouteStatus pStatus_ =+ RouteStatus' {status = pStatus_}++-- | The current status for the route.+routeStatus_status :: Lens.Lens' RouteStatus RouteStatusCode+routeStatus_status = Lens.lens (\RouteStatus' {status} -> status) (\s@RouteStatus' {} a -> s {status = a} :: RouteStatus)++instance Data.FromJSON RouteStatus where+ parseJSON =+ Data.withObject+ "RouteStatus"+ ( \x ->+ RouteStatus' Prelude.<$> (x Data..: "status")+ )++instance Prelude.Hashable RouteStatus where+ hashWithSalt _salt RouteStatus' {..} =+ _salt `Prelude.hashWithSalt` status++instance Prelude.NFData RouteStatus where+ rnf RouteStatus' {..} = Prelude.rnf status
+ gen/Amazonka/AppMesh/Types/RouteStatusCode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.RouteStatusCode+-- 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.AppMesh.Types.RouteStatusCode+ ( RouteStatusCode+ ( ..,+ RouteStatusCode_ACTIVE,+ RouteStatusCode_DELETED,+ RouteStatusCode_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RouteStatusCode = RouteStatusCode'+ { fromRouteStatusCode ::+ 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 RouteStatusCode_ACTIVE :: RouteStatusCode+pattern RouteStatusCode_ACTIVE = RouteStatusCode' "ACTIVE"++pattern RouteStatusCode_DELETED :: RouteStatusCode+pattern RouteStatusCode_DELETED = RouteStatusCode' "DELETED"++pattern RouteStatusCode_INACTIVE :: RouteStatusCode+pattern RouteStatusCode_INACTIVE = RouteStatusCode' "INACTIVE"++{-# COMPLETE+ RouteStatusCode_ACTIVE,+ RouteStatusCode_DELETED,+ RouteStatusCode_INACTIVE,+ RouteStatusCode'+ #-}
+ gen/Amazonka/AppMesh/Types/ServiceDiscovery.hs view
@@ -0,0 +1,96 @@+{-# 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.AppMesh.Types.ServiceDiscovery+-- 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.AppMesh.Types.ServiceDiscovery where++import Amazonka.AppMesh.Types.AwsCloudMapServiceDiscovery+import Amazonka.AppMesh.Types.DnsServiceDiscovery+import qualified 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 object that represents the service discovery information for a+-- virtual node.+--+-- /See:/ 'newServiceDiscovery' smart constructor.+data ServiceDiscovery = ServiceDiscovery'+ { -- | Specifies any Cloud Map information for the virtual node.+ awsCloudMap :: Prelude.Maybe AwsCloudMapServiceDiscovery,+ -- | Specifies the DNS information for the virtual node.+ dns :: Prelude.Maybe DnsServiceDiscovery+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceDiscovery' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'awsCloudMap', 'serviceDiscovery_awsCloudMap' - Specifies any Cloud Map information for the virtual node.+--+-- 'dns', 'serviceDiscovery_dns' - Specifies the DNS information for the virtual node.+newServiceDiscovery ::+ ServiceDiscovery+newServiceDiscovery =+ ServiceDiscovery'+ { awsCloudMap = Prelude.Nothing,+ dns = Prelude.Nothing+ }++-- | Specifies any Cloud Map information for the virtual node.+serviceDiscovery_awsCloudMap :: Lens.Lens' ServiceDiscovery (Prelude.Maybe AwsCloudMapServiceDiscovery)+serviceDiscovery_awsCloudMap = Lens.lens (\ServiceDiscovery' {awsCloudMap} -> awsCloudMap) (\s@ServiceDiscovery' {} a -> s {awsCloudMap = a} :: ServiceDiscovery)++-- | Specifies the DNS information for the virtual node.+serviceDiscovery_dns :: Lens.Lens' ServiceDiscovery (Prelude.Maybe DnsServiceDiscovery)+serviceDiscovery_dns = Lens.lens (\ServiceDiscovery' {dns} -> dns) (\s@ServiceDiscovery' {} a -> s {dns = a} :: ServiceDiscovery)++instance Data.FromJSON ServiceDiscovery where+ parseJSON =+ Data.withObject+ "ServiceDiscovery"+ ( \x ->+ ServiceDiscovery'+ Prelude.<$> (x Data..:? "awsCloudMap")+ Prelude.<*> (x Data..:? "dns")+ )++instance Prelude.Hashable ServiceDiscovery where+ hashWithSalt _salt ServiceDiscovery' {..} =+ _salt+ `Prelude.hashWithSalt` awsCloudMap+ `Prelude.hashWithSalt` dns++instance Prelude.NFData ServiceDiscovery where+ rnf ServiceDiscovery' {..} =+ Prelude.rnf awsCloudMap+ `Prelude.seq` Prelude.rnf dns++instance Data.ToJSON ServiceDiscovery where+ toJSON ServiceDiscovery' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("awsCloudMap" Data..=) Prelude.<$> awsCloudMap,+ ("dns" Data..=) Prelude.<$> dns+ ]+ )
+ gen/Amazonka/AppMesh/Types/SubjectAlternativeNameMatchers.hs view
@@ -0,0 +1,89 @@+{-# 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.AppMesh.Types.SubjectAlternativeNameMatchers+-- 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.AppMesh.Types.SubjectAlternativeNameMatchers 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++-- | An object that represents the methods by which a subject alternative+-- name on a peer Transport Layer Security (TLS) certificate can be+-- matched.+--+-- /See:/ 'newSubjectAlternativeNameMatchers' smart constructor.+data SubjectAlternativeNameMatchers = SubjectAlternativeNameMatchers'+ { -- | The values sent must match the specified values exactly.+ exact :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubjectAlternativeNameMatchers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exact', 'subjectAlternativeNameMatchers_exact' - The values sent must match the specified values exactly.+newSubjectAlternativeNameMatchers ::+ SubjectAlternativeNameMatchers+newSubjectAlternativeNameMatchers =+ SubjectAlternativeNameMatchers'+ { exact =+ Prelude.mempty+ }++-- | The values sent must match the specified values exactly.+subjectAlternativeNameMatchers_exact :: Lens.Lens' SubjectAlternativeNameMatchers [Prelude.Text]+subjectAlternativeNameMatchers_exact = Lens.lens (\SubjectAlternativeNameMatchers' {exact} -> exact) (\s@SubjectAlternativeNameMatchers' {} a -> s {exact = a} :: SubjectAlternativeNameMatchers) Prelude.. Lens.coerced++instance Data.FromJSON SubjectAlternativeNameMatchers where+ parseJSON =+ Data.withObject+ "SubjectAlternativeNameMatchers"+ ( \x ->+ SubjectAlternativeNameMatchers'+ Prelude.<$> (x Data..:? "exact" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ SubjectAlternativeNameMatchers+ where+ hashWithSalt+ _salt+ SubjectAlternativeNameMatchers' {..} =+ _salt `Prelude.hashWithSalt` exact++instance+ Prelude.NFData+ SubjectAlternativeNameMatchers+ where+ rnf SubjectAlternativeNameMatchers' {..} =+ Prelude.rnf exact++instance Data.ToJSON SubjectAlternativeNameMatchers where+ toJSON SubjectAlternativeNameMatchers' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("exact" Data..= exact)]+ )
+ gen/Amazonka/AppMesh/Types/SubjectAlternativeNames.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.AppMesh.Types.SubjectAlternativeNames+-- 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.AppMesh.Types.SubjectAlternativeNames where++import Amazonka.AppMesh.Types.SubjectAlternativeNameMatchers+import qualified 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 object that represents the subject alternative names secured by the+-- certificate.+--+-- /See:/ 'newSubjectAlternativeNames' smart constructor.+data SubjectAlternativeNames = SubjectAlternativeNames'+ { -- | An object that represents the criteria for determining a SANs match.+ match :: SubjectAlternativeNameMatchers+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubjectAlternativeNames' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'match', 'subjectAlternativeNames_match' - An object that represents the criteria for determining a SANs match.+newSubjectAlternativeNames ::+ -- | 'match'+ SubjectAlternativeNameMatchers ->+ SubjectAlternativeNames+newSubjectAlternativeNames pMatch_ =+ SubjectAlternativeNames' {match = pMatch_}++-- | An object that represents the criteria for determining a SANs match.+subjectAlternativeNames_match :: Lens.Lens' SubjectAlternativeNames SubjectAlternativeNameMatchers+subjectAlternativeNames_match = Lens.lens (\SubjectAlternativeNames' {match} -> match) (\s@SubjectAlternativeNames' {} a -> s {match = a} :: SubjectAlternativeNames)++instance Data.FromJSON SubjectAlternativeNames where+ parseJSON =+ Data.withObject+ "SubjectAlternativeNames"+ ( \x ->+ SubjectAlternativeNames'+ Prelude.<$> (x Data..: "match")+ )++instance Prelude.Hashable SubjectAlternativeNames where+ hashWithSalt _salt SubjectAlternativeNames' {..} =+ _salt `Prelude.hashWithSalt` match++instance Prelude.NFData SubjectAlternativeNames where+ rnf SubjectAlternativeNames' {..} = Prelude.rnf match++instance Data.ToJSON SubjectAlternativeNames where+ toJSON SubjectAlternativeNames' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("match" Data..= match)]+ )
+ gen/Amazonka/AppMesh/Types/TagRef.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.TagRef+-- 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.AppMesh.Types.TagRef 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++-- | Optional metadata that you apply to a resource to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value, both of which you define. Tag keys can have a maximum+-- character length of 128 characters, and tag values can have a maximum+-- length of 256 characters.+--+-- /See:/ 'newTagRef' smart constructor.+data TagRef = TagRef'+ { -- | One part of a key-value pair that make up a tag. A @key@ is a general+ -- label that acts like a category for more specific tag values.+ key :: Prelude.Text,+ -- | The optional part of a key-value pair that make up a tag. A @value@ acts+ -- as a descriptor within a tag category (key).+ value :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tagRef_key' - One part of a key-value pair that make up a tag. A @key@ is a general+-- label that acts like a category for more specific tag values.+--+-- 'value', 'tagRef_value' - The optional part of a key-value pair that make up a tag. A @value@ acts+-- as a descriptor within a tag category (key).+newTagRef ::+ -- | 'key'+ Prelude.Text ->+ -- | 'value'+ Prelude.Text ->+ TagRef+newTagRef pKey_ pValue_ =+ TagRef' {key = pKey_, value = pValue_}++-- | One part of a key-value pair that make up a tag. A @key@ is a general+-- label that acts like a category for more specific tag values.+tagRef_key :: Lens.Lens' TagRef Prelude.Text+tagRef_key = Lens.lens (\TagRef' {key} -> key) (\s@TagRef' {} a -> s {key = a} :: TagRef)++-- | The optional part of a key-value pair that make up a tag. A @value@ acts+-- as a descriptor within a tag category (key).+tagRef_value :: Lens.Lens' TagRef Prelude.Text+tagRef_value = Lens.lens (\TagRef' {value} -> value) (\s@TagRef' {} a -> s {value = a} :: TagRef)++instance Data.FromJSON TagRef where+ parseJSON =+ Data.withObject+ "TagRef"+ ( \x ->+ TagRef'+ Prelude.<$> (x Data..: "key")+ Prelude.<*> (x Data..: "value")+ )++instance Prelude.Hashable TagRef where+ hashWithSalt _salt TagRef' {..} =+ _salt+ `Prelude.hashWithSalt` key+ `Prelude.hashWithSalt` value++instance Prelude.NFData TagRef where+ rnf TagRef' {..} =+ Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON TagRef where+ toJSON TagRef' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("key" Data..= key),+ Prelude.Just ("value" Data..= value)+ ]+ )
+ gen/Amazonka/AppMesh/Types/TcpRetryPolicyEvent.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.TcpRetryPolicyEvent+-- 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.AppMesh.Types.TcpRetryPolicyEvent+ ( TcpRetryPolicyEvent+ ( ..,+ TcpRetryPolicyEvent_Connection_error+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TcpRetryPolicyEvent = TcpRetryPolicyEvent'+ { fromTcpRetryPolicyEvent ::+ 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 TcpRetryPolicyEvent_Connection_error :: TcpRetryPolicyEvent+pattern TcpRetryPolicyEvent_Connection_error = TcpRetryPolicyEvent' "connection-error"++{-# COMPLETE+ TcpRetryPolicyEvent_Connection_error,+ TcpRetryPolicyEvent'+ #-}
+ gen/Amazonka/AppMesh/Types/TcpRoute.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.TcpRoute+-- 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.AppMesh.Types.TcpRoute where++import Amazonka.AppMesh.Types.TcpRouteAction+import Amazonka.AppMesh.Types.TcpRouteMatch+import Amazonka.AppMesh.Types.TcpTimeout+import qualified 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 object that represents a TCP route type.+--+-- /See:/ 'newTcpRoute' smart constructor.+data TcpRoute = TcpRoute'+ { -- | An object that represents the criteria for determining a request match.+ match :: Prelude.Maybe TcpRouteMatch,+ -- | An object that represents types of timeouts.+ timeout :: Prelude.Maybe TcpTimeout,+ -- | The action to take if a match is determined.+ action :: TcpRouteAction+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TcpRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'match', 'tcpRoute_match' - An object that represents the criteria for determining a request match.+--+-- 'timeout', 'tcpRoute_timeout' - An object that represents types of timeouts.+--+-- 'action', 'tcpRoute_action' - The action to take if a match is determined.+newTcpRoute ::+ -- | 'action'+ TcpRouteAction ->+ TcpRoute+newTcpRoute pAction_ =+ TcpRoute'+ { match = Prelude.Nothing,+ timeout = Prelude.Nothing,+ action = pAction_+ }++-- | An object that represents the criteria for determining a request match.+tcpRoute_match :: Lens.Lens' TcpRoute (Prelude.Maybe TcpRouteMatch)+tcpRoute_match = Lens.lens (\TcpRoute' {match} -> match) (\s@TcpRoute' {} a -> s {match = a} :: TcpRoute)++-- | An object that represents types of timeouts.+tcpRoute_timeout :: Lens.Lens' TcpRoute (Prelude.Maybe TcpTimeout)+tcpRoute_timeout = Lens.lens (\TcpRoute' {timeout} -> timeout) (\s@TcpRoute' {} a -> s {timeout = a} :: TcpRoute)++-- | The action to take if a match is determined.+tcpRoute_action :: Lens.Lens' TcpRoute TcpRouteAction+tcpRoute_action = Lens.lens (\TcpRoute' {action} -> action) (\s@TcpRoute' {} a -> s {action = a} :: TcpRoute)++instance Data.FromJSON TcpRoute where+ parseJSON =+ Data.withObject+ "TcpRoute"+ ( \x ->+ TcpRoute'+ Prelude.<$> (x Data..:? "match")+ Prelude.<*> (x Data..:? "timeout")+ Prelude.<*> (x Data..: "action")+ )++instance Prelude.Hashable TcpRoute where+ hashWithSalt _salt TcpRoute' {..} =+ _salt+ `Prelude.hashWithSalt` match+ `Prelude.hashWithSalt` timeout+ `Prelude.hashWithSalt` action++instance Prelude.NFData TcpRoute where+ rnf TcpRoute' {..} =+ Prelude.rnf match+ `Prelude.seq` Prelude.rnf timeout+ `Prelude.seq` Prelude.rnf action++instance Data.ToJSON TcpRoute where+ toJSON TcpRoute' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("match" Data..=) Prelude.<$> match,+ ("timeout" Data..=) Prelude.<$> timeout,+ Prelude.Just ("action" Data..= action)+ ]+ )
+ gen/Amazonka/AppMesh/Types/TcpRouteAction.hs view
@@ -0,0 +1,86 @@+{-# 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.AppMesh.Types.TcpRouteAction+-- 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.AppMesh.Types.TcpRouteAction where++import Amazonka.AppMesh.Types.WeightedTarget+import qualified 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 object that represents the action to take if a match is determined.+--+-- /See:/ 'newTcpRouteAction' smart constructor.+data TcpRouteAction = TcpRouteAction'+ { -- | An object that represents the targets that traffic is routed to when a+ -- request matches the route.+ weightedTargets :: Prelude.NonEmpty WeightedTarget+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TcpRouteAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'weightedTargets', 'tcpRouteAction_weightedTargets' - An object that represents the targets that traffic is routed to when a+-- request matches the route.+newTcpRouteAction ::+ -- | 'weightedTargets'+ Prelude.NonEmpty WeightedTarget ->+ TcpRouteAction+newTcpRouteAction pWeightedTargets_ =+ TcpRouteAction'+ { weightedTargets =+ Lens.coerced Lens.# pWeightedTargets_+ }++-- | An object that represents the targets that traffic is routed to when a+-- request matches the route.+tcpRouteAction_weightedTargets :: Lens.Lens' TcpRouteAction (Prelude.NonEmpty WeightedTarget)+tcpRouteAction_weightedTargets = Lens.lens (\TcpRouteAction' {weightedTargets} -> weightedTargets) (\s@TcpRouteAction' {} a -> s {weightedTargets = a} :: TcpRouteAction) Prelude.. Lens.coerced++instance Data.FromJSON TcpRouteAction where+ parseJSON =+ Data.withObject+ "TcpRouteAction"+ ( \x ->+ TcpRouteAction'+ Prelude.<$> (x Data..: "weightedTargets")+ )++instance Prelude.Hashable TcpRouteAction where+ hashWithSalt _salt TcpRouteAction' {..} =+ _salt `Prelude.hashWithSalt` weightedTargets++instance Prelude.NFData TcpRouteAction where+ rnf TcpRouteAction' {..} = Prelude.rnf weightedTargets++instance Data.ToJSON TcpRouteAction where+ toJSON TcpRouteAction' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("weightedTargets" Data..= weightedTargets)+ ]+ )
+ gen/Amazonka/AppMesh/Types/TcpRouteMatch.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.TcpRouteMatch+-- 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.AppMesh.Types.TcpRouteMatch 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++-- | An object representing the TCP route to match.+--+-- /See:/ 'newTcpRouteMatch' smart constructor.+data TcpRouteMatch = TcpRouteMatch'+ { -- | The port number to match on.+ port :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TcpRouteMatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'port', 'tcpRouteMatch_port' - The port number to match on.+newTcpRouteMatch ::+ TcpRouteMatch+newTcpRouteMatch =+ TcpRouteMatch' {port = Prelude.Nothing}++-- | The port number to match on.+tcpRouteMatch_port :: Lens.Lens' TcpRouteMatch (Prelude.Maybe Prelude.Natural)+tcpRouteMatch_port = Lens.lens (\TcpRouteMatch' {port} -> port) (\s@TcpRouteMatch' {} a -> s {port = a} :: TcpRouteMatch)++instance Data.FromJSON TcpRouteMatch where+ parseJSON =+ Data.withObject+ "TcpRouteMatch"+ ( \x ->+ TcpRouteMatch' Prelude.<$> (x Data..:? "port")+ )++instance Prelude.Hashable TcpRouteMatch where+ hashWithSalt _salt TcpRouteMatch' {..} =+ _salt `Prelude.hashWithSalt` port++instance Prelude.NFData TcpRouteMatch where+ rnf TcpRouteMatch' {..} = Prelude.rnf port++instance Data.ToJSON TcpRouteMatch where+ toJSON TcpRouteMatch' {..} =+ Data.object+ ( Prelude.catMaybes+ [("port" Data..=) Prelude.<$> port]+ )
+ gen/Amazonka/AppMesh/Types/TcpTimeout.hs view
@@ -0,0 +1,75 @@+{-# 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.AppMesh.Types.TcpTimeout+-- 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.AppMesh.Types.TcpTimeout where++import Amazonka.AppMesh.Types.Duration+import qualified 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 object that represents types of timeouts.+--+-- /See:/ 'newTcpTimeout' smart constructor.+data TcpTimeout = TcpTimeout'+ { -- | An object that represents an idle timeout. An idle timeout bounds the+ -- amount of time that a connection may be idle. The default value is none.+ idle :: Prelude.Maybe Duration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TcpTimeout' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'idle', 'tcpTimeout_idle' - An object that represents an idle timeout. An idle timeout bounds the+-- amount of time that a connection may be idle. The default value is none.+newTcpTimeout ::+ TcpTimeout+newTcpTimeout = TcpTimeout' {idle = Prelude.Nothing}++-- | An object that represents an idle timeout. An idle timeout bounds the+-- amount of time that a connection may be idle. The default value is none.+tcpTimeout_idle :: Lens.Lens' TcpTimeout (Prelude.Maybe Duration)+tcpTimeout_idle = Lens.lens (\TcpTimeout' {idle} -> idle) (\s@TcpTimeout' {} a -> s {idle = a} :: TcpTimeout)++instance Data.FromJSON TcpTimeout where+ parseJSON =+ Data.withObject+ "TcpTimeout"+ (\x -> TcpTimeout' Prelude.<$> (x Data..:? "idle"))++instance Prelude.Hashable TcpTimeout where+ hashWithSalt _salt TcpTimeout' {..} =+ _salt `Prelude.hashWithSalt` idle++instance Prelude.NFData TcpTimeout where+ rnf TcpTimeout' {..} = Prelude.rnf idle++instance Data.ToJSON TcpTimeout where+ toJSON TcpTimeout' {..} =+ Data.object+ ( Prelude.catMaybes+ [("idle" Data..=) Prelude.<$> idle]+ )
+ gen/Amazonka/AppMesh/Types/TlsValidationContext.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.AppMesh.Types.TlsValidationContext+-- 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.AppMesh.Types.TlsValidationContext where++import Amazonka.AppMesh.Types.SubjectAlternativeNames+import Amazonka.AppMesh.Types.TlsValidationContextTrust+import qualified 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 object that represents how the proxy will validate its peer during+-- Transport Layer Security (TLS) negotiation.+--+-- /See:/ 'newTlsValidationContext' smart constructor.+data TlsValidationContext = TlsValidationContext'+ { -- | A reference to an object that represents the SANs for a Transport Layer+ -- Security (TLS) validation context. If you don\'t specify SANs on the+ -- /terminating/ mesh endpoint, the Envoy proxy for that node doesn\'t+ -- verify the SAN on a peer client certificate. If you don\'t specify SANs+ -- on the /originating/ mesh endpoint, the SAN on the certificate provided+ -- by the terminating endpoint must match the mesh endpoint service+ -- discovery configuration. Since SPIRE vended certificates have a SPIFFE+ -- ID as a name, you must set the SAN since the name doesn\'t match the+ -- service discovery name.+ subjectAlternativeNames :: Prelude.Maybe SubjectAlternativeNames,+ -- | A reference to where to retrieve the trust chain when validating a+ -- peer’s Transport Layer Security (TLS) certificate.+ trust :: TlsValidationContextTrust+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TlsValidationContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subjectAlternativeNames', 'tlsValidationContext_subjectAlternativeNames' - A reference to an object that represents the SANs for a Transport Layer+-- Security (TLS) validation context. If you don\'t specify SANs on the+-- /terminating/ mesh endpoint, the Envoy proxy for that node doesn\'t+-- verify the SAN on a peer client certificate. If you don\'t specify SANs+-- on the /originating/ mesh endpoint, the SAN on the certificate provided+-- by the terminating endpoint must match the mesh endpoint service+-- discovery configuration. Since SPIRE vended certificates have a SPIFFE+-- ID as a name, you must set the SAN since the name doesn\'t match the+-- service discovery name.+--+-- 'trust', 'tlsValidationContext_trust' - A reference to where to retrieve the trust chain when validating a+-- peer’s Transport Layer Security (TLS) certificate.+newTlsValidationContext ::+ -- | 'trust'+ TlsValidationContextTrust ->+ TlsValidationContext+newTlsValidationContext pTrust_ =+ TlsValidationContext'+ { subjectAlternativeNames =+ Prelude.Nothing,+ trust = pTrust_+ }++-- | A reference to an object that represents the SANs for a Transport Layer+-- Security (TLS) validation context. If you don\'t specify SANs on the+-- /terminating/ mesh endpoint, the Envoy proxy for that node doesn\'t+-- verify the SAN on a peer client certificate. If you don\'t specify SANs+-- on the /originating/ mesh endpoint, the SAN on the certificate provided+-- by the terminating endpoint must match the mesh endpoint service+-- discovery configuration. Since SPIRE vended certificates have a SPIFFE+-- ID as a name, you must set the SAN since the name doesn\'t match the+-- service discovery name.+tlsValidationContext_subjectAlternativeNames :: Lens.Lens' TlsValidationContext (Prelude.Maybe SubjectAlternativeNames)+tlsValidationContext_subjectAlternativeNames = Lens.lens (\TlsValidationContext' {subjectAlternativeNames} -> subjectAlternativeNames) (\s@TlsValidationContext' {} a -> s {subjectAlternativeNames = a} :: TlsValidationContext)++-- | A reference to where to retrieve the trust chain when validating a+-- peer’s Transport Layer Security (TLS) certificate.+tlsValidationContext_trust :: Lens.Lens' TlsValidationContext TlsValidationContextTrust+tlsValidationContext_trust = Lens.lens (\TlsValidationContext' {trust} -> trust) (\s@TlsValidationContext' {} a -> s {trust = a} :: TlsValidationContext)++instance Data.FromJSON TlsValidationContext where+ parseJSON =+ Data.withObject+ "TlsValidationContext"+ ( \x ->+ TlsValidationContext'+ Prelude.<$> (x Data..:? "subjectAlternativeNames")+ Prelude.<*> (x Data..: "trust")+ )++instance Prelude.Hashable TlsValidationContext where+ hashWithSalt _salt TlsValidationContext' {..} =+ _salt+ `Prelude.hashWithSalt` subjectAlternativeNames+ `Prelude.hashWithSalt` trust++instance Prelude.NFData TlsValidationContext where+ rnf TlsValidationContext' {..} =+ Prelude.rnf subjectAlternativeNames+ `Prelude.seq` Prelude.rnf trust++instance Data.ToJSON TlsValidationContext where+ toJSON TlsValidationContext' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("subjectAlternativeNames" Data..=)+ Prelude.<$> subjectAlternativeNames,+ Prelude.Just ("trust" Data..= trust)+ ]+ )
+ gen/Amazonka/AppMesh/Types/TlsValidationContextAcmTrust.hs view
@@ -0,0 +1,92 @@+{-# 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.AppMesh.Types.TlsValidationContextAcmTrust+-- 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.AppMesh.Types.TlsValidationContextAcmTrust 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++-- | An object that represents a Transport Layer Security (TLS) validation+-- context trust for an Certificate Manager certificate.+--+-- /See:/ 'newTlsValidationContextAcmTrust' smart constructor.+data TlsValidationContextAcmTrust = TlsValidationContextAcmTrust'+ { -- | One or more ACM Amazon Resource Name (ARN)s.+ certificateAuthorityArns :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TlsValidationContextAcmTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateAuthorityArns', 'tlsValidationContextAcmTrust_certificateAuthorityArns' - One or more ACM Amazon Resource Name (ARN)s.+newTlsValidationContextAcmTrust ::+ -- | 'certificateAuthorityArns'+ Prelude.NonEmpty Prelude.Text ->+ TlsValidationContextAcmTrust+newTlsValidationContextAcmTrust+ pCertificateAuthorityArns_ =+ TlsValidationContextAcmTrust'+ { certificateAuthorityArns =+ Lens.coerced+ Lens.# pCertificateAuthorityArns_+ }++-- | One or more ACM Amazon Resource Name (ARN)s.+tlsValidationContextAcmTrust_certificateAuthorityArns :: Lens.Lens' TlsValidationContextAcmTrust (Prelude.NonEmpty Prelude.Text)+tlsValidationContextAcmTrust_certificateAuthorityArns = Lens.lens (\TlsValidationContextAcmTrust' {certificateAuthorityArns} -> certificateAuthorityArns) (\s@TlsValidationContextAcmTrust' {} a -> s {certificateAuthorityArns = a} :: TlsValidationContextAcmTrust) Prelude.. Lens.coerced++instance Data.FromJSON TlsValidationContextAcmTrust where+ parseJSON =+ Data.withObject+ "TlsValidationContextAcmTrust"+ ( \x ->+ TlsValidationContextAcmTrust'+ Prelude.<$> (x Data..: "certificateAuthorityArns")+ )++instance+ Prelude.Hashable+ TlsValidationContextAcmTrust+ where+ hashWithSalt _salt TlsValidationContextAcmTrust' {..} =+ _salt+ `Prelude.hashWithSalt` certificateAuthorityArns++instance Prelude.NFData TlsValidationContextAcmTrust where+ rnf TlsValidationContextAcmTrust' {..} =+ Prelude.rnf certificateAuthorityArns++instance Data.ToJSON TlsValidationContextAcmTrust where+ toJSON TlsValidationContextAcmTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "certificateAuthorityArns"+ Data..= certificateAuthorityArns+ )+ ]+ )
+ gen/Amazonka/AppMesh/Types/TlsValidationContextFileTrust.hs view
@@ -0,0 +1,90 @@+{-# 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.AppMesh.Types.TlsValidationContextFileTrust+-- 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.AppMesh.Types.TlsValidationContextFileTrust 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++-- | An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+--+-- /See:/ 'newTlsValidationContextFileTrust' smart constructor.+data TlsValidationContextFileTrust = TlsValidationContextFileTrust'+ { -- | The certificate trust chain for a certificate stored on the file system+ -- of the virtual node that the proxy is running on.+ certificateChain :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TlsValidationContextFileTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateChain', 'tlsValidationContextFileTrust_certificateChain' - The certificate trust chain for a certificate stored on the file system+-- of the virtual node that the proxy is running on.+newTlsValidationContextFileTrust ::+ -- | 'certificateChain'+ Prelude.Text ->+ TlsValidationContextFileTrust+newTlsValidationContextFileTrust pCertificateChain_ =+ TlsValidationContextFileTrust'+ { certificateChain =+ pCertificateChain_+ }++-- | The certificate trust chain for a certificate stored on the file system+-- of the virtual node that the proxy is running on.+tlsValidationContextFileTrust_certificateChain :: Lens.Lens' TlsValidationContextFileTrust Prelude.Text+tlsValidationContextFileTrust_certificateChain = Lens.lens (\TlsValidationContextFileTrust' {certificateChain} -> certificateChain) (\s@TlsValidationContextFileTrust' {} a -> s {certificateChain = a} :: TlsValidationContextFileTrust)++instance Data.FromJSON TlsValidationContextFileTrust where+ parseJSON =+ Data.withObject+ "TlsValidationContextFileTrust"+ ( \x ->+ TlsValidationContextFileTrust'+ Prelude.<$> (x Data..: "certificateChain")+ )++instance+ Prelude.Hashable+ TlsValidationContextFileTrust+ where+ hashWithSalt _salt TlsValidationContextFileTrust' {..} =+ _salt `Prelude.hashWithSalt` certificateChain++instance Prelude.NFData TlsValidationContextFileTrust where+ rnf TlsValidationContextFileTrust' {..} =+ Prelude.rnf certificateChain++instance Data.ToJSON TlsValidationContextFileTrust where+ toJSON TlsValidationContextFileTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("certificateChain" Data..= certificateChain)+ ]+ )
+ gen/Amazonka/AppMesh/Types/TlsValidationContextSdsTrust.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.TlsValidationContextSdsTrust+-- 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.AppMesh.Types.TlsValidationContextSdsTrust 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++-- | An object that represents a Transport Layer Security (TLS) Secret+-- Discovery Service validation context trust. The proxy must be configured+-- with a local SDS provider via a Unix Domain Socket. See App Mesh+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html TLS documentation>+-- for more info.+--+-- /See:/ 'newTlsValidationContextSdsTrust' smart constructor.+data TlsValidationContextSdsTrust = TlsValidationContextSdsTrust'+ { -- | A reference to an object that represents the name of the secret for a+ -- Transport Layer Security (TLS) Secret Discovery Service validation+ -- context trust.+ secretName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TlsValidationContextSdsTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'secretName', 'tlsValidationContextSdsTrust_secretName' - A reference to an object that represents the name of the secret for a+-- Transport Layer Security (TLS) Secret Discovery Service validation+-- context trust.+newTlsValidationContextSdsTrust ::+ -- | 'secretName'+ Prelude.Text ->+ TlsValidationContextSdsTrust+newTlsValidationContextSdsTrust pSecretName_ =+ TlsValidationContextSdsTrust'+ { secretName =+ pSecretName_+ }++-- | A reference to an object that represents the name of the secret for a+-- Transport Layer Security (TLS) Secret Discovery Service validation+-- context trust.+tlsValidationContextSdsTrust_secretName :: Lens.Lens' TlsValidationContextSdsTrust Prelude.Text+tlsValidationContextSdsTrust_secretName = Lens.lens (\TlsValidationContextSdsTrust' {secretName} -> secretName) (\s@TlsValidationContextSdsTrust' {} a -> s {secretName = a} :: TlsValidationContextSdsTrust)++instance Data.FromJSON TlsValidationContextSdsTrust where+ parseJSON =+ Data.withObject+ "TlsValidationContextSdsTrust"+ ( \x ->+ TlsValidationContextSdsTrust'+ Prelude.<$> (x Data..: "secretName")+ )++instance+ Prelude.Hashable+ TlsValidationContextSdsTrust+ where+ hashWithSalt _salt TlsValidationContextSdsTrust' {..} =+ _salt `Prelude.hashWithSalt` secretName++instance Prelude.NFData TlsValidationContextSdsTrust where+ rnf TlsValidationContextSdsTrust' {..} =+ Prelude.rnf secretName++instance Data.ToJSON TlsValidationContextSdsTrust where+ toJSON TlsValidationContextSdsTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("secretName" Data..= secretName)]+ )
+ gen/Amazonka/AppMesh/Types/TlsValidationContextTrust.hs view
@@ -0,0 +1,119 @@+{-# 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.AppMesh.Types.TlsValidationContextTrust+-- 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.AppMesh.Types.TlsValidationContextTrust where++import Amazonka.AppMesh.Types.TlsValidationContextAcmTrust+import Amazonka.AppMesh.Types.TlsValidationContextFileTrust+import Amazonka.AppMesh.Types.TlsValidationContextSdsTrust+import qualified 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 object that represents a Transport Layer Security (TLS) validation+-- context trust.+--+-- /See:/ 'newTlsValidationContextTrust' smart constructor.+data TlsValidationContextTrust = TlsValidationContextTrust'+ { -- | A reference to an object that represents a Transport Layer Security+ -- (TLS) validation context trust for an Certificate Manager certificate.+ acm :: Prelude.Maybe TlsValidationContextAcmTrust,+ -- | An object that represents a Transport Layer Security (TLS) validation+ -- context trust for a local file.+ file :: Prelude.Maybe TlsValidationContextFileTrust,+ -- | A reference to an object that represents a Transport Layer Security+ -- (TLS) Secret Discovery Service validation context trust.+ sds :: Prelude.Maybe TlsValidationContextSdsTrust+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TlsValidationContextTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acm', 'tlsValidationContextTrust_acm' - A reference to an object that represents a Transport Layer Security+-- (TLS) validation context trust for an Certificate Manager certificate.+--+-- 'file', 'tlsValidationContextTrust_file' - An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+--+-- 'sds', 'tlsValidationContextTrust_sds' - A reference to an object that represents a Transport Layer Security+-- (TLS) Secret Discovery Service validation context trust.+newTlsValidationContextTrust ::+ TlsValidationContextTrust+newTlsValidationContextTrust =+ TlsValidationContextTrust'+ { acm = Prelude.Nothing,+ file = Prelude.Nothing,+ sds = Prelude.Nothing+ }++-- | A reference to an object that represents a Transport Layer Security+-- (TLS) validation context trust for an Certificate Manager certificate.+tlsValidationContextTrust_acm :: Lens.Lens' TlsValidationContextTrust (Prelude.Maybe TlsValidationContextAcmTrust)+tlsValidationContextTrust_acm = Lens.lens (\TlsValidationContextTrust' {acm} -> acm) (\s@TlsValidationContextTrust' {} a -> s {acm = a} :: TlsValidationContextTrust)++-- | An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+tlsValidationContextTrust_file :: Lens.Lens' TlsValidationContextTrust (Prelude.Maybe TlsValidationContextFileTrust)+tlsValidationContextTrust_file = Lens.lens (\TlsValidationContextTrust' {file} -> file) (\s@TlsValidationContextTrust' {} a -> s {file = a} :: TlsValidationContextTrust)++-- | A reference to an object that represents a Transport Layer Security+-- (TLS) Secret Discovery Service validation context trust.+tlsValidationContextTrust_sds :: Lens.Lens' TlsValidationContextTrust (Prelude.Maybe TlsValidationContextSdsTrust)+tlsValidationContextTrust_sds = Lens.lens (\TlsValidationContextTrust' {sds} -> sds) (\s@TlsValidationContextTrust' {} a -> s {sds = a} :: TlsValidationContextTrust)++instance Data.FromJSON TlsValidationContextTrust where+ parseJSON =+ Data.withObject+ "TlsValidationContextTrust"+ ( \x ->+ TlsValidationContextTrust'+ Prelude.<$> (x Data..:? "acm")+ Prelude.<*> (x Data..:? "file")+ Prelude.<*> (x Data..:? "sds")+ )++instance Prelude.Hashable TlsValidationContextTrust where+ hashWithSalt _salt TlsValidationContextTrust' {..} =+ _salt+ `Prelude.hashWithSalt` acm+ `Prelude.hashWithSalt` file+ `Prelude.hashWithSalt` sds++instance Prelude.NFData TlsValidationContextTrust where+ rnf TlsValidationContextTrust' {..} =+ Prelude.rnf acm+ `Prelude.seq` Prelude.rnf file+ `Prelude.seq` Prelude.rnf sds++instance Data.ToJSON TlsValidationContextTrust where+ toJSON TlsValidationContextTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("acm" Data..=) Prelude.<$> acm,+ ("file" Data..=) Prelude.<$> file,+ ("sds" Data..=) Prelude.<$> sds+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayAccessLog.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.AppMesh.Types.VirtualGatewayAccessLog+-- 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.AppMesh.Types.VirtualGatewayAccessLog where++import Amazonka.AppMesh.Types.VirtualGatewayFileAccessLog+import qualified 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 access log configuration for a virtual gateway.+--+-- /See:/ 'newVirtualGatewayAccessLog' smart constructor.+data VirtualGatewayAccessLog = VirtualGatewayAccessLog'+ { -- | The file object to send virtual gateway access logs to.+ file :: Prelude.Maybe VirtualGatewayFileAccessLog+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayAccessLog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'file', 'virtualGatewayAccessLog_file' - The file object to send virtual gateway access logs to.+newVirtualGatewayAccessLog ::+ VirtualGatewayAccessLog+newVirtualGatewayAccessLog =+ VirtualGatewayAccessLog' {file = Prelude.Nothing}++-- | The file object to send virtual gateway access logs to.+virtualGatewayAccessLog_file :: Lens.Lens' VirtualGatewayAccessLog (Prelude.Maybe VirtualGatewayFileAccessLog)+virtualGatewayAccessLog_file = Lens.lens (\VirtualGatewayAccessLog' {file} -> file) (\s@VirtualGatewayAccessLog' {} a -> s {file = a} :: VirtualGatewayAccessLog)++instance Data.FromJSON VirtualGatewayAccessLog where+ parseJSON =+ Data.withObject+ "VirtualGatewayAccessLog"+ ( \x ->+ VirtualGatewayAccessLog'+ Prelude.<$> (x Data..:? "file")+ )++instance Prelude.Hashable VirtualGatewayAccessLog where+ hashWithSalt _salt VirtualGatewayAccessLog' {..} =+ _salt `Prelude.hashWithSalt` file++instance Prelude.NFData VirtualGatewayAccessLog where+ rnf VirtualGatewayAccessLog' {..} = Prelude.rnf file++instance Data.ToJSON VirtualGatewayAccessLog where+ toJSON VirtualGatewayAccessLog' {..} =+ Data.object+ ( Prelude.catMaybes+ [("file" Data..=) Prelude.<$> file]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayBackendDefaults.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.AppMesh.Types.VirtualGatewayBackendDefaults+-- 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.AppMesh.Types.VirtualGatewayBackendDefaults where++import Amazonka.AppMesh.Types.VirtualGatewayClientPolicy+import qualified 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 object that represents the default properties for a backend.+--+-- /See:/ 'newVirtualGatewayBackendDefaults' smart constructor.+data VirtualGatewayBackendDefaults = VirtualGatewayBackendDefaults'+ { -- | A reference to an object that represents a client policy.+ clientPolicy :: Prelude.Maybe VirtualGatewayClientPolicy+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayBackendDefaults' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientPolicy', 'virtualGatewayBackendDefaults_clientPolicy' - A reference to an object that represents a client policy.+newVirtualGatewayBackendDefaults ::+ VirtualGatewayBackendDefaults+newVirtualGatewayBackendDefaults =+ VirtualGatewayBackendDefaults'+ { clientPolicy =+ Prelude.Nothing+ }++-- | A reference to an object that represents a client policy.+virtualGatewayBackendDefaults_clientPolicy :: Lens.Lens' VirtualGatewayBackendDefaults (Prelude.Maybe VirtualGatewayClientPolicy)+virtualGatewayBackendDefaults_clientPolicy = Lens.lens (\VirtualGatewayBackendDefaults' {clientPolicy} -> clientPolicy) (\s@VirtualGatewayBackendDefaults' {} a -> s {clientPolicy = a} :: VirtualGatewayBackendDefaults)++instance Data.FromJSON VirtualGatewayBackendDefaults where+ parseJSON =+ Data.withObject+ "VirtualGatewayBackendDefaults"+ ( \x ->+ VirtualGatewayBackendDefaults'+ Prelude.<$> (x Data..:? "clientPolicy")+ )++instance+ Prelude.Hashable+ VirtualGatewayBackendDefaults+ where+ hashWithSalt _salt VirtualGatewayBackendDefaults' {..} =+ _salt `Prelude.hashWithSalt` clientPolicy++instance Prelude.NFData VirtualGatewayBackendDefaults where+ rnf VirtualGatewayBackendDefaults' {..} =+ Prelude.rnf clientPolicy++instance Data.ToJSON VirtualGatewayBackendDefaults where+ toJSON VirtualGatewayBackendDefaults' {..} =+ Data.object+ ( Prelude.catMaybes+ [("clientPolicy" Data..=) Prelude.<$> clientPolicy]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayClientPolicy.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayClientPolicy+-- 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.AppMesh.Types.VirtualGatewayClientPolicy where++import Amazonka.AppMesh.Types.VirtualGatewayClientPolicyTls+import qualified 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 object that represents a client policy.+--+-- /See:/ 'newVirtualGatewayClientPolicy' smart constructor.+data VirtualGatewayClientPolicy = VirtualGatewayClientPolicy'+ { -- | A reference to an object that represents a Transport Layer Security+ -- (TLS) client policy.+ tls :: Prelude.Maybe VirtualGatewayClientPolicyTls+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayClientPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tls', 'virtualGatewayClientPolicy_tls' - A reference to an object that represents a Transport Layer Security+-- (TLS) client policy.+newVirtualGatewayClientPolicy ::+ VirtualGatewayClientPolicy+newVirtualGatewayClientPolicy =+ VirtualGatewayClientPolicy' {tls = Prelude.Nothing}++-- | A reference to an object that represents a Transport Layer Security+-- (TLS) client policy.+virtualGatewayClientPolicy_tls :: Lens.Lens' VirtualGatewayClientPolicy (Prelude.Maybe VirtualGatewayClientPolicyTls)+virtualGatewayClientPolicy_tls = Lens.lens (\VirtualGatewayClientPolicy' {tls} -> tls) (\s@VirtualGatewayClientPolicy' {} a -> s {tls = a} :: VirtualGatewayClientPolicy)++instance Data.FromJSON VirtualGatewayClientPolicy where+ parseJSON =+ Data.withObject+ "VirtualGatewayClientPolicy"+ ( \x ->+ VirtualGatewayClientPolicy'+ Prelude.<$> (x Data..:? "tls")+ )++instance Prelude.Hashable VirtualGatewayClientPolicy where+ hashWithSalt _salt VirtualGatewayClientPolicy' {..} =+ _salt `Prelude.hashWithSalt` tls++instance Prelude.NFData VirtualGatewayClientPolicy where+ rnf VirtualGatewayClientPolicy' {..} = Prelude.rnf tls++instance Data.ToJSON VirtualGatewayClientPolicy where+ toJSON VirtualGatewayClientPolicy' {..} =+ Data.object+ (Prelude.catMaybes [("tls" Data..=) Prelude.<$> tls])
+ gen/Amazonka/AppMesh/Types/VirtualGatewayClientPolicyTls.hs view
@@ -0,0 +1,137 @@+{-# 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.AppMesh.Types.VirtualGatewayClientPolicyTls+-- 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.AppMesh.Types.VirtualGatewayClientPolicyTls where++import Amazonka.AppMesh.Types.VirtualGatewayClientTlsCertificate+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContext+import qualified 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 object that represents a Transport Layer Security (TLS) client+-- policy.+--+-- /See:/ 'newVirtualGatewayClientPolicyTls' smart constructor.+data VirtualGatewayClientPolicyTls = VirtualGatewayClientPolicyTls'+ { -- | A reference to an object that represents a virtual gateway\'s client\'s+ -- Transport Layer Security (TLS) certificate.+ certificate :: Prelude.Maybe VirtualGatewayClientTlsCertificate,+ -- | Whether the policy is enforced. The default is @True@, if a value isn\'t+ -- specified.+ enforce :: Prelude.Maybe Prelude.Bool,+ -- | One or more ports that the policy is enforced for.+ ports :: Prelude.Maybe [Prelude.Natural],+ -- | A reference to an object that represents a Transport Layer Security+ -- (TLS) validation context.+ validation :: VirtualGatewayTlsValidationContext+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayClientPolicyTls' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificate', 'virtualGatewayClientPolicyTls_certificate' - A reference to an object that represents a virtual gateway\'s client\'s+-- Transport Layer Security (TLS) certificate.+--+-- 'enforce', 'virtualGatewayClientPolicyTls_enforce' - Whether the policy is enforced. The default is @True@, if a value isn\'t+-- specified.+--+-- 'ports', 'virtualGatewayClientPolicyTls_ports' - One or more ports that the policy is enforced for.+--+-- 'validation', 'virtualGatewayClientPolicyTls_validation' - A reference to an object that represents a Transport Layer Security+-- (TLS) validation context.+newVirtualGatewayClientPolicyTls ::+ -- | 'validation'+ VirtualGatewayTlsValidationContext ->+ VirtualGatewayClientPolicyTls+newVirtualGatewayClientPolicyTls pValidation_ =+ VirtualGatewayClientPolicyTls'+ { certificate =+ Prelude.Nothing,+ enforce = Prelude.Nothing,+ ports = Prelude.Nothing,+ validation = pValidation_+ }++-- | A reference to an object that represents a virtual gateway\'s client\'s+-- Transport Layer Security (TLS) certificate.+virtualGatewayClientPolicyTls_certificate :: Lens.Lens' VirtualGatewayClientPolicyTls (Prelude.Maybe VirtualGatewayClientTlsCertificate)+virtualGatewayClientPolicyTls_certificate = Lens.lens (\VirtualGatewayClientPolicyTls' {certificate} -> certificate) (\s@VirtualGatewayClientPolicyTls' {} a -> s {certificate = a} :: VirtualGatewayClientPolicyTls)++-- | Whether the policy is enforced. The default is @True@, if a value isn\'t+-- specified.+virtualGatewayClientPolicyTls_enforce :: Lens.Lens' VirtualGatewayClientPolicyTls (Prelude.Maybe Prelude.Bool)+virtualGatewayClientPolicyTls_enforce = Lens.lens (\VirtualGatewayClientPolicyTls' {enforce} -> enforce) (\s@VirtualGatewayClientPolicyTls' {} a -> s {enforce = a} :: VirtualGatewayClientPolicyTls)++-- | One or more ports that the policy is enforced for.+virtualGatewayClientPolicyTls_ports :: Lens.Lens' VirtualGatewayClientPolicyTls (Prelude.Maybe [Prelude.Natural])+virtualGatewayClientPolicyTls_ports = Lens.lens (\VirtualGatewayClientPolicyTls' {ports} -> ports) (\s@VirtualGatewayClientPolicyTls' {} a -> s {ports = a} :: VirtualGatewayClientPolicyTls) Prelude.. Lens.mapping Lens.coerced++-- | A reference to an object that represents a Transport Layer Security+-- (TLS) validation context.+virtualGatewayClientPolicyTls_validation :: Lens.Lens' VirtualGatewayClientPolicyTls VirtualGatewayTlsValidationContext+virtualGatewayClientPolicyTls_validation = Lens.lens (\VirtualGatewayClientPolicyTls' {validation} -> validation) (\s@VirtualGatewayClientPolicyTls' {} a -> s {validation = a} :: VirtualGatewayClientPolicyTls)++instance Data.FromJSON VirtualGatewayClientPolicyTls where+ parseJSON =+ Data.withObject+ "VirtualGatewayClientPolicyTls"+ ( \x ->+ VirtualGatewayClientPolicyTls'+ Prelude.<$> (x Data..:? "certificate")+ Prelude.<*> (x Data..:? "enforce")+ Prelude.<*> (x Data..:? "ports" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "validation")+ )++instance+ Prelude.Hashable+ VirtualGatewayClientPolicyTls+ where+ hashWithSalt _salt VirtualGatewayClientPolicyTls' {..} =+ _salt+ `Prelude.hashWithSalt` certificate+ `Prelude.hashWithSalt` enforce+ `Prelude.hashWithSalt` ports+ `Prelude.hashWithSalt` validation++instance Prelude.NFData VirtualGatewayClientPolicyTls where+ rnf VirtualGatewayClientPolicyTls' {..} =+ Prelude.rnf certificate+ `Prelude.seq` Prelude.rnf enforce+ `Prelude.seq` Prelude.rnf ports+ `Prelude.seq` Prelude.rnf validation++instance Data.ToJSON VirtualGatewayClientPolicyTls where+ toJSON VirtualGatewayClientPolicyTls' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("certificate" Data..=) Prelude.<$> certificate,+ ("enforce" Data..=) Prelude.<$> enforce,+ ("ports" Data..=) Prelude.<$> ports,+ Prelude.Just ("validation" Data..= validation)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayClientTlsCertificate.hs view
@@ -0,0 +1,125 @@+{-# 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.AppMesh.Types.VirtualGatewayClientTlsCertificate+-- 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.AppMesh.Types.VirtualGatewayClientTlsCertificate where++import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsFileCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsSdsCertificate+import qualified 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 object that represents the virtual gateway\'s client\'s Transport+-- Layer Security (TLS) certificate.+--+-- /See:/ 'newVirtualGatewayClientTlsCertificate' smart constructor.+data VirtualGatewayClientTlsCertificate = VirtualGatewayClientTlsCertificate'+ { -- | An object that represents a local file certificate. The certificate must+ -- meet specific requirements and you must have proxy authorization+ -- enabled. For more information, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html Transport Layer Security (TLS)>+ -- .+ file :: Prelude.Maybe VirtualGatewayListenerTlsFileCertificate,+ -- | A reference to an object that represents a virtual gateway\'s client\'s+ -- Secret Discovery Service certificate.+ sds :: Prelude.Maybe VirtualGatewayListenerTlsSdsCertificate+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayClientTlsCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'file', 'virtualGatewayClientTlsCertificate_file' - An object that represents a local file certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html Transport Layer Security (TLS)>+-- .+--+-- 'sds', 'virtualGatewayClientTlsCertificate_sds' - A reference to an object that represents a virtual gateway\'s client\'s+-- Secret Discovery Service certificate.+newVirtualGatewayClientTlsCertificate ::+ VirtualGatewayClientTlsCertificate+newVirtualGatewayClientTlsCertificate =+ VirtualGatewayClientTlsCertificate'+ { file =+ Prelude.Nothing,+ sds = Prelude.Nothing+ }++-- | An object that represents a local file certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html Transport Layer Security (TLS)>+-- .+virtualGatewayClientTlsCertificate_file :: Lens.Lens' VirtualGatewayClientTlsCertificate (Prelude.Maybe VirtualGatewayListenerTlsFileCertificate)+virtualGatewayClientTlsCertificate_file = Lens.lens (\VirtualGatewayClientTlsCertificate' {file} -> file) (\s@VirtualGatewayClientTlsCertificate' {} a -> s {file = a} :: VirtualGatewayClientTlsCertificate)++-- | A reference to an object that represents a virtual gateway\'s client\'s+-- Secret Discovery Service certificate.+virtualGatewayClientTlsCertificate_sds :: Lens.Lens' VirtualGatewayClientTlsCertificate (Prelude.Maybe VirtualGatewayListenerTlsSdsCertificate)+virtualGatewayClientTlsCertificate_sds = Lens.lens (\VirtualGatewayClientTlsCertificate' {sds} -> sds) (\s@VirtualGatewayClientTlsCertificate' {} a -> s {sds = a} :: VirtualGatewayClientTlsCertificate)++instance+ Data.FromJSON+ VirtualGatewayClientTlsCertificate+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayClientTlsCertificate"+ ( \x ->+ VirtualGatewayClientTlsCertificate'+ Prelude.<$> (x Data..:? "file")+ Prelude.<*> (x Data..:? "sds")+ )++instance+ Prelude.Hashable+ VirtualGatewayClientTlsCertificate+ where+ hashWithSalt+ _salt+ VirtualGatewayClientTlsCertificate' {..} =+ _salt+ `Prelude.hashWithSalt` file+ `Prelude.hashWithSalt` sds++instance+ Prelude.NFData+ VirtualGatewayClientTlsCertificate+ where+ rnf VirtualGatewayClientTlsCertificate' {..} =+ Prelude.rnf file `Prelude.seq` Prelude.rnf sds++instance+ Data.ToJSON+ VirtualGatewayClientTlsCertificate+ where+ toJSON VirtualGatewayClientTlsCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("file" Data..=) Prelude.<$> file,+ ("sds" Data..=) Prelude.<$> sds+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayConnectionPool.hs view
@@ -0,0 +1,119 @@+{-# 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.AppMesh.Types.VirtualGatewayConnectionPool+-- 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.AppMesh.Types.VirtualGatewayConnectionPool where++import Amazonka.AppMesh.Types.VirtualGatewayGrpcConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayHttp2ConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayHttpConnectionPool+import qualified 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 object that represents the type of virtual gateway connection pool.+--+-- Only one protocol is used at a time and should be the same protocol as+-- the one chosen under port mapping.+--+-- If not present the default value for @maxPendingRequests@ is+-- @2147483647@.+--+-- /See:/ 'newVirtualGatewayConnectionPool' smart constructor.+data VirtualGatewayConnectionPool = VirtualGatewayConnectionPool'+ { -- | An object that represents a type of connection pool.+ grpc :: Prelude.Maybe VirtualGatewayGrpcConnectionPool,+ -- | An object that represents a type of connection pool.+ http :: Prelude.Maybe VirtualGatewayHttpConnectionPool,+ -- | An object that represents a type of connection pool.+ http2 :: Prelude.Maybe VirtualGatewayHttp2ConnectionPool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'grpc', 'virtualGatewayConnectionPool_grpc' - An object that represents a type of connection pool.+--+-- 'http', 'virtualGatewayConnectionPool_http' - An object that represents a type of connection pool.+--+-- 'http2', 'virtualGatewayConnectionPool_http2' - An object that represents a type of connection pool.+newVirtualGatewayConnectionPool ::+ VirtualGatewayConnectionPool+newVirtualGatewayConnectionPool =+ VirtualGatewayConnectionPool'+ { grpc =+ Prelude.Nothing,+ http = Prelude.Nothing,+ http2 = Prelude.Nothing+ }++-- | An object that represents a type of connection pool.+virtualGatewayConnectionPool_grpc :: Lens.Lens' VirtualGatewayConnectionPool (Prelude.Maybe VirtualGatewayGrpcConnectionPool)+virtualGatewayConnectionPool_grpc = Lens.lens (\VirtualGatewayConnectionPool' {grpc} -> grpc) (\s@VirtualGatewayConnectionPool' {} a -> s {grpc = a} :: VirtualGatewayConnectionPool)++-- | An object that represents a type of connection pool.+virtualGatewayConnectionPool_http :: Lens.Lens' VirtualGatewayConnectionPool (Prelude.Maybe VirtualGatewayHttpConnectionPool)+virtualGatewayConnectionPool_http = Lens.lens (\VirtualGatewayConnectionPool' {http} -> http) (\s@VirtualGatewayConnectionPool' {} a -> s {http = a} :: VirtualGatewayConnectionPool)++-- | An object that represents a type of connection pool.+virtualGatewayConnectionPool_http2 :: Lens.Lens' VirtualGatewayConnectionPool (Prelude.Maybe VirtualGatewayHttp2ConnectionPool)+virtualGatewayConnectionPool_http2 = Lens.lens (\VirtualGatewayConnectionPool' {http2} -> http2) (\s@VirtualGatewayConnectionPool' {} a -> s {http2 = a} :: VirtualGatewayConnectionPool)++instance Data.FromJSON VirtualGatewayConnectionPool where+ parseJSON =+ Data.withObject+ "VirtualGatewayConnectionPool"+ ( \x ->+ VirtualGatewayConnectionPool'+ Prelude.<$> (x Data..:? "grpc")+ Prelude.<*> (x Data..:? "http")+ Prelude.<*> (x Data..:? "http2")+ )++instance+ Prelude.Hashable+ VirtualGatewayConnectionPool+ where+ hashWithSalt _salt VirtualGatewayConnectionPool' {..} =+ _salt+ `Prelude.hashWithSalt` grpc+ `Prelude.hashWithSalt` http+ `Prelude.hashWithSalt` http2++instance Prelude.NFData VirtualGatewayConnectionPool where+ rnf VirtualGatewayConnectionPool' {..} =+ Prelude.rnf grpc+ `Prelude.seq` Prelude.rnf http+ `Prelude.seq` Prelude.rnf http2++instance Data.ToJSON VirtualGatewayConnectionPool where+ toJSON VirtualGatewayConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("grpc" Data..=) Prelude.<$> grpc,+ ("http" Data..=) Prelude.<$> http,+ ("http2" Data..=) Prelude.<$> http2+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayData.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayData+-- 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.AppMesh.Types.VirtualGatewayData where++import Amazonka.AppMesh.Types.ResourceMetadata+import Amazonka.AppMesh.Types.VirtualGatewaySpec+import Amazonka.AppMesh.Types.VirtualGatewayStatus+import qualified 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 object that represents a virtual gateway returned by a describe+-- operation.+--+-- /See:/ 'newVirtualGatewayData' smart constructor.+data VirtualGatewayData = VirtualGatewayData'+ { -- | The name of the service mesh that the virtual gateway resides in.+ meshName :: Prelude.Text,+ metadata :: ResourceMetadata,+ -- | The specifications of the virtual gateway.+ spec :: VirtualGatewaySpec,+ -- | The current status of the virtual gateway.+ status :: VirtualGatewayStatus,+ -- | The name of the virtual gateway.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshName', 'virtualGatewayData_meshName' - The name of the service mesh that the virtual gateway resides in.+--+-- 'metadata', 'virtualGatewayData_metadata' - Undocumented member.+--+-- 'spec', 'virtualGatewayData_spec' - The specifications of the virtual gateway.+--+-- 'status', 'virtualGatewayData_status' - The current status of the virtual gateway.+--+-- 'virtualGatewayName', 'virtualGatewayData_virtualGatewayName' - The name of the virtual gateway.+newVirtualGatewayData ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'metadata'+ ResourceMetadata ->+ -- | 'spec'+ VirtualGatewaySpec ->+ -- | 'status'+ VirtualGatewayStatus ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ VirtualGatewayData+newVirtualGatewayData+ pMeshName_+ pMetadata_+ pSpec_+ pStatus_+ pVirtualGatewayName_ =+ VirtualGatewayData'+ { meshName = pMeshName_,+ metadata = pMetadata_,+ spec = pSpec_,+ status = pStatus_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The name of the service mesh that the virtual gateway resides in.+virtualGatewayData_meshName :: Lens.Lens' VirtualGatewayData Prelude.Text+virtualGatewayData_meshName = Lens.lens (\VirtualGatewayData' {meshName} -> meshName) (\s@VirtualGatewayData' {} a -> s {meshName = a} :: VirtualGatewayData)++-- | Undocumented member.+virtualGatewayData_metadata :: Lens.Lens' VirtualGatewayData ResourceMetadata+virtualGatewayData_metadata = Lens.lens (\VirtualGatewayData' {metadata} -> metadata) (\s@VirtualGatewayData' {} a -> s {metadata = a} :: VirtualGatewayData)++-- | The specifications of the virtual gateway.+virtualGatewayData_spec :: Lens.Lens' VirtualGatewayData VirtualGatewaySpec+virtualGatewayData_spec = Lens.lens (\VirtualGatewayData' {spec} -> spec) (\s@VirtualGatewayData' {} a -> s {spec = a} :: VirtualGatewayData)++-- | The current status of the virtual gateway.+virtualGatewayData_status :: Lens.Lens' VirtualGatewayData VirtualGatewayStatus+virtualGatewayData_status = Lens.lens (\VirtualGatewayData' {status} -> status) (\s@VirtualGatewayData' {} a -> s {status = a} :: VirtualGatewayData)++-- | The name of the virtual gateway.+virtualGatewayData_virtualGatewayName :: Lens.Lens' VirtualGatewayData Prelude.Text+virtualGatewayData_virtualGatewayName = Lens.lens (\VirtualGatewayData' {virtualGatewayName} -> virtualGatewayName) (\s@VirtualGatewayData' {} a -> s {virtualGatewayName = a} :: VirtualGatewayData)++instance Data.FromJSON VirtualGatewayData where+ parseJSON =+ Data.withObject+ "VirtualGatewayData"+ ( \x ->+ VirtualGatewayData'+ Prelude.<$> (x Data..: "meshName")+ Prelude.<*> (x Data..: "metadata")+ Prelude.<*> (x Data..: "spec")+ Prelude.<*> (x Data..: "status")+ Prelude.<*> (x Data..: "virtualGatewayName")+ )++instance Prelude.Hashable VirtualGatewayData where+ hashWithSalt _salt VirtualGatewayData' {..} =+ _salt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData VirtualGatewayData where+ rnf VirtualGatewayData' {..} =+ Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf virtualGatewayName
+ gen/Amazonka/AppMesh/Types/VirtualGatewayFileAccessLog.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayFileAccessLog+-- 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.AppMesh.Types.VirtualGatewayFileAccessLog where++import Amazonka.AppMesh.Types.LoggingFormat+import qualified 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 object that represents an access log file.+--+-- /See:/ 'newVirtualGatewayFileAccessLog' smart constructor.+data VirtualGatewayFileAccessLog = VirtualGatewayFileAccessLog'+ { -- | The specified format for the virtual gateway access logs. It can be+ -- either @json_format@ or @text_format@.+ format :: Prelude.Maybe LoggingFormat,+ -- | The file path to write access logs to. You can use @\/dev\/stdout@ to+ -- send access logs to standard out and configure your Envoy container to+ -- use a log driver, such as @awslogs@, to export the access logs to a log+ -- storage service such as Amazon CloudWatch Logs. You can also specify a+ -- path in the Envoy container\'s file system to write the files to disk.+ path :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayFileAccessLog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'format', 'virtualGatewayFileAccessLog_format' - The specified format for the virtual gateway access logs. It can be+-- either @json_format@ or @text_format@.+--+-- 'path', 'virtualGatewayFileAccessLog_path' - The file path to write access logs to. You can use @\/dev\/stdout@ to+-- send access logs to standard out and configure your Envoy container to+-- use a log driver, such as @awslogs@, to export the access logs to a log+-- storage service such as Amazon CloudWatch Logs. You can also specify a+-- path in the Envoy container\'s file system to write the files to disk.+newVirtualGatewayFileAccessLog ::+ -- | 'path'+ Prelude.Text ->+ VirtualGatewayFileAccessLog+newVirtualGatewayFileAccessLog pPath_ =+ VirtualGatewayFileAccessLog'+ { format =+ Prelude.Nothing,+ path = pPath_+ }++-- | The specified format for the virtual gateway access logs. It can be+-- either @json_format@ or @text_format@.+virtualGatewayFileAccessLog_format :: Lens.Lens' VirtualGatewayFileAccessLog (Prelude.Maybe LoggingFormat)+virtualGatewayFileAccessLog_format = Lens.lens (\VirtualGatewayFileAccessLog' {format} -> format) (\s@VirtualGatewayFileAccessLog' {} a -> s {format = a} :: VirtualGatewayFileAccessLog)++-- | The file path to write access logs to. You can use @\/dev\/stdout@ to+-- send access logs to standard out and configure your Envoy container to+-- use a log driver, such as @awslogs@, to export the access logs to a log+-- storage service such as Amazon CloudWatch Logs. You can also specify a+-- path in the Envoy container\'s file system to write the files to disk.+virtualGatewayFileAccessLog_path :: Lens.Lens' VirtualGatewayFileAccessLog Prelude.Text+virtualGatewayFileAccessLog_path = Lens.lens (\VirtualGatewayFileAccessLog' {path} -> path) (\s@VirtualGatewayFileAccessLog' {} a -> s {path = a} :: VirtualGatewayFileAccessLog)++instance Data.FromJSON VirtualGatewayFileAccessLog where+ parseJSON =+ Data.withObject+ "VirtualGatewayFileAccessLog"+ ( \x ->+ VirtualGatewayFileAccessLog'+ Prelude.<$> (x Data..:? "format")+ Prelude.<*> (x Data..: "path")+ )++instance Prelude.Hashable VirtualGatewayFileAccessLog where+ hashWithSalt _salt VirtualGatewayFileAccessLog' {..} =+ _salt+ `Prelude.hashWithSalt` format+ `Prelude.hashWithSalt` path++instance Prelude.NFData VirtualGatewayFileAccessLog where+ rnf VirtualGatewayFileAccessLog' {..} =+ Prelude.rnf format `Prelude.seq` Prelude.rnf path++instance Data.ToJSON VirtualGatewayFileAccessLog where+ toJSON VirtualGatewayFileAccessLog' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("format" Data..=) Prelude.<$> format,+ Prelude.Just ("path" Data..= path)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayGrpcConnectionPool.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayGrpcConnectionPool+-- 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.AppMesh.Types.VirtualGatewayGrpcConnectionPool 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++-- | An object that represents a type of connection pool.+--+-- /See:/ 'newVirtualGatewayGrpcConnectionPool' smart constructor.+data VirtualGatewayGrpcConnectionPool = VirtualGatewayGrpcConnectionPool'+ { -- | Maximum number of inflight requests Envoy can concurrently support+ -- across hosts in upstream cluster.+ maxRequests :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayGrpcConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxRequests', 'virtualGatewayGrpcConnectionPool_maxRequests' - Maximum number of inflight requests Envoy can concurrently support+-- across hosts in upstream cluster.+newVirtualGatewayGrpcConnectionPool ::+ -- | 'maxRequests'+ Prelude.Natural ->+ VirtualGatewayGrpcConnectionPool+newVirtualGatewayGrpcConnectionPool pMaxRequests_ =+ VirtualGatewayGrpcConnectionPool'+ { maxRequests =+ pMaxRequests_+ }++-- | Maximum number of inflight requests Envoy can concurrently support+-- across hosts in upstream cluster.+virtualGatewayGrpcConnectionPool_maxRequests :: Lens.Lens' VirtualGatewayGrpcConnectionPool Prelude.Natural+virtualGatewayGrpcConnectionPool_maxRequests = Lens.lens (\VirtualGatewayGrpcConnectionPool' {maxRequests} -> maxRequests) (\s@VirtualGatewayGrpcConnectionPool' {} a -> s {maxRequests = a} :: VirtualGatewayGrpcConnectionPool)++instance+ Data.FromJSON+ VirtualGatewayGrpcConnectionPool+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayGrpcConnectionPool"+ ( \x ->+ VirtualGatewayGrpcConnectionPool'+ Prelude.<$> (x Data..: "maxRequests")+ )++instance+ Prelude.Hashable+ VirtualGatewayGrpcConnectionPool+ where+ hashWithSalt+ _salt+ VirtualGatewayGrpcConnectionPool' {..} =+ _salt `Prelude.hashWithSalt` maxRequests++instance+ Prelude.NFData+ VirtualGatewayGrpcConnectionPool+ where+ rnf VirtualGatewayGrpcConnectionPool' {..} =+ Prelude.rnf maxRequests++instance Data.ToJSON VirtualGatewayGrpcConnectionPool where+ toJSON VirtualGatewayGrpcConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("maxRequests" Data..= maxRequests)]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayHealthCheckPolicy.hs view
@@ -0,0 +1,214 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayHealthCheckPolicy+-- 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.AppMesh.Types.VirtualGatewayHealthCheckPolicy where++import Amazonka.AppMesh.Types.VirtualGatewayPortProtocol+import qualified 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 object that represents the health check policy for a virtual+-- gateway\'s listener.+--+-- /See:/ 'newVirtualGatewayHealthCheckPolicy' smart constructor.+data VirtualGatewayHealthCheckPolicy = VirtualGatewayHealthCheckPolicy'+ { -- | The destination path for the health check request. This value is only+ -- used if the specified protocol is HTTP or HTTP\/2. For any other+ -- protocol, this value is ignored.+ path :: Prelude.Maybe Prelude.Text,+ -- | The destination port for the health check request. This port must match+ -- the port defined in the PortMapping for the listener.+ port :: Prelude.Maybe Prelude.Natural,+ -- | The number of consecutive successful health checks that must occur+ -- before declaring the listener healthy.+ healthyThreshold :: Prelude.Natural,+ -- | The time period in milliseconds between each health check execution.+ intervalMillis :: Prelude.Natural,+ -- | The protocol for the health check request. If you specify @grpc@, then+ -- your service must conform to the+ -- <https://github.com/grpc/grpc/blob/master/doc/health-checking.md GRPC Health Checking Protocol>.+ protocol :: VirtualGatewayPortProtocol,+ -- | The amount of time to wait when receiving a response from the health+ -- check, in milliseconds.+ timeoutMillis :: Prelude.Natural,+ -- | The number of consecutive failed health checks that must occur before+ -- declaring a virtual gateway unhealthy.+ unhealthyThreshold :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayHealthCheckPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'path', 'virtualGatewayHealthCheckPolicy_path' - The destination path for the health check request. This value is only+-- used if the specified protocol is HTTP or HTTP\/2. For any other+-- protocol, this value is ignored.+--+-- 'port', 'virtualGatewayHealthCheckPolicy_port' - The destination port for the health check request. This port must match+-- the port defined in the PortMapping for the listener.+--+-- 'healthyThreshold', 'virtualGatewayHealthCheckPolicy_healthyThreshold' - The number of consecutive successful health checks that must occur+-- before declaring the listener healthy.+--+-- 'intervalMillis', 'virtualGatewayHealthCheckPolicy_intervalMillis' - The time period in milliseconds between each health check execution.+--+-- 'protocol', 'virtualGatewayHealthCheckPolicy_protocol' - The protocol for the health check request. If you specify @grpc@, then+-- your service must conform to the+-- <https://github.com/grpc/grpc/blob/master/doc/health-checking.md GRPC Health Checking Protocol>.+--+-- 'timeoutMillis', 'virtualGatewayHealthCheckPolicy_timeoutMillis' - The amount of time to wait when receiving a response from the health+-- check, in milliseconds.+--+-- 'unhealthyThreshold', 'virtualGatewayHealthCheckPolicy_unhealthyThreshold' - The number of consecutive failed health checks that must occur before+-- declaring a virtual gateway unhealthy.+newVirtualGatewayHealthCheckPolicy ::+ -- | 'healthyThreshold'+ Prelude.Natural ->+ -- | 'intervalMillis'+ Prelude.Natural ->+ -- | 'protocol'+ VirtualGatewayPortProtocol ->+ -- | 'timeoutMillis'+ Prelude.Natural ->+ -- | 'unhealthyThreshold'+ Prelude.Natural ->+ VirtualGatewayHealthCheckPolicy+newVirtualGatewayHealthCheckPolicy+ pHealthyThreshold_+ pIntervalMillis_+ pProtocol_+ pTimeoutMillis_+ pUnhealthyThreshold_ =+ VirtualGatewayHealthCheckPolicy'+ { path =+ Prelude.Nothing,+ port = Prelude.Nothing,+ healthyThreshold = pHealthyThreshold_,+ intervalMillis = pIntervalMillis_,+ protocol = pProtocol_,+ timeoutMillis = pTimeoutMillis_,+ unhealthyThreshold = pUnhealthyThreshold_+ }++-- | The destination path for the health check request. This value is only+-- used if the specified protocol is HTTP or HTTP\/2. For any other+-- protocol, this value is ignored.+virtualGatewayHealthCheckPolicy_path :: Lens.Lens' VirtualGatewayHealthCheckPolicy (Prelude.Maybe Prelude.Text)+virtualGatewayHealthCheckPolicy_path = Lens.lens (\VirtualGatewayHealthCheckPolicy' {path} -> path) (\s@VirtualGatewayHealthCheckPolicy' {} a -> s {path = a} :: VirtualGatewayHealthCheckPolicy)++-- | The destination port for the health check request. This port must match+-- the port defined in the PortMapping for the listener.+virtualGatewayHealthCheckPolicy_port :: Lens.Lens' VirtualGatewayHealthCheckPolicy (Prelude.Maybe Prelude.Natural)+virtualGatewayHealthCheckPolicy_port = Lens.lens (\VirtualGatewayHealthCheckPolicy' {port} -> port) (\s@VirtualGatewayHealthCheckPolicy' {} a -> s {port = a} :: VirtualGatewayHealthCheckPolicy)++-- | The number of consecutive successful health checks that must occur+-- before declaring the listener healthy.+virtualGatewayHealthCheckPolicy_healthyThreshold :: Lens.Lens' VirtualGatewayHealthCheckPolicy Prelude.Natural+virtualGatewayHealthCheckPolicy_healthyThreshold = Lens.lens (\VirtualGatewayHealthCheckPolicy' {healthyThreshold} -> healthyThreshold) (\s@VirtualGatewayHealthCheckPolicy' {} a -> s {healthyThreshold = a} :: VirtualGatewayHealthCheckPolicy)++-- | The time period in milliseconds between each health check execution.+virtualGatewayHealthCheckPolicy_intervalMillis :: Lens.Lens' VirtualGatewayHealthCheckPolicy Prelude.Natural+virtualGatewayHealthCheckPolicy_intervalMillis = Lens.lens (\VirtualGatewayHealthCheckPolicy' {intervalMillis} -> intervalMillis) (\s@VirtualGatewayHealthCheckPolicy' {} a -> s {intervalMillis = a} :: VirtualGatewayHealthCheckPolicy)++-- | The protocol for the health check request. If you specify @grpc@, then+-- your service must conform to the+-- <https://github.com/grpc/grpc/blob/master/doc/health-checking.md GRPC Health Checking Protocol>.+virtualGatewayHealthCheckPolicy_protocol :: Lens.Lens' VirtualGatewayHealthCheckPolicy VirtualGatewayPortProtocol+virtualGatewayHealthCheckPolicy_protocol = Lens.lens (\VirtualGatewayHealthCheckPolicy' {protocol} -> protocol) (\s@VirtualGatewayHealthCheckPolicy' {} a -> s {protocol = a} :: VirtualGatewayHealthCheckPolicy)++-- | The amount of time to wait when receiving a response from the health+-- check, in milliseconds.+virtualGatewayHealthCheckPolicy_timeoutMillis :: Lens.Lens' VirtualGatewayHealthCheckPolicy Prelude.Natural+virtualGatewayHealthCheckPolicy_timeoutMillis = Lens.lens (\VirtualGatewayHealthCheckPolicy' {timeoutMillis} -> timeoutMillis) (\s@VirtualGatewayHealthCheckPolicy' {} a -> s {timeoutMillis = a} :: VirtualGatewayHealthCheckPolicy)++-- | The number of consecutive failed health checks that must occur before+-- declaring a virtual gateway unhealthy.+virtualGatewayHealthCheckPolicy_unhealthyThreshold :: Lens.Lens' VirtualGatewayHealthCheckPolicy Prelude.Natural+virtualGatewayHealthCheckPolicy_unhealthyThreshold = Lens.lens (\VirtualGatewayHealthCheckPolicy' {unhealthyThreshold} -> unhealthyThreshold) (\s@VirtualGatewayHealthCheckPolicy' {} a -> s {unhealthyThreshold = a} :: VirtualGatewayHealthCheckPolicy)++instance+ Data.FromJSON+ VirtualGatewayHealthCheckPolicy+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayHealthCheckPolicy"+ ( \x ->+ VirtualGatewayHealthCheckPolicy'+ Prelude.<$> (x Data..:? "path")+ Prelude.<*> (x Data..:? "port")+ Prelude.<*> (x Data..: "healthyThreshold")+ Prelude.<*> (x Data..: "intervalMillis")+ Prelude.<*> (x Data..: "protocol")+ Prelude.<*> (x Data..: "timeoutMillis")+ Prelude.<*> (x Data..: "unhealthyThreshold")+ )++instance+ Prelude.Hashable+ VirtualGatewayHealthCheckPolicy+ where+ hashWithSalt+ _salt+ VirtualGatewayHealthCheckPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` path+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` healthyThreshold+ `Prelude.hashWithSalt` intervalMillis+ `Prelude.hashWithSalt` protocol+ `Prelude.hashWithSalt` timeoutMillis+ `Prelude.hashWithSalt` unhealthyThreshold++instance+ Prelude.NFData+ VirtualGatewayHealthCheckPolicy+ where+ rnf VirtualGatewayHealthCheckPolicy' {..} =+ Prelude.rnf path+ `Prelude.seq` Prelude.rnf port+ `Prelude.seq` Prelude.rnf healthyThreshold+ `Prelude.seq` Prelude.rnf intervalMillis+ `Prelude.seq` Prelude.rnf protocol+ `Prelude.seq` Prelude.rnf timeoutMillis+ `Prelude.seq` Prelude.rnf unhealthyThreshold++instance Data.ToJSON VirtualGatewayHealthCheckPolicy where+ toJSON VirtualGatewayHealthCheckPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("path" Data..=) Prelude.<$> path,+ ("port" Data..=) Prelude.<$> port,+ Prelude.Just+ ("healthyThreshold" Data..= healthyThreshold),+ Prelude.Just+ ("intervalMillis" Data..= intervalMillis),+ Prelude.Just ("protocol" Data..= protocol),+ Prelude.Just ("timeoutMillis" Data..= timeoutMillis),+ Prelude.Just+ ("unhealthyThreshold" Data..= unhealthyThreshold)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayHttp2ConnectionPool.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayHttp2ConnectionPool+-- 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.AppMesh.Types.VirtualGatewayHttp2ConnectionPool 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++-- | An object that represents a type of connection pool.+--+-- /See:/ 'newVirtualGatewayHttp2ConnectionPool' smart constructor.+data VirtualGatewayHttp2ConnectionPool = VirtualGatewayHttp2ConnectionPool'+ { -- | Maximum number of inflight requests Envoy can concurrently support+ -- across hosts in upstream cluster.+ maxRequests :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayHttp2ConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxRequests', 'virtualGatewayHttp2ConnectionPool_maxRequests' - Maximum number of inflight requests Envoy can concurrently support+-- across hosts in upstream cluster.+newVirtualGatewayHttp2ConnectionPool ::+ -- | 'maxRequests'+ Prelude.Natural ->+ VirtualGatewayHttp2ConnectionPool+newVirtualGatewayHttp2ConnectionPool pMaxRequests_ =+ VirtualGatewayHttp2ConnectionPool'+ { maxRequests =+ pMaxRequests_+ }++-- | Maximum number of inflight requests Envoy can concurrently support+-- across hosts in upstream cluster.+virtualGatewayHttp2ConnectionPool_maxRequests :: Lens.Lens' VirtualGatewayHttp2ConnectionPool Prelude.Natural+virtualGatewayHttp2ConnectionPool_maxRequests = Lens.lens (\VirtualGatewayHttp2ConnectionPool' {maxRequests} -> maxRequests) (\s@VirtualGatewayHttp2ConnectionPool' {} a -> s {maxRequests = a} :: VirtualGatewayHttp2ConnectionPool)++instance+ Data.FromJSON+ VirtualGatewayHttp2ConnectionPool+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayHttp2ConnectionPool"+ ( \x ->+ VirtualGatewayHttp2ConnectionPool'+ Prelude.<$> (x Data..: "maxRequests")+ )++instance+ Prelude.Hashable+ VirtualGatewayHttp2ConnectionPool+ where+ hashWithSalt+ _salt+ VirtualGatewayHttp2ConnectionPool' {..} =+ _salt `Prelude.hashWithSalt` maxRequests++instance+ Prelude.NFData+ VirtualGatewayHttp2ConnectionPool+ where+ rnf VirtualGatewayHttp2ConnectionPool' {..} =+ Prelude.rnf maxRequests++instance+ Data.ToJSON+ VirtualGatewayHttp2ConnectionPool+ where+ toJSON VirtualGatewayHttp2ConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("maxRequests" Data..= maxRequests)]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayHttpConnectionPool.hs view
@@ -0,0 +1,115 @@+{-# 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.AppMesh.Types.VirtualGatewayHttpConnectionPool+-- 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.AppMesh.Types.VirtualGatewayHttpConnectionPool 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++-- | An object that represents a type of connection pool.+--+-- /See:/ 'newVirtualGatewayHttpConnectionPool' smart constructor.+data VirtualGatewayHttpConnectionPool = VirtualGatewayHttpConnectionPool'+ { -- | Number of overflowing requests after @max_connections@ Envoy will queue+ -- to upstream cluster.+ maxPendingRequests :: Prelude.Maybe Prelude.Natural,+ -- | Maximum number of outbound TCP connections Envoy can establish+ -- concurrently with all hosts in upstream cluster.+ maxConnections :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayHttpConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxPendingRequests', 'virtualGatewayHttpConnectionPool_maxPendingRequests' - Number of overflowing requests after @max_connections@ Envoy will queue+-- to upstream cluster.+--+-- 'maxConnections', 'virtualGatewayHttpConnectionPool_maxConnections' - Maximum number of outbound TCP connections Envoy can establish+-- concurrently with all hosts in upstream cluster.+newVirtualGatewayHttpConnectionPool ::+ -- | 'maxConnections'+ Prelude.Natural ->+ VirtualGatewayHttpConnectionPool+newVirtualGatewayHttpConnectionPool pMaxConnections_ =+ VirtualGatewayHttpConnectionPool'+ { maxPendingRequests =+ Prelude.Nothing,+ maxConnections = pMaxConnections_+ }++-- | Number of overflowing requests after @max_connections@ Envoy will queue+-- to upstream cluster.+virtualGatewayHttpConnectionPool_maxPendingRequests :: Lens.Lens' VirtualGatewayHttpConnectionPool (Prelude.Maybe Prelude.Natural)+virtualGatewayHttpConnectionPool_maxPendingRequests = Lens.lens (\VirtualGatewayHttpConnectionPool' {maxPendingRequests} -> maxPendingRequests) (\s@VirtualGatewayHttpConnectionPool' {} a -> s {maxPendingRequests = a} :: VirtualGatewayHttpConnectionPool)++-- | Maximum number of outbound TCP connections Envoy can establish+-- concurrently with all hosts in upstream cluster.+virtualGatewayHttpConnectionPool_maxConnections :: Lens.Lens' VirtualGatewayHttpConnectionPool Prelude.Natural+virtualGatewayHttpConnectionPool_maxConnections = Lens.lens (\VirtualGatewayHttpConnectionPool' {maxConnections} -> maxConnections) (\s@VirtualGatewayHttpConnectionPool' {} a -> s {maxConnections = a} :: VirtualGatewayHttpConnectionPool)++instance+ Data.FromJSON+ VirtualGatewayHttpConnectionPool+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayHttpConnectionPool"+ ( \x ->+ VirtualGatewayHttpConnectionPool'+ Prelude.<$> (x Data..:? "maxPendingRequests")+ Prelude.<*> (x Data..: "maxConnections")+ )++instance+ Prelude.Hashable+ VirtualGatewayHttpConnectionPool+ where+ hashWithSalt+ _salt+ VirtualGatewayHttpConnectionPool' {..} =+ _salt+ `Prelude.hashWithSalt` maxPendingRequests+ `Prelude.hashWithSalt` maxConnections++instance+ Prelude.NFData+ VirtualGatewayHttpConnectionPool+ where+ rnf VirtualGatewayHttpConnectionPool' {..} =+ Prelude.rnf maxPendingRequests+ `Prelude.seq` Prelude.rnf maxConnections++instance Data.ToJSON VirtualGatewayHttpConnectionPool where+ toJSON VirtualGatewayHttpConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxPendingRequests" Data..=)+ Prelude.<$> maxPendingRequests,+ Prelude.Just+ ("maxConnections" Data..= maxConnections)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListener.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.AppMesh.Types.VirtualGatewayListener+-- 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.AppMesh.Types.VirtualGatewayListener where++import Amazonka.AppMesh.Types.VirtualGatewayConnectionPool+import Amazonka.AppMesh.Types.VirtualGatewayHealthCheckPolicy+import Amazonka.AppMesh.Types.VirtualGatewayListenerTls+import Amazonka.AppMesh.Types.VirtualGatewayPortMapping+import qualified 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 object that represents a listener for a virtual gateway.+--+-- /See:/ 'newVirtualGatewayListener' smart constructor.+data VirtualGatewayListener = VirtualGatewayListener'+ { -- | The connection pool information for the virtual gateway listener.+ connectionPool :: Prelude.Maybe VirtualGatewayConnectionPool,+ -- | The health check information for the listener.+ healthCheck :: Prelude.Maybe VirtualGatewayHealthCheckPolicy,+ -- | A reference to an object that represents the Transport Layer Security+ -- (TLS) properties for the listener.+ tls :: Prelude.Maybe VirtualGatewayListenerTls,+ -- | The port mapping information for the listener.+ portMapping :: VirtualGatewayPortMapping+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'connectionPool', 'virtualGatewayListener_connectionPool' - The connection pool information for the virtual gateway listener.+--+-- 'healthCheck', 'virtualGatewayListener_healthCheck' - The health check information for the listener.+--+-- 'tls', 'virtualGatewayListener_tls' - A reference to an object that represents the Transport Layer Security+-- (TLS) properties for the listener.+--+-- 'portMapping', 'virtualGatewayListener_portMapping' - The port mapping information for the listener.+newVirtualGatewayListener ::+ -- | 'portMapping'+ VirtualGatewayPortMapping ->+ VirtualGatewayListener+newVirtualGatewayListener pPortMapping_ =+ VirtualGatewayListener'+ { connectionPool =+ Prelude.Nothing,+ healthCheck = Prelude.Nothing,+ tls = Prelude.Nothing,+ portMapping = pPortMapping_+ }++-- | The connection pool information for the virtual gateway listener.+virtualGatewayListener_connectionPool :: Lens.Lens' VirtualGatewayListener (Prelude.Maybe VirtualGatewayConnectionPool)+virtualGatewayListener_connectionPool = Lens.lens (\VirtualGatewayListener' {connectionPool} -> connectionPool) (\s@VirtualGatewayListener' {} a -> s {connectionPool = a} :: VirtualGatewayListener)++-- | The health check information for the listener.+virtualGatewayListener_healthCheck :: Lens.Lens' VirtualGatewayListener (Prelude.Maybe VirtualGatewayHealthCheckPolicy)+virtualGatewayListener_healthCheck = Lens.lens (\VirtualGatewayListener' {healthCheck} -> healthCheck) (\s@VirtualGatewayListener' {} a -> s {healthCheck = a} :: VirtualGatewayListener)++-- | A reference to an object that represents the Transport Layer Security+-- (TLS) properties for the listener.+virtualGatewayListener_tls :: Lens.Lens' VirtualGatewayListener (Prelude.Maybe VirtualGatewayListenerTls)+virtualGatewayListener_tls = Lens.lens (\VirtualGatewayListener' {tls} -> tls) (\s@VirtualGatewayListener' {} a -> s {tls = a} :: VirtualGatewayListener)++-- | The port mapping information for the listener.+virtualGatewayListener_portMapping :: Lens.Lens' VirtualGatewayListener VirtualGatewayPortMapping+virtualGatewayListener_portMapping = Lens.lens (\VirtualGatewayListener' {portMapping} -> portMapping) (\s@VirtualGatewayListener' {} a -> s {portMapping = a} :: VirtualGatewayListener)++instance Data.FromJSON VirtualGatewayListener where+ parseJSON =+ Data.withObject+ "VirtualGatewayListener"+ ( \x ->+ VirtualGatewayListener'+ Prelude.<$> (x Data..:? "connectionPool")+ Prelude.<*> (x Data..:? "healthCheck")+ Prelude.<*> (x Data..:? "tls")+ Prelude.<*> (x Data..: "portMapping")+ )++instance Prelude.Hashable VirtualGatewayListener where+ hashWithSalt _salt VirtualGatewayListener' {..} =+ _salt+ `Prelude.hashWithSalt` connectionPool+ `Prelude.hashWithSalt` healthCheck+ `Prelude.hashWithSalt` tls+ `Prelude.hashWithSalt` portMapping++instance Prelude.NFData VirtualGatewayListener where+ rnf VirtualGatewayListener' {..} =+ Prelude.rnf connectionPool+ `Prelude.seq` Prelude.rnf healthCheck+ `Prelude.seq` Prelude.rnf tls+ `Prelude.seq` Prelude.rnf portMapping++instance Data.ToJSON VirtualGatewayListener where+ toJSON VirtualGatewayListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("connectionPool" Data..=)+ Prelude.<$> connectionPool,+ ("healthCheck" Data..=) Prelude.<$> healthCheck,+ ("tls" Data..=) Prelude.<$> tls,+ Prelude.Just ("portMapping" Data..= portMapping)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTls.hs view
@@ -0,0 +1,139 @@+{-# 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.AppMesh.Types.VirtualGatewayListenerTls+-- 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.AppMesh.Types.VirtualGatewayListenerTls where++import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsMode+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContext+import qualified 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 object that represents the Transport Layer Security (TLS) properties+-- for a listener.+--+-- /See:/ 'newVirtualGatewayListenerTls' smart constructor.+data VirtualGatewayListenerTls = VirtualGatewayListenerTls'+ { -- | A reference to an object that represents a virtual gateway\'s+ -- listener\'s Transport Layer Security (TLS) validation context.+ validation :: Prelude.Maybe VirtualGatewayListenerTlsValidationContext,+ -- | An object that represents a Transport Layer Security (TLS) certificate.+ certificate :: VirtualGatewayListenerTlsCertificate,+ -- | Specify one of the following modes.+ --+ -- - ____STRICT – Listener only accepts connections with TLS enabled.+ --+ -- - ____PERMISSIVE – Listener accepts connections with or without TLS+ -- enabled.+ --+ -- - ____DISABLED – Listener only accepts connections without TLS.+ mode :: VirtualGatewayListenerTlsMode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayListenerTls' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'validation', 'virtualGatewayListenerTls_validation' - A reference to an object that represents a virtual gateway\'s+-- listener\'s Transport Layer Security (TLS) validation context.+--+-- 'certificate', 'virtualGatewayListenerTls_certificate' - An object that represents a Transport Layer Security (TLS) certificate.+--+-- 'mode', 'virtualGatewayListenerTls_mode' - Specify one of the following modes.+--+-- - ____STRICT – Listener only accepts connections with TLS enabled.+--+-- - ____PERMISSIVE – Listener accepts connections with or without TLS+-- enabled.+--+-- - ____DISABLED – Listener only accepts connections without TLS.+newVirtualGatewayListenerTls ::+ -- | 'certificate'+ VirtualGatewayListenerTlsCertificate ->+ -- | 'mode'+ VirtualGatewayListenerTlsMode ->+ VirtualGatewayListenerTls+newVirtualGatewayListenerTls pCertificate_ pMode_ =+ VirtualGatewayListenerTls'+ { validation =+ Prelude.Nothing,+ certificate = pCertificate_,+ mode = pMode_+ }++-- | A reference to an object that represents a virtual gateway\'s+-- listener\'s Transport Layer Security (TLS) validation context.+virtualGatewayListenerTls_validation :: Lens.Lens' VirtualGatewayListenerTls (Prelude.Maybe VirtualGatewayListenerTlsValidationContext)+virtualGatewayListenerTls_validation = Lens.lens (\VirtualGatewayListenerTls' {validation} -> validation) (\s@VirtualGatewayListenerTls' {} a -> s {validation = a} :: VirtualGatewayListenerTls)++-- | An object that represents a Transport Layer Security (TLS) certificate.+virtualGatewayListenerTls_certificate :: Lens.Lens' VirtualGatewayListenerTls VirtualGatewayListenerTlsCertificate+virtualGatewayListenerTls_certificate = Lens.lens (\VirtualGatewayListenerTls' {certificate} -> certificate) (\s@VirtualGatewayListenerTls' {} a -> s {certificate = a} :: VirtualGatewayListenerTls)++-- | Specify one of the following modes.+--+-- - ____STRICT – Listener only accepts connections with TLS enabled.+--+-- - ____PERMISSIVE – Listener accepts connections with or without TLS+-- enabled.+--+-- - ____DISABLED – Listener only accepts connections without TLS.+virtualGatewayListenerTls_mode :: Lens.Lens' VirtualGatewayListenerTls VirtualGatewayListenerTlsMode+virtualGatewayListenerTls_mode = Lens.lens (\VirtualGatewayListenerTls' {mode} -> mode) (\s@VirtualGatewayListenerTls' {} a -> s {mode = a} :: VirtualGatewayListenerTls)++instance Data.FromJSON VirtualGatewayListenerTls where+ parseJSON =+ Data.withObject+ "VirtualGatewayListenerTls"+ ( \x ->+ VirtualGatewayListenerTls'+ Prelude.<$> (x Data..:? "validation")+ Prelude.<*> (x Data..: "certificate")+ Prelude.<*> (x Data..: "mode")+ )++instance Prelude.Hashable VirtualGatewayListenerTls where+ hashWithSalt _salt VirtualGatewayListenerTls' {..} =+ _salt+ `Prelude.hashWithSalt` validation+ `Prelude.hashWithSalt` certificate+ `Prelude.hashWithSalt` mode++instance Prelude.NFData VirtualGatewayListenerTls where+ rnf VirtualGatewayListenerTls' {..} =+ Prelude.rnf validation+ `Prelude.seq` Prelude.rnf certificate+ `Prelude.seq` Prelude.rnf mode++instance Data.ToJSON VirtualGatewayListenerTls where+ toJSON VirtualGatewayListenerTls' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("validation" Data..=) Prelude.<$> validation,+ Prelude.Just ("certificate" Data..= certificate),+ Prelude.Just ("mode" Data..= mode)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsAcmCertificate.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayListenerTlsAcmCertificate+-- 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.AppMesh.Types.VirtualGatewayListenerTlsAcmCertificate 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++-- | An object that represents an Certificate Manager certificate.+--+-- /See:/ 'newVirtualGatewayListenerTlsAcmCertificate' smart constructor.+data VirtualGatewayListenerTlsAcmCertificate = VirtualGatewayListenerTlsAcmCertificate'+ { -- | The Amazon Resource Name (ARN) for the certificate. The certificate must+ -- meet specific requirements and you must have proxy authorization+ -- enabled. For more information, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites Transport Layer Security (TLS)>.+ certificateArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayListenerTlsAcmCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateArn', 'virtualGatewayListenerTlsAcmCertificate_certificateArn' - The Amazon Resource Name (ARN) for the certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites Transport Layer Security (TLS)>.+newVirtualGatewayListenerTlsAcmCertificate ::+ -- | 'certificateArn'+ Prelude.Text ->+ VirtualGatewayListenerTlsAcmCertificate+newVirtualGatewayListenerTlsAcmCertificate+ pCertificateArn_ =+ VirtualGatewayListenerTlsAcmCertificate'+ { certificateArn =+ pCertificateArn_+ }++-- | The Amazon Resource Name (ARN) for the certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites Transport Layer Security (TLS)>.+virtualGatewayListenerTlsAcmCertificate_certificateArn :: Lens.Lens' VirtualGatewayListenerTlsAcmCertificate Prelude.Text+virtualGatewayListenerTlsAcmCertificate_certificateArn = Lens.lens (\VirtualGatewayListenerTlsAcmCertificate' {certificateArn} -> certificateArn) (\s@VirtualGatewayListenerTlsAcmCertificate' {} a -> s {certificateArn = a} :: VirtualGatewayListenerTlsAcmCertificate)++instance+ Data.FromJSON+ VirtualGatewayListenerTlsAcmCertificate+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayListenerTlsAcmCertificate"+ ( \x ->+ VirtualGatewayListenerTlsAcmCertificate'+ Prelude.<$> (x Data..: "certificateArn")+ )++instance+ Prelude.Hashable+ VirtualGatewayListenerTlsAcmCertificate+ where+ hashWithSalt+ _salt+ VirtualGatewayListenerTlsAcmCertificate' {..} =+ _salt `Prelude.hashWithSalt` certificateArn++instance+ Prelude.NFData+ VirtualGatewayListenerTlsAcmCertificate+ where+ rnf VirtualGatewayListenerTlsAcmCertificate' {..} =+ Prelude.rnf certificateArn++instance+ Data.ToJSON+ VirtualGatewayListenerTlsAcmCertificate+ where+ toJSON VirtualGatewayListenerTlsAcmCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("certificateArn" Data..= certificateArn)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsCertificate.hs view
@@ -0,0 +1,131 @@+{-# 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.AppMesh.Types.VirtualGatewayListenerTlsCertificate+-- 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.AppMesh.Types.VirtualGatewayListenerTlsCertificate where++import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsAcmCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsFileCertificate+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsSdsCertificate+import qualified 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 object that represents a listener\'s Transport Layer Security (TLS)+-- certificate.+--+-- /See:/ 'newVirtualGatewayListenerTlsCertificate' smart constructor.+data VirtualGatewayListenerTlsCertificate = VirtualGatewayListenerTlsCertificate'+ { -- | A reference to an object that represents an Certificate Manager+ -- certificate.+ acm :: Prelude.Maybe VirtualGatewayListenerTlsAcmCertificate,+ -- | A reference to an object that represents a local file certificate.+ file :: Prelude.Maybe VirtualGatewayListenerTlsFileCertificate,+ -- | A reference to an object that represents a virtual gateway\'s+ -- listener\'s Secret Discovery Service certificate.+ sds :: Prelude.Maybe VirtualGatewayListenerTlsSdsCertificate+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayListenerTlsCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acm', 'virtualGatewayListenerTlsCertificate_acm' - A reference to an object that represents an Certificate Manager+-- certificate.+--+-- 'file', 'virtualGatewayListenerTlsCertificate_file' - A reference to an object that represents a local file certificate.+--+-- 'sds', 'virtualGatewayListenerTlsCertificate_sds' - A reference to an object that represents a virtual gateway\'s+-- listener\'s Secret Discovery Service certificate.+newVirtualGatewayListenerTlsCertificate ::+ VirtualGatewayListenerTlsCertificate+newVirtualGatewayListenerTlsCertificate =+ VirtualGatewayListenerTlsCertificate'+ { acm =+ Prelude.Nothing,+ file = Prelude.Nothing,+ sds = Prelude.Nothing+ }++-- | A reference to an object that represents an Certificate Manager+-- certificate.+virtualGatewayListenerTlsCertificate_acm :: Lens.Lens' VirtualGatewayListenerTlsCertificate (Prelude.Maybe VirtualGatewayListenerTlsAcmCertificate)+virtualGatewayListenerTlsCertificate_acm = Lens.lens (\VirtualGatewayListenerTlsCertificate' {acm} -> acm) (\s@VirtualGatewayListenerTlsCertificate' {} a -> s {acm = a} :: VirtualGatewayListenerTlsCertificate)++-- | A reference to an object that represents a local file certificate.+virtualGatewayListenerTlsCertificate_file :: Lens.Lens' VirtualGatewayListenerTlsCertificate (Prelude.Maybe VirtualGatewayListenerTlsFileCertificate)+virtualGatewayListenerTlsCertificate_file = Lens.lens (\VirtualGatewayListenerTlsCertificate' {file} -> file) (\s@VirtualGatewayListenerTlsCertificate' {} a -> s {file = a} :: VirtualGatewayListenerTlsCertificate)++-- | A reference to an object that represents a virtual gateway\'s+-- listener\'s Secret Discovery Service certificate.+virtualGatewayListenerTlsCertificate_sds :: Lens.Lens' VirtualGatewayListenerTlsCertificate (Prelude.Maybe VirtualGatewayListenerTlsSdsCertificate)+virtualGatewayListenerTlsCertificate_sds = Lens.lens (\VirtualGatewayListenerTlsCertificate' {sds} -> sds) (\s@VirtualGatewayListenerTlsCertificate' {} a -> s {sds = a} :: VirtualGatewayListenerTlsCertificate)++instance+ Data.FromJSON+ VirtualGatewayListenerTlsCertificate+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayListenerTlsCertificate"+ ( \x ->+ VirtualGatewayListenerTlsCertificate'+ Prelude.<$> (x Data..:? "acm")+ Prelude.<*> (x Data..:? "file")+ Prelude.<*> (x Data..:? "sds")+ )++instance+ Prelude.Hashable+ VirtualGatewayListenerTlsCertificate+ where+ hashWithSalt+ _salt+ VirtualGatewayListenerTlsCertificate' {..} =+ _salt+ `Prelude.hashWithSalt` acm+ `Prelude.hashWithSalt` file+ `Prelude.hashWithSalt` sds++instance+ Prelude.NFData+ VirtualGatewayListenerTlsCertificate+ where+ rnf VirtualGatewayListenerTlsCertificate' {..} =+ Prelude.rnf acm+ `Prelude.seq` Prelude.rnf file+ `Prelude.seq` Prelude.rnf sds++instance+ Data.ToJSON+ VirtualGatewayListenerTlsCertificate+ where+ toJSON VirtualGatewayListenerTlsCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("acm" Data..=) Prelude.<$> acm,+ ("file" Data..=) Prelude.<$> file,+ ("sds" Data..=) Prelude.<$> sds+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsFileCertificate.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayListenerTlsFileCertificate+-- 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.AppMesh.Types.VirtualGatewayListenerTlsFileCertificate 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++-- | An object that represents a local file certificate. The certificate must+-- meet specific requirements and you must have proxy authorization+-- enabled. For more information, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites Transport Layer Security (TLS)>.+--+-- /See:/ 'newVirtualGatewayListenerTlsFileCertificate' smart constructor.+data VirtualGatewayListenerTlsFileCertificate = VirtualGatewayListenerTlsFileCertificate'+ { -- | The certificate chain for the certificate.+ certificateChain :: Prelude.Text,+ -- | The private key for a certificate stored on the file system of the mesh+ -- endpoint that the proxy is running on.+ privateKey :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayListenerTlsFileCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateChain', 'virtualGatewayListenerTlsFileCertificate_certificateChain' - The certificate chain for the certificate.+--+-- 'privateKey', 'virtualGatewayListenerTlsFileCertificate_privateKey' - The private key for a certificate stored on the file system of the mesh+-- endpoint that the proxy is running on.+newVirtualGatewayListenerTlsFileCertificate ::+ -- | 'certificateChain'+ Prelude.Text ->+ -- | 'privateKey'+ Prelude.Text ->+ VirtualGatewayListenerTlsFileCertificate+newVirtualGatewayListenerTlsFileCertificate+ pCertificateChain_+ pPrivateKey_ =+ VirtualGatewayListenerTlsFileCertificate'+ { certificateChain =+ pCertificateChain_,+ privateKey = pPrivateKey_+ }++-- | The certificate chain for the certificate.+virtualGatewayListenerTlsFileCertificate_certificateChain :: Lens.Lens' VirtualGatewayListenerTlsFileCertificate Prelude.Text+virtualGatewayListenerTlsFileCertificate_certificateChain = Lens.lens (\VirtualGatewayListenerTlsFileCertificate' {certificateChain} -> certificateChain) (\s@VirtualGatewayListenerTlsFileCertificate' {} a -> s {certificateChain = a} :: VirtualGatewayListenerTlsFileCertificate)++-- | The private key for a certificate stored on the file system of the mesh+-- endpoint that the proxy is running on.+virtualGatewayListenerTlsFileCertificate_privateKey :: Lens.Lens' VirtualGatewayListenerTlsFileCertificate Prelude.Text+virtualGatewayListenerTlsFileCertificate_privateKey = Lens.lens (\VirtualGatewayListenerTlsFileCertificate' {privateKey} -> privateKey) (\s@VirtualGatewayListenerTlsFileCertificate' {} a -> s {privateKey = a} :: VirtualGatewayListenerTlsFileCertificate)++instance+ Data.FromJSON+ VirtualGatewayListenerTlsFileCertificate+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayListenerTlsFileCertificate"+ ( \x ->+ VirtualGatewayListenerTlsFileCertificate'+ Prelude.<$> (x Data..: "certificateChain")+ Prelude.<*> (x Data..: "privateKey")+ )++instance+ Prelude.Hashable+ VirtualGatewayListenerTlsFileCertificate+ where+ hashWithSalt+ _salt+ VirtualGatewayListenerTlsFileCertificate' {..} =+ _salt+ `Prelude.hashWithSalt` certificateChain+ `Prelude.hashWithSalt` privateKey++instance+ Prelude.NFData+ VirtualGatewayListenerTlsFileCertificate+ where+ rnf VirtualGatewayListenerTlsFileCertificate' {..} =+ Prelude.rnf certificateChain+ `Prelude.seq` Prelude.rnf privateKey++instance+ Data.ToJSON+ VirtualGatewayListenerTlsFileCertificate+ where+ toJSON VirtualGatewayListenerTlsFileCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("certificateChain" Data..= certificateChain),+ Prelude.Just ("privateKey" Data..= privateKey)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsMode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayListenerTlsMode+-- 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.AppMesh.Types.VirtualGatewayListenerTlsMode+ ( VirtualGatewayListenerTlsMode+ ( ..,+ VirtualGatewayListenerTlsMode_DISABLED,+ VirtualGatewayListenerTlsMode_PERMISSIVE,+ VirtualGatewayListenerTlsMode_STRICT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VirtualGatewayListenerTlsMode = VirtualGatewayListenerTlsMode'+ { fromVirtualGatewayListenerTlsMode ::+ 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 VirtualGatewayListenerTlsMode_DISABLED :: VirtualGatewayListenerTlsMode+pattern VirtualGatewayListenerTlsMode_DISABLED = VirtualGatewayListenerTlsMode' "DISABLED"++pattern VirtualGatewayListenerTlsMode_PERMISSIVE :: VirtualGatewayListenerTlsMode+pattern VirtualGatewayListenerTlsMode_PERMISSIVE = VirtualGatewayListenerTlsMode' "PERMISSIVE"++pattern VirtualGatewayListenerTlsMode_STRICT :: VirtualGatewayListenerTlsMode+pattern VirtualGatewayListenerTlsMode_STRICT = VirtualGatewayListenerTlsMode' "STRICT"++{-# COMPLETE+ VirtualGatewayListenerTlsMode_DISABLED,+ VirtualGatewayListenerTlsMode_PERMISSIVE,+ VirtualGatewayListenerTlsMode_STRICT,+ VirtualGatewayListenerTlsMode'+ #-}
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsSdsCertificate.hs view
@@ -0,0 +1,109 @@+{-# 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.AppMesh.Types.VirtualGatewayListenerTlsSdsCertificate+-- 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.AppMesh.Types.VirtualGatewayListenerTlsSdsCertificate 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++-- | An object that represents the virtual gateway\'s listener\'s Secret+-- Discovery Service certificate.The proxy must be configured with a local+-- SDS provider via a Unix Domain Socket. See App+-- Mesh<https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html TLS documentation>+-- for more info.+--+-- /See:/ 'newVirtualGatewayListenerTlsSdsCertificate' smart constructor.+data VirtualGatewayListenerTlsSdsCertificate = VirtualGatewayListenerTlsSdsCertificate'+ { -- | A reference to an object that represents the name of the secret secret+ -- requested from the Secret Discovery Service provider representing+ -- Transport Layer Security (TLS) materials like a certificate or+ -- certificate chain.+ secretName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayListenerTlsSdsCertificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'secretName', 'virtualGatewayListenerTlsSdsCertificate_secretName' - A reference to an object that represents the name of the secret secret+-- requested from the Secret Discovery Service provider representing+-- Transport Layer Security (TLS) materials like a certificate or+-- certificate chain.+newVirtualGatewayListenerTlsSdsCertificate ::+ -- | 'secretName'+ Prelude.Text ->+ VirtualGatewayListenerTlsSdsCertificate+newVirtualGatewayListenerTlsSdsCertificate+ pSecretName_ =+ VirtualGatewayListenerTlsSdsCertificate'+ { secretName =+ pSecretName_+ }++-- | A reference to an object that represents the name of the secret secret+-- requested from the Secret Discovery Service provider representing+-- Transport Layer Security (TLS) materials like a certificate or+-- certificate chain.+virtualGatewayListenerTlsSdsCertificate_secretName :: Lens.Lens' VirtualGatewayListenerTlsSdsCertificate Prelude.Text+virtualGatewayListenerTlsSdsCertificate_secretName = Lens.lens (\VirtualGatewayListenerTlsSdsCertificate' {secretName} -> secretName) (\s@VirtualGatewayListenerTlsSdsCertificate' {} a -> s {secretName = a} :: VirtualGatewayListenerTlsSdsCertificate)++instance+ Data.FromJSON+ VirtualGatewayListenerTlsSdsCertificate+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayListenerTlsSdsCertificate"+ ( \x ->+ VirtualGatewayListenerTlsSdsCertificate'+ Prelude.<$> (x Data..: "secretName")+ )++instance+ Prelude.Hashable+ VirtualGatewayListenerTlsSdsCertificate+ where+ hashWithSalt+ _salt+ VirtualGatewayListenerTlsSdsCertificate' {..} =+ _salt `Prelude.hashWithSalt` secretName++instance+ Prelude.NFData+ VirtualGatewayListenerTlsSdsCertificate+ where+ rnf VirtualGatewayListenerTlsSdsCertificate' {..} =+ Prelude.rnf secretName++instance+ Data.ToJSON+ VirtualGatewayListenerTlsSdsCertificate+ where+ toJSON VirtualGatewayListenerTlsSdsCertificate' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("secretName" Data..= secretName)]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsValidationContext.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContext+-- 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.AppMesh.Types.VirtualGatewayListenerTlsValidationContext where++import Amazonka.AppMesh.Types.SubjectAlternativeNames+import Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContextTrust+import qualified 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 object that represents a virtual gateway\'s listener\'s Transport+-- Layer Security (TLS) validation context.+--+-- /See:/ 'newVirtualGatewayListenerTlsValidationContext' smart constructor.+data VirtualGatewayListenerTlsValidationContext = VirtualGatewayListenerTlsValidationContext'+ { -- | A reference to an object that represents the SANs for a virtual gateway+ -- listener\'s Transport Layer Security (TLS) validation context.+ subjectAlternativeNames :: Prelude.Maybe SubjectAlternativeNames,+ -- | A reference to where to retrieve the trust chain when validating a+ -- peer’s Transport Layer Security (TLS) certificate.+ trust :: VirtualGatewayListenerTlsValidationContextTrust+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayListenerTlsValidationContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subjectAlternativeNames', 'virtualGatewayListenerTlsValidationContext_subjectAlternativeNames' - A reference to an object that represents the SANs for a virtual gateway+-- listener\'s Transport Layer Security (TLS) validation context.+--+-- 'trust', 'virtualGatewayListenerTlsValidationContext_trust' - A reference to where to retrieve the trust chain when validating a+-- peer’s Transport Layer Security (TLS) certificate.+newVirtualGatewayListenerTlsValidationContext ::+ -- | 'trust'+ VirtualGatewayListenerTlsValidationContextTrust ->+ VirtualGatewayListenerTlsValidationContext+newVirtualGatewayListenerTlsValidationContext pTrust_ =+ VirtualGatewayListenerTlsValidationContext'+ { subjectAlternativeNames =+ Prelude.Nothing,+ trust = pTrust_+ }++-- | A reference to an object that represents the SANs for a virtual gateway+-- listener\'s Transport Layer Security (TLS) validation context.+virtualGatewayListenerTlsValidationContext_subjectAlternativeNames :: Lens.Lens' VirtualGatewayListenerTlsValidationContext (Prelude.Maybe SubjectAlternativeNames)+virtualGatewayListenerTlsValidationContext_subjectAlternativeNames = Lens.lens (\VirtualGatewayListenerTlsValidationContext' {subjectAlternativeNames} -> subjectAlternativeNames) (\s@VirtualGatewayListenerTlsValidationContext' {} a -> s {subjectAlternativeNames = a} :: VirtualGatewayListenerTlsValidationContext)++-- | A reference to where to retrieve the trust chain when validating a+-- peer’s Transport Layer Security (TLS) certificate.+virtualGatewayListenerTlsValidationContext_trust :: Lens.Lens' VirtualGatewayListenerTlsValidationContext VirtualGatewayListenerTlsValidationContextTrust+virtualGatewayListenerTlsValidationContext_trust = Lens.lens (\VirtualGatewayListenerTlsValidationContext' {trust} -> trust) (\s@VirtualGatewayListenerTlsValidationContext' {} a -> s {trust = a} :: VirtualGatewayListenerTlsValidationContext)++instance+ Data.FromJSON+ VirtualGatewayListenerTlsValidationContext+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayListenerTlsValidationContext"+ ( \x ->+ VirtualGatewayListenerTlsValidationContext'+ Prelude.<$> (x Data..:? "subjectAlternativeNames")+ Prelude.<*> (x Data..: "trust")+ )++instance+ Prelude.Hashable+ VirtualGatewayListenerTlsValidationContext+ where+ hashWithSalt+ _salt+ VirtualGatewayListenerTlsValidationContext' {..} =+ _salt+ `Prelude.hashWithSalt` subjectAlternativeNames+ `Prelude.hashWithSalt` trust++instance+ Prelude.NFData+ VirtualGatewayListenerTlsValidationContext+ where+ rnf VirtualGatewayListenerTlsValidationContext' {..} =+ Prelude.rnf subjectAlternativeNames+ `Prelude.seq` Prelude.rnf trust++instance+ Data.ToJSON+ VirtualGatewayListenerTlsValidationContext+ where+ toJSON+ VirtualGatewayListenerTlsValidationContext' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("subjectAlternativeNames" Data..=)+ Prelude.<$> subjectAlternativeNames,+ Prelude.Just ("trust" Data..= trust)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayListenerTlsValidationContextTrust.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayListenerTlsValidationContextTrust+-- 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.AppMesh.Types.VirtualGatewayListenerTlsValidationContextTrust where++import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextFileTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextSdsTrust+import qualified 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 object that represents a virtual gateway\'s listener\'s Transport+-- Layer Security (TLS) validation context trust.+--+-- /See:/ 'newVirtualGatewayListenerTlsValidationContextTrust' smart constructor.+data VirtualGatewayListenerTlsValidationContextTrust = VirtualGatewayListenerTlsValidationContextTrust'+ { -- | An object that represents a Transport Layer Security (TLS) validation+ -- context trust for a local file.+ file :: Prelude.Maybe VirtualGatewayTlsValidationContextFileTrust,+ -- | A reference to an object that represents a virtual gateway\'s+ -- listener\'s Transport Layer Security (TLS) Secret Discovery Service+ -- validation context trust.+ sds :: Prelude.Maybe VirtualGatewayTlsValidationContextSdsTrust+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayListenerTlsValidationContextTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'file', 'virtualGatewayListenerTlsValidationContextTrust_file' - An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+--+-- 'sds', 'virtualGatewayListenerTlsValidationContextTrust_sds' - A reference to an object that represents a virtual gateway\'s+-- listener\'s Transport Layer Security (TLS) Secret Discovery Service+-- validation context trust.+newVirtualGatewayListenerTlsValidationContextTrust ::+ VirtualGatewayListenerTlsValidationContextTrust+newVirtualGatewayListenerTlsValidationContextTrust =+ VirtualGatewayListenerTlsValidationContextTrust'+ { file =+ Prelude.Nothing,+ sds = Prelude.Nothing+ }++-- | An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+virtualGatewayListenerTlsValidationContextTrust_file :: Lens.Lens' VirtualGatewayListenerTlsValidationContextTrust (Prelude.Maybe VirtualGatewayTlsValidationContextFileTrust)+virtualGatewayListenerTlsValidationContextTrust_file = Lens.lens (\VirtualGatewayListenerTlsValidationContextTrust' {file} -> file) (\s@VirtualGatewayListenerTlsValidationContextTrust' {} a -> s {file = a} :: VirtualGatewayListenerTlsValidationContextTrust)++-- | A reference to an object that represents a virtual gateway\'s+-- listener\'s Transport Layer Security (TLS) Secret Discovery Service+-- validation context trust.+virtualGatewayListenerTlsValidationContextTrust_sds :: Lens.Lens' VirtualGatewayListenerTlsValidationContextTrust (Prelude.Maybe VirtualGatewayTlsValidationContextSdsTrust)+virtualGatewayListenerTlsValidationContextTrust_sds = Lens.lens (\VirtualGatewayListenerTlsValidationContextTrust' {sds} -> sds) (\s@VirtualGatewayListenerTlsValidationContextTrust' {} a -> s {sds = a} :: VirtualGatewayListenerTlsValidationContextTrust)++instance+ Data.FromJSON+ VirtualGatewayListenerTlsValidationContextTrust+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayListenerTlsValidationContextTrust"+ ( \x ->+ VirtualGatewayListenerTlsValidationContextTrust'+ Prelude.<$> (x Data..:? "file")+ Prelude.<*> (x Data..:? "sds")+ )++instance+ Prelude.Hashable+ VirtualGatewayListenerTlsValidationContextTrust+ where+ hashWithSalt+ _salt+ VirtualGatewayListenerTlsValidationContextTrust' {..} =+ _salt+ `Prelude.hashWithSalt` file+ `Prelude.hashWithSalt` sds++instance+ Prelude.NFData+ VirtualGatewayListenerTlsValidationContextTrust+ where+ rnf+ VirtualGatewayListenerTlsValidationContextTrust' {..} =+ Prelude.rnf file `Prelude.seq` Prelude.rnf sds++instance+ Data.ToJSON+ VirtualGatewayListenerTlsValidationContextTrust+ where+ toJSON+ VirtualGatewayListenerTlsValidationContextTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("file" Data..=) Prelude.<$> file,+ ("sds" Data..=) Prelude.<$> sds+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayLogging.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayLogging+-- 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.AppMesh.Types.VirtualGatewayLogging where++import Amazonka.AppMesh.Types.VirtualGatewayAccessLog+import qualified 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 object that represents logging information.+--+-- /See:/ 'newVirtualGatewayLogging' smart constructor.+data VirtualGatewayLogging = VirtualGatewayLogging'+ { -- | The access log configuration.+ accessLog :: Prelude.Maybe VirtualGatewayAccessLog+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayLogging' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessLog', 'virtualGatewayLogging_accessLog' - The access log configuration.+newVirtualGatewayLogging ::+ VirtualGatewayLogging+newVirtualGatewayLogging =+ VirtualGatewayLogging' {accessLog = Prelude.Nothing}++-- | The access log configuration.+virtualGatewayLogging_accessLog :: Lens.Lens' VirtualGatewayLogging (Prelude.Maybe VirtualGatewayAccessLog)+virtualGatewayLogging_accessLog = Lens.lens (\VirtualGatewayLogging' {accessLog} -> accessLog) (\s@VirtualGatewayLogging' {} a -> s {accessLog = a} :: VirtualGatewayLogging)++instance Data.FromJSON VirtualGatewayLogging where+ parseJSON =+ Data.withObject+ "VirtualGatewayLogging"+ ( \x ->+ VirtualGatewayLogging'+ Prelude.<$> (x Data..:? "accessLog")+ )++instance Prelude.Hashable VirtualGatewayLogging where+ hashWithSalt _salt VirtualGatewayLogging' {..} =+ _salt `Prelude.hashWithSalt` accessLog++instance Prelude.NFData VirtualGatewayLogging where+ rnf VirtualGatewayLogging' {..} =+ Prelude.rnf accessLog++instance Data.ToJSON VirtualGatewayLogging where+ toJSON VirtualGatewayLogging' {..} =+ Data.object+ ( Prelude.catMaybes+ [("accessLog" Data..=) Prelude.<$> accessLog]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayPortMapping.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayPortMapping+-- 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.AppMesh.Types.VirtualGatewayPortMapping where++import Amazonka.AppMesh.Types.VirtualGatewayPortProtocol+import qualified 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 object that represents a port mapping.+--+-- /See:/ 'newVirtualGatewayPortMapping' smart constructor.+data VirtualGatewayPortMapping = VirtualGatewayPortMapping'+ { -- | The port used for the port mapping. Specify one protocol.+ port :: Prelude.Natural,+ -- | The protocol used for the port mapping.+ protocol :: VirtualGatewayPortProtocol+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayPortMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'port', 'virtualGatewayPortMapping_port' - The port used for the port mapping. Specify one protocol.+--+-- 'protocol', 'virtualGatewayPortMapping_protocol' - The protocol used for the port mapping.+newVirtualGatewayPortMapping ::+ -- | 'port'+ Prelude.Natural ->+ -- | 'protocol'+ VirtualGatewayPortProtocol ->+ VirtualGatewayPortMapping+newVirtualGatewayPortMapping pPort_ pProtocol_ =+ VirtualGatewayPortMapping'+ { port = pPort_,+ protocol = pProtocol_+ }++-- | The port used for the port mapping. Specify one protocol.+virtualGatewayPortMapping_port :: Lens.Lens' VirtualGatewayPortMapping Prelude.Natural+virtualGatewayPortMapping_port = Lens.lens (\VirtualGatewayPortMapping' {port} -> port) (\s@VirtualGatewayPortMapping' {} a -> s {port = a} :: VirtualGatewayPortMapping)++-- | The protocol used for the port mapping.+virtualGatewayPortMapping_protocol :: Lens.Lens' VirtualGatewayPortMapping VirtualGatewayPortProtocol+virtualGatewayPortMapping_protocol = Lens.lens (\VirtualGatewayPortMapping' {protocol} -> protocol) (\s@VirtualGatewayPortMapping' {} a -> s {protocol = a} :: VirtualGatewayPortMapping)++instance Data.FromJSON VirtualGatewayPortMapping where+ parseJSON =+ Data.withObject+ "VirtualGatewayPortMapping"+ ( \x ->+ VirtualGatewayPortMapping'+ Prelude.<$> (x Data..: "port")+ Prelude.<*> (x Data..: "protocol")+ )++instance Prelude.Hashable VirtualGatewayPortMapping where+ hashWithSalt _salt VirtualGatewayPortMapping' {..} =+ _salt+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` protocol++instance Prelude.NFData VirtualGatewayPortMapping where+ rnf VirtualGatewayPortMapping' {..} =+ Prelude.rnf port `Prelude.seq` Prelude.rnf protocol++instance Data.ToJSON VirtualGatewayPortMapping where+ toJSON VirtualGatewayPortMapping' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("port" Data..= port),+ Prelude.Just ("protocol" Data..= protocol)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayPortProtocol.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayPortProtocol+-- 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.AppMesh.Types.VirtualGatewayPortProtocol+ ( VirtualGatewayPortProtocol+ ( ..,+ VirtualGatewayPortProtocol_Grpc,+ VirtualGatewayPortProtocol_Http,+ VirtualGatewayPortProtocol_Http2+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VirtualGatewayPortProtocol = VirtualGatewayPortProtocol'+ { fromVirtualGatewayPortProtocol ::+ 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 VirtualGatewayPortProtocol_Grpc :: VirtualGatewayPortProtocol+pattern VirtualGatewayPortProtocol_Grpc = VirtualGatewayPortProtocol' "grpc"++pattern VirtualGatewayPortProtocol_Http :: VirtualGatewayPortProtocol+pattern VirtualGatewayPortProtocol_Http = VirtualGatewayPortProtocol' "http"++pattern VirtualGatewayPortProtocol_Http2 :: VirtualGatewayPortProtocol+pattern VirtualGatewayPortProtocol_Http2 = VirtualGatewayPortProtocol' "http2"++{-# COMPLETE+ VirtualGatewayPortProtocol_Grpc,+ VirtualGatewayPortProtocol_Http,+ VirtualGatewayPortProtocol_Http2,+ VirtualGatewayPortProtocol'+ #-}
+ gen/Amazonka/AppMesh/Types/VirtualGatewayRef.hs view
@@ -0,0 +1,208 @@+{-# 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.AppMesh.Types.VirtualGatewayRef+-- 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.AppMesh.Types.VirtualGatewayRef 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++-- | An object that represents a virtual gateway returned by a list+-- operation.+--+-- /See:/ 'newVirtualGatewayRef' smart constructor.+data VirtualGatewayRef = VirtualGatewayRef'+ { -- | The full Amazon Resource Name (ARN) for the resource.+ arn :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was created.+ createdAt :: Data.POSIX,+ -- | The Unix epoch timestamp in seconds for when the resource was last+ -- updated.+ lastUpdatedAt :: Data.POSIX,+ -- | The name of the service mesh that the resource resides in.+ meshName :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the resource owner. If the+ -- account ID is not your own, then it\'s the ID of the mesh owner or of+ -- another account that the mesh is shared with. For more information about+ -- mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ resourceOwner :: Prelude.Text,+ -- | The version of the resource. Resources are created at version 1, and+ -- this version is incremented each time that they\'re updated.+ version :: Prelude.Integer,+ -- | The name of the resource.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'virtualGatewayRef_arn' - The full Amazon Resource Name (ARN) for the resource.+--+-- 'createdAt', 'virtualGatewayRef_createdAt' - The Unix epoch timestamp in seconds for when the resource was created.+--+-- 'lastUpdatedAt', 'virtualGatewayRef_lastUpdatedAt' - The Unix epoch timestamp in seconds for when the resource was last+-- updated.+--+-- 'meshName', 'virtualGatewayRef_meshName' - The name of the service mesh that the resource resides in.+--+-- 'meshOwner', 'virtualGatewayRef_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'resourceOwner', 'virtualGatewayRef_resourceOwner' - The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'version', 'virtualGatewayRef_version' - The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+--+-- 'virtualGatewayName', 'virtualGatewayRef_virtualGatewayName' - The name of the resource.+newVirtualGatewayRef ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'meshOwner'+ Prelude.Text ->+ -- | 'resourceOwner'+ Prelude.Text ->+ -- | 'version'+ Prelude.Integer ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ VirtualGatewayRef+newVirtualGatewayRef+ pArn_+ pCreatedAt_+ pLastUpdatedAt_+ pMeshName_+ pMeshOwner_+ pResourceOwner_+ pVersion_+ pVirtualGatewayName_ =+ VirtualGatewayRef'+ { arn = pArn_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_,+ meshName = pMeshName_,+ meshOwner = pMeshOwner_,+ resourceOwner = pResourceOwner_,+ version = pVersion_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | The full Amazon Resource Name (ARN) for the resource.+virtualGatewayRef_arn :: Lens.Lens' VirtualGatewayRef Prelude.Text+virtualGatewayRef_arn = Lens.lens (\VirtualGatewayRef' {arn} -> arn) (\s@VirtualGatewayRef' {} a -> s {arn = a} :: VirtualGatewayRef)++-- | The Unix epoch timestamp in seconds for when the resource was created.+virtualGatewayRef_createdAt :: Lens.Lens' VirtualGatewayRef Prelude.UTCTime+virtualGatewayRef_createdAt = Lens.lens (\VirtualGatewayRef' {createdAt} -> createdAt) (\s@VirtualGatewayRef' {} a -> s {createdAt = a} :: VirtualGatewayRef) Prelude.. Data._Time++-- | The Unix epoch timestamp in seconds for when the resource was last+-- updated.+virtualGatewayRef_lastUpdatedAt :: Lens.Lens' VirtualGatewayRef Prelude.UTCTime+virtualGatewayRef_lastUpdatedAt = Lens.lens (\VirtualGatewayRef' {lastUpdatedAt} -> lastUpdatedAt) (\s@VirtualGatewayRef' {} a -> s {lastUpdatedAt = a} :: VirtualGatewayRef) Prelude.. Data._Time++-- | The name of the service mesh that the resource resides in.+virtualGatewayRef_meshName :: Lens.Lens' VirtualGatewayRef Prelude.Text+virtualGatewayRef_meshName = Lens.lens (\VirtualGatewayRef' {meshName} -> meshName) (\s@VirtualGatewayRef' {} a -> s {meshName = a} :: VirtualGatewayRef)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+virtualGatewayRef_meshOwner :: Lens.Lens' VirtualGatewayRef Prelude.Text+virtualGatewayRef_meshOwner = Lens.lens (\VirtualGatewayRef' {meshOwner} -> meshOwner) (\s@VirtualGatewayRef' {} a -> s {meshOwner = a} :: VirtualGatewayRef)++-- | The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+virtualGatewayRef_resourceOwner :: Lens.Lens' VirtualGatewayRef Prelude.Text+virtualGatewayRef_resourceOwner = Lens.lens (\VirtualGatewayRef' {resourceOwner} -> resourceOwner) (\s@VirtualGatewayRef' {} a -> s {resourceOwner = a} :: VirtualGatewayRef)++-- | The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+virtualGatewayRef_version :: Lens.Lens' VirtualGatewayRef Prelude.Integer+virtualGatewayRef_version = Lens.lens (\VirtualGatewayRef' {version} -> version) (\s@VirtualGatewayRef' {} a -> s {version = a} :: VirtualGatewayRef)++-- | The name of the resource.+virtualGatewayRef_virtualGatewayName :: Lens.Lens' VirtualGatewayRef Prelude.Text+virtualGatewayRef_virtualGatewayName = Lens.lens (\VirtualGatewayRef' {virtualGatewayName} -> virtualGatewayName) (\s@VirtualGatewayRef' {} a -> s {virtualGatewayName = a} :: VirtualGatewayRef)++instance Data.FromJSON VirtualGatewayRef where+ parseJSON =+ Data.withObject+ "VirtualGatewayRef"+ ( \x ->+ VirtualGatewayRef'+ Prelude.<$> (x Data..: "arn")+ Prelude.<*> (x Data..: "createdAt")+ Prelude.<*> (x Data..: "lastUpdatedAt")+ Prelude.<*> (x Data..: "meshName")+ Prelude.<*> (x Data..: "meshOwner")+ Prelude.<*> (x Data..: "resourceOwner")+ Prelude.<*> (x Data..: "version")+ Prelude.<*> (x Data..: "virtualGatewayName")+ )++instance Prelude.Hashable VirtualGatewayRef where+ hashWithSalt _salt VirtualGatewayRef' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` resourceOwner+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData VirtualGatewayRef where+ rnf VirtualGatewayRef' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf resourceOwner+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf virtualGatewayName
+ gen/Amazonka/AppMesh/Types/VirtualGatewaySpec.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewaySpec+-- 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.AppMesh.Types.VirtualGatewaySpec where++import Amazonka.AppMesh.Types.VirtualGatewayBackendDefaults+import Amazonka.AppMesh.Types.VirtualGatewayListener+import Amazonka.AppMesh.Types.VirtualGatewayLogging+import qualified 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 object that represents the specification of a service mesh resource.+--+-- /See:/ 'newVirtualGatewaySpec' smart constructor.+data VirtualGatewaySpec = VirtualGatewaySpec'+ { -- | A reference to an object that represents the defaults for backends.+ backendDefaults :: Prelude.Maybe VirtualGatewayBackendDefaults,+ logging :: Prelude.Maybe VirtualGatewayLogging,+ -- | The listeners that the mesh endpoint is expected to receive inbound+ -- traffic from. You can specify one listener.+ listeners :: [VirtualGatewayListener]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewaySpec' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backendDefaults', 'virtualGatewaySpec_backendDefaults' - A reference to an object that represents the defaults for backends.+--+-- 'logging', 'virtualGatewaySpec_logging' - Undocumented member.+--+-- 'listeners', 'virtualGatewaySpec_listeners' - The listeners that the mesh endpoint is expected to receive inbound+-- traffic from. You can specify one listener.+newVirtualGatewaySpec ::+ VirtualGatewaySpec+newVirtualGatewaySpec =+ VirtualGatewaySpec'+ { backendDefaults =+ Prelude.Nothing,+ logging = Prelude.Nothing,+ listeners = Prelude.mempty+ }++-- | A reference to an object that represents the defaults for backends.+virtualGatewaySpec_backendDefaults :: Lens.Lens' VirtualGatewaySpec (Prelude.Maybe VirtualGatewayBackendDefaults)+virtualGatewaySpec_backendDefaults = Lens.lens (\VirtualGatewaySpec' {backendDefaults} -> backendDefaults) (\s@VirtualGatewaySpec' {} a -> s {backendDefaults = a} :: VirtualGatewaySpec)++-- | Undocumented member.+virtualGatewaySpec_logging :: Lens.Lens' VirtualGatewaySpec (Prelude.Maybe VirtualGatewayLogging)+virtualGatewaySpec_logging = Lens.lens (\VirtualGatewaySpec' {logging} -> logging) (\s@VirtualGatewaySpec' {} a -> s {logging = a} :: VirtualGatewaySpec)++-- | The listeners that the mesh endpoint is expected to receive inbound+-- traffic from. You can specify one listener.+virtualGatewaySpec_listeners :: Lens.Lens' VirtualGatewaySpec [VirtualGatewayListener]+virtualGatewaySpec_listeners = Lens.lens (\VirtualGatewaySpec' {listeners} -> listeners) (\s@VirtualGatewaySpec' {} a -> s {listeners = a} :: VirtualGatewaySpec) Prelude.. Lens.coerced++instance Data.FromJSON VirtualGatewaySpec where+ parseJSON =+ Data.withObject+ "VirtualGatewaySpec"+ ( \x ->+ VirtualGatewaySpec'+ Prelude.<$> (x Data..:? "backendDefaults")+ Prelude.<*> (x Data..:? "logging")+ Prelude.<*> (x Data..:? "listeners" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable VirtualGatewaySpec where+ hashWithSalt _salt VirtualGatewaySpec' {..} =+ _salt+ `Prelude.hashWithSalt` backendDefaults+ `Prelude.hashWithSalt` logging+ `Prelude.hashWithSalt` listeners++instance Prelude.NFData VirtualGatewaySpec where+ rnf VirtualGatewaySpec' {..} =+ Prelude.rnf backendDefaults+ `Prelude.seq` Prelude.rnf logging+ `Prelude.seq` Prelude.rnf listeners++instance Data.ToJSON VirtualGatewaySpec where+ toJSON VirtualGatewaySpec' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("backendDefaults" Data..=)+ Prelude.<$> backendDefaults,+ ("logging" Data..=) Prelude.<$> logging,+ Prelude.Just ("listeners" Data..= listeners)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayStatus.hs view
@@ -0,0 +1,71 @@+{-# 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.AppMesh.Types.VirtualGatewayStatus+-- 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.AppMesh.Types.VirtualGatewayStatus where++import Amazonka.AppMesh.Types.VirtualGatewayStatusCode+import qualified 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 object that represents the status of the mesh resource.+--+-- /See:/ 'newVirtualGatewayStatus' smart constructor.+data VirtualGatewayStatus = VirtualGatewayStatus'+ { -- | The current status.+ status :: VirtualGatewayStatusCode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'virtualGatewayStatus_status' - The current status.+newVirtualGatewayStatus ::+ -- | 'status'+ VirtualGatewayStatusCode ->+ VirtualGatewayStatus+newVirtualGatewayStatus pStatus_ =+ VirtualGatewayStatus' {status = pStatus_}++-- | The current status.+virtualGatewayStatus_status :: Lens.Lens' VirtualGatewayStatus VirtualGatewayStatusCode+virtualGatewayStatus_status = Lens.lens (\VirtualGatewayStatus' {status} -> status) (\s@VirtualGatewayStatus' {} a -> s {status = a} :: VirtualGatewayStatus)++instance Data.FromJSON VirtualGatewayStatus where+ parseJSON =+ Data.withObject+ "VirtualGatewayStatus"+ ( \x ->+ VirtualGatewayStatus'+ Prelude.<$> (x Data..: "status")+ )++instance Prelude.Hashable VirtualGatewayStatus where+ hashWithSalt _salt VirtualGatewayStatus' {..} =+ _salt `Prelude.hashWithSalt` status++instance Prelude.NFData VirtualGatewayStatus where+ rnf VirtualGatewayStatus' {..} = Prelude.rnf status
+ gen/Amazonka/AppMesh/Types/VirtualGatewayStatusCode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayStatusCode+-- 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.AppMesh.Types.VirtualGatewayStatusCode+ ( VirtualGatewayStatusCode+ ( ..,+ VirtualGatewayStatusCode_ACTIVE,+ VirtualGatewayStatusCode_DELETED,+ VirtualGatewayStatusCode_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VirtualGatewayStatusCode = VirtualGatewayStatusCode'+ { fromVirtualGatewayStatusCode ::+ 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 VirtualGatewayStatusCode_ACTIVE :: VirtualGatewayStatusCode+pattern VirtualGatewayStatusCode_ACTIVE = VirtualGatewayStatusCode' "ACTIVE"++pattern VirtualGatewayStatusCode_DELETED :: VirtualGatewayStatusCode+pattern VirtualGatewayStatusCode_DELETED = VirtualGatewayStatusCode' "DELETED"++pattern VirtualGatewayStatusCode_INACTIVE :: VirtualGatewayStatusCode+pattern VirtualGatewayStatusCode_INACTIVE = VirtualGatewayStatusCode' "INACTIVE"++{-# COMPLETE+ VirtualGatewayStatusCode_ACTIVE,+ VirtualGatewayStatusCode_DELETED,+ VirtualGatewayStatusCode_INACTIVE,+ VirtualGatewayStatusCode'+ #-}
+ gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContext.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContext+-- 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.AppMesh.Types.VirtualGatewayTlsValidationContext where++import Amazonka.AppMesh.Types.SubjectAlternativeNames+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextTrust+import qualified 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 object that represents a Transport Layer Security (TLS) validation+-- context.+--+-- /See:/ 'newVirtualGatewayTlsValidationContext' smart constructor.+data VirtualGatewayTlsValidationContext = VirtualGatewayTlsValidationContext'+ { -- | A reference to an object that represents the SANs for a virtual+ -- gateway\'s listener\'s Transport Layer Security (TLS) validation+ -- context.+ subjectAlternativeNames :: Prelude.Maybe SubjectAlternativeNames,+ -- | A reference to where to retrieve the trust chain when validating a+ -- peer’s Transport Layer Security (TLS) certificate.+ trust :: VirtualGatewayTlsValidationContextTrust+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayTlsValidationContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subjectAlternativeNames', 'virtualGatewayTlsValidationContext_subjectAlternativeNames' - A reference to an object that represents the SANs for a virtual+-- gateway\'s listener\'s Transport Layer Security (TLS) validation+-- context.+--+-- 'trust', 'virtualGatewayTlsValidationContext_trust' - A reference to where to retrieve the trust chain when validating a+-- peer’s Transport Layer Security (TLS) certificate.+newVirtualGatewayTlsValidationContext ::+ -- | 'trust'+ VirtualGatewayTlsValidationContextTrust ->+ VirtualGatewayTlsValidationContext+newVirtualGatewayTlsValidationContext pTrust_ =+ VirtualGatewayTlsValidationContext'+ { subjectAlternativeNames =+ Prelude.Nothing,+ trust = pTrust_+ }++-- | A reference to an object that represents the SANs for a virtual+-- gateway\'s listener\'s Transport Layer Security (TLS) validation+-- context.+virtualGatewayTlsValidationContext_subjectAlternativeNames :: Lens.Lens' VirtualGatewayTlsValidationContext (Prelude.Maybe SubjectAlternativeNames)+virtualGatewayTlsValidationContext_subjectAlternativeNames = Lens.lens (\VirtualGatewayTlsValidationContext' {subjectAlternativeNames} -> subjectAlternativeNames) (\s@VirtualGatewayTlsValidationContext' {} a -> s {subjectAlternativeNames = a} :: VirtualGatewayTlsValidationContext)++-- | A reference to where to retrieve the trust chain when validating a+-- peer’s Transport Layer Security (TLS) certificate.+virtualGatewayTlsValidationContext_trust :: Lens.Lens' VirtualGatewayTlsValidationContext VirtualGatewayTlsValidationContextTrust+virtualGatewayTlsValidationContext_trust = Lens.lens (\VirtualGatewayTlsValidationContext' {trust} -> trust) (\s@VirtualGatewayTlsValidationContext' {} a -> s {trust = a} :: VirtualGatewayTlsValidationContext)++instance+ Data.FromJSON+ VirtualGatewayTlsValidationContext+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayTlsValidationContext"+ ( \x ->+ VirtualGatewayTlsValidationContext'+ Prelude.<$> (x Data..:? "subjectAlternativeNames")+ Prelude.<*> (x Data..: "trust")+ )++instance+ Prelude.Hashable+ VirtualGatewayTlsValidationContext+ where+ hashWithSalt+ _salt+ VirtualGatewayTlsValidationContext' {..} =+ _salt+ `Prelude.hashWithSalt` subjectAlternativeNames+ `Prelude.hashWithSalt` trust++instance+ Prelude.NFData+ VirtualGatewayTlsValidationContext+ where+ rnf VirtualGatewayTlsValidationContext' {..} =+ Prelude.rnf subjectAlternativeNames+ `Prelude.seq` Prelude.rnf trust++instance+ Data.ToJSON+ VirtualGatewayTlsValidationContext+ where+ toJSON VirtualGatewayTlsValidationContext' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("subjectAlternativeNames" Data..=)+ Prelude.<$> subjectAlternativeNames,+ Prelude.Just ("trust" Data..= trust)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContextAcmTrust.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.AppMesh.Types.VirtualGatewayTlsValidationContextAcmTrust+-- 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.AppMesh.Types.VirtualGatewayTlsValidationContextAcmTrust 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++-- | An object that represents a Transport Layer Security (TLS) validation+-- context trust for an Certificate Manager certificate.+--+-- /See:/ 'newVirtualGatewayTlsValidationContextAcmTrust' smart constructor.+data VirtualGatewayTlsValidationContextAcmTrust = VirtualGatewayTlsValidationContextAcmTrust'+ { -- | One or more ACM Amazon Resource Name (ARN)s.+ certificateAuthorityArns :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayTlsValidationContextAcmTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateAuthorityArns', 'virtualGatewayTlsValidationContextAcmTrust_certificateAuthorityArns' - One or more ACM Amazon Resource Name (ARN)s.+newVirtualGatewayTlsValidationContextAcmTrust ::+ -- | 'certificateAuthorityArns'+ Prelude.NonEmpty Prelude.Text ->+ VirtualGatewayTlsValidationContextAcmTrust+newVirtualGatewayTlsValidationContextAcmTrust+ pCertificateAuthorityArns_ =+ VirtualGatewayTlsValidationContextAcmTrust'+ { certificateAuthorityArns =+ Lens.coerced+ Lens.# pCertificateAuthorityArns_+ }++-- | One or more ACM Amazon Resource Name (ARN)s.+virtualGatewayTlsValidationContextAcmTrust_certificateAuthorityArns :: Lens.Lens' VirtualGatewayTlsValidationContextAcmTrust (Prelude.NonEmpty Prelude.Text)+virtualGatewayTlsValidationContextAcmTrust_certificateAuthorityArns = Lens.lens (\VirtualGatewayTlsValidationContextAcmTrust' {certificateAuthorityArns} -> certificateAuthorityArns) (\s@VirtualGatewayTlsValidationContextAcmTrust' {} a -> s {certificateAuthorityArns = a} :: VirtualGatewayTlsValidationContextAcmTrust) Prelude.. Lens.coerced++instance+ Data.FromJSON+ VirtualGatewayTlsValidationContextAcmTrust+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayTlsValidationContextAcmTrust"+ ( \x ->+ VirtualGatewayTlsValidationContextAcmTrust'+ Prelude.<$> (x Data..: "certificateAuthorityArns")+ )++instance+ Prelude.Hashable+ VirtualGatewayTlsValidationContextAcmTrust+ where+ hashWithSalt+ _salt+ VirtualGatewayTlsValidationContextAcmTrust' {..} =+ _salt+ `Prelude.hashWithSalt` certificateAuthorityArns++instance+ Prelude.NFData+ VirtualGatewayTlsValidationContextAcmTrust+ where+ rnf VirtualGatewayTlsValidationContextAcmTrust' {..} =+ Prelude.rnf certificateAuthorityArns++instance+ Data.ToJSON+ VirtualGatewayTlsValidationContextAcmTrust+ where+ toJSON+ VirtualGatewayTlsValidationContextAcmTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "certificateAuthorityArns"+ Data..= certificateAuthorityArns+ )+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContextFileTrust.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextFileTrust+-- 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.AppMesh.Types.VirtualGatewayTlsValidationContextFileTrust 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++-- | An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+--+-- /See:/ 'newVirtualGatewayTlsValidationContextFileTrust' smart constructor.+data VirtualGatewayTlsValidationContextFileTrust = VirtualGatewayTlsValidationContextFileTrust'+ { -- | The certificate trust chain for a certificate stored on the file system+ -- of the virtual node that the proxy is running on.+ certificateChain :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayTlsValidationContextFileTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateChain', 'virtualGatewayTlsValidationContextFileTrust_certificateChain' - The certificate trust chain for a certificate stored on the file system+-- of the virtual node that the proxy is running on.+newVirtualGatewayTlsValidationContextFileTrust ::+ -- | 'certificateChain'+ Prelude.Text ->+ VirtualGatewayTlsValidationContextFileTrust+newVirtualGatewayTlsValidationContextFileTrust+ pCertificateChain_ =+ VirtualGatewayTlsValidationContextFileTrust'+ { certificateChain =+ pCertificateChain_+ }++-- | The certificate trust chain for a certificate stored on the file system+-- of the virtual node that the proxy is running on.+virtualGatewayTlsValidationContextFileTrust_certificateChain :: Lens.Lens' VirtualGatewayTlsValidationContextFileTrust Prelude.Text+virtualGatewayTlsValidationContextFileTrust_certificateChain = Lens.lens (\VirtualGatewayTlsValidationContextFileTrust' {certificateChain} -> certificateChain) (\s@VirtualGatewayTlsValidationContextFileTrust' {} a -> s {certificateChain = a} :: VirtualGatewayTlsValidationContextFileTrust)++instance+ Data.FromJSON+ VirtualGatewayTlsValidationContextFileTrust+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayTlsValidationContextFileTrust"+ ( \x ->+ VirtualGatewayTlsValidationContextFileTrust'+ Prelude.<$> (x Data..: "certificateChain")+ )++instance+ Prelude.Hashable+ VirtualGatewayTlsValidationContextFileTrust+ where+ hashWithSalt+ _salt+ VirtualGatewayTlsValidationContextFileTrust' {..} =+ _salt `Prelude.hashWithSalt` certificateChain++instance+ Prelude.NFData+ VirtualGatewayTlsValidationContextFileTrust+ where+ rnf VirtualGatewayTlsValidationContextFileTrust' {..} =+ Prelude.rnf certificateChain++instance+ Data.ToJSON+ VirtualGatewayTlsValidationContextFileTrust+ where+ toJSON+ VirtualGatewayTlsValidationContextFileTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("certificateChain" Data..= certificateChain)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContextSdsTrust.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextSdsTrust+-- 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.AppMesh.Types.VirtualGatewayTlsValidationContextSdsTrust 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++-- | An object that represents a virtual gateway\'s listener\'s Transport+-- Layer Security (TLS) Secret Discovery Service validation context trust.+-- The proxy must be configured with a local SDS provider via a Unix Domain+-- Socket. See App Mesh+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html TLS documentation>+-- for more info.+--+-- /See:/ 'newVirtualGatewayTlsValidationContextSdsTrust' smart constructor.+data VirtualGatewayTlsValidationContextSdsTrust = VirtualGatewayTlsValidationContextSdsTrust'+ { -- | A reference to an object that represents the name of the secret for a+ -- virtual gateway\'s Transport Layer Security (TLS) Secret Discovery+ -- Service validation context trust.+ secretName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayTlsValidationContextSdsTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'secretName', 'virtualGatewayTlsValidationContextSdsTrust_secretName' - A reference to an object that represents the name of the secret for a+-- virtual gateway\'s Transport Layer Security (TLS) Secret Discovery+-- Service validation context trust.+newVirtualGatewayTlsValidationContextSdsTrust ::+ -- | 'secretName'+ Prelude.Text ->+ VirtualGatewayTlsValidationContextSdsTrust+newVirtualGatewayTlsValidationContextSdsTrust+ pSecretName_ =+ VirtualGatewayTlsValidationContextSdsTrust'+ { secretName =+ pSecretName_+ }++-- | A reference to an object that represents the name of the secret for a+-- virtual gateway\'s Transport Layer Security (TLS) Secret Discovery+-- Service validation context trust.+virtualGatewayTlsValidationContextSdsTrust_secretName :: Lens.Lens' VirtualGatewayTlsValidationContextSdsTrust Prelude.Text+virtualGatewayTlsValidationContextSdsTrust_secretName = Lens.lens (\VirtualGatewayTlsValidationContextSdsTrust' {secretName} -> secretName) (\s@VirtualGatewayTlsValidationContextSdsTrust' {} a -> s {secretName = a} :: VirtualGatewayTlsValidationContextSdsTrust)++instance+ Data.FromJSON+ VirtualGatewayTlsValidationContextSdsTrust+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayTlsValidationContextSdsTrust"+ ( \x ->+ VirtualGatewayTlsValidationContextSdsTrust'+ Prelude.<$> (x Data..: "secretName")+ )++instance+ Prelude.Hashable+ VirtualGatewayTlsValidationContextSdsTrust+ where+ hashWithSalt+ _salt+ VirtualGatewayTlsValidationContextSdsTrust' {..} =+ _salt `Prelude.hashWithSalt` secretName++instance+ Prelude.NFData+ VirtualGatewayTlsValidationContextSdsTrust+ where+ rnf VirtualGatewayTlsValidationContextSdsTrust' {..} =+ Prelude.rnf secretName++instance+ Data.ToJSON+ VirtualGatewayTlsValidationContextSdsTrust+ where+ toJSON+ VirtualGatewayTlsValidationContextSdsTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("secretName" Data..= secretName)]+ )
+ gen/Amazonka/AppMesh/Types/VirtualGatewayTlsValidationContextTrust.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextTrust+-- 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.AppMesh.Types.VirtualGatewayTlsValidationContextTrust where++import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextAcmTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextFileTrust+import Amazonka.AppMesh.Types.VirtualGatewayTlsValidationContextSdsTrust+import qualified 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 object that represents a Transport Layer Security (TLS) validation+-- context trust.+--+-- /See:/ 'newVirtualGatewayTlsValidationContextTrust' smart constructor.+data VirtualGatewayTlsValidationContextTrust = VirtualGatewayTlsValidationContextTrust'+ { -- | A reference to an object that represents a Transport Layer Security+ -- (TLS) validation context trust for an Certificate Manager certificate.+ acm :: Prelude.Maybe VirtualGatewayTlsValidationContextAcmTrust,+ -- | An object that represents a Transport Layer Security (TLS) validation+ -- context trust for a local file.+ file :: Prelude.Maybe VirtualGatewayTlsValidationContextFileTrust,+ -- | A reference to an object that represents a virtual gateway\'s Transport+ -- Layer Security (TLS) Secret Discovery Service validation context trust.+ sds :: Prelude.Maybe VirtualGatewayTlsValidationContextSdsTrust+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualGatewayTlsValidationContextTrust' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acm', 'virtualGatewayTlsValidationContextTrust_acm' - A reference to an object that represents a Transport Layer Security+-- (TLS) validation context trust for an Certificate Manager certificate.+--+-- 'file', 'virtualGatewayTlsValidationContextTrust_file' - An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+--+-- 'sds', 'virtualGatewayTlsValidationContextTrust_sds' - A reference to an object that represents a virtual gateway\'s Transport+-- Layer Security (TLS) Secret Discovery Service validation context trust.+newVirtualGatewayTlsValidationContextTrust ::+ VirtualGatewayTlsValidationContextTrust+newVirtualGatewayTlsValidationContextTrust =+ VirtualGatewayTlsValidationContextTrust'+ { acm =+ Prelude.Nothing,+ file = Prelude.Nothing,+ sds = Prelude.Nothing+ }++-- | A reference to an object that represents a Transport Layer Security+-- (TLS) validation context trust for an Certificate Manager certificate.+virtualGatewayTlsValidationContextTrust_acm :: Lens.Lens' VirtualGatewayTlsValidationContextTrust (Prelude.Maybe VirtualGatewayTlsValidationContextAcmTrust)+virtualGatewayTlsValidationContextTrust_acm = Lens.lens (\VirtualGatewayTlsValidationContextTrust' {acm} -> acm) (\s@VirtualGatewayTlsValidationContextTrust' {} a -> s {acm = a} :: VirtualGatewayTlsValidationContextTrust)++-- | An object that represents a Transport Layer Security (TLS) validation+-- context trust for a local file.+virtualGatewayTlsValidationContextTrust_file :: Lens.Lens' VirtualGatewayTlsValidationContextTrust (Prelude.Maybe VirtualGatewayTlsValidationContextFileTrust)+virtualGatewayTlsValidationContextTrust_file = Lens.lens (\VirtualGatewayTlsValidationContextTrust' {file} -> file) (\s@VirtualGatewayTlsValidationContextTrust' {} a -> s {file = a} :: VirtualGatewayTlsValidationContextTrust)++-- | A reference to an object that represents a virtual gateway\'s Transport+-- Layer Security (TLS) Secret Discovery Service validation context trust.+virtualGatewayTlsValidationContextTrust_sds :: Lens.Lens' VirtualGatewayTlsValidationContextTrust (Prelude.Maybe VirtualGatewayTlsValidationContextSdsTrust)+virtualGatewayTlsValidationContextTrust_sds = Lens.lens (\VirtualGatewayTlsValidationContextTrust' {sds} -> sds) (\s@VirtualGatewayTlsValidationContextTrust' {} a -> s {sds = a} :: VirtualGatewayTlsValidationContextTrust)++instance+ Data.FromJSON+ VirtualGatewayTlsValidationContextTrust+ where+ parseJSON =+ Data.withObject+ "VirtualGatewayTlsValidationContextTrust"+ ( \x ->+ VirtualGatewayTlsValidationContextTrust'+ Prelude.<$> (x Data..:? "acm")+ Prelude.<*> (x Data..:? "file")+ Prelude.<*> (x Data..:? "sds")+ )++instance+ Prelude.Hashable+ VirtualGatewayTlsValidationContextTrust+ where+ hashWithSalt+ _salt+ VirtualGatewayTlsValidationContextTrust' {..} =+ _salt+ `Prelude.hashWithSalt` acm+ `Prelude.hashWithSalt` file+ `Prelude.hashWithSalt` sds++instance+ Prelude.NFData+ VirtualGatewayTlsValidationContextTrust+ where+ rnf VirtualGatewayTlsValidationContextTrust' {..} =+ Prelude.rnf acm+ `Prelude.seq` Prelude.rnf file+ `Prelude.seq` Prelude.rnf sds++instance+ Data.ToJSON+ VirtualGatewayTlsValidationContextTrust+ where+ toJSON VirtualGatewayTlsValidationContextTrust' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("acm" Data..=) Prelude.<$> acm,+ ("file" Data..=) Prelude.<$> file,+ ("sds" Data..=) Prelude.<$> sds+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualNodeConnectionPool.hs view
@@ -0,0 +1,129 @@+{-# 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.AppMesh.Types.VirtualNodeConnectionPool+-- 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.AppMesh.Types.VirtualNodeConnectionPool where++import Amazonka.AppMesh.Types.VirtualNodeGrpcConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeHttp2ConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeHttpConnectionPool+import Amazonka.AppMesh.Types.VirtualNodeTcpConnectionPool+import qualified 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 object that represents the type of virtual node connection pool.+--+-- Only one protocol is used at a time and should be the same protocol as+-- the one chosen under port mapping.+--+-- If not present the default value for @maxPendingRequests@ is+-- @2147483647@.+--+-- /See:/ 'newVirtualNodeConnectionPool' smart constructor.+data VirtualNodeConnectionPool = VirtualNodeConnectionPool'+ { -- | An object that represents a type of connection pool.+ grpc :: Prelude.Maybe VirtualNodeGrpcConnectionPool,+ -- | An object that represents a type of connection pool.+ http :: Prelude.Maybe VirtualNodeHttpConnectionPool,+ -- | An object that represents a type of connection pool.+ http2 :: Prelude.Maybe VirtualNodeHttp2ConnectionPool,+ -- | An object that represents a type of connection pool.+ tcp :: Prelude.Maybe VirtualNodeTcpConnectionPool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'grpc', 'virtualNodeConnectionPool_grpc' - An object that represents a type of connection pool.+--+-- 'http', 'virtualNodeConnectionPool_http' - An object that represents a type of connection pool.+--+-- 'http2', 'virtualNodeConnectionPool_http2' - An object that represents a type of connection pool.+--+-- 'tcp', 'virtualNodeConnectionPool_tcp' - An object that represents a type of connection pool.+newVirtualNodeConnectionPool ::+ VirtualNodeConnectionPool+newVirtualNodeConnectionPool =+ VirtualNodeConnectionPool'+ { grpc = Prelude.Nothing,+ http = Prelude.Nothing,+ http2 = Prelude.Nothing,+ tcp = Prelude.Nothing+ }++-- | An object that represents a type of connection pool.+virtualNodeConnectionPool_grpc :: Lens.Lens' VirtualNodeConnectionPool (Prelude.Maybe VirtualNodeGrpcConnectionPool)+virtualNodeConnectionPool_grpc = Lens.lens (\VirtualNodeConnectionPool' {grpc} -> grpc) (\s@VirtualNodeConnectionPool' {} a -> s {grpc = a} :: VirtualNodeConnectionPool)++-- | An object that represents a type of connection pool.+virtualNodeConnectionPool_http :: Lens.Lens' VirtualNodeConnectionPool (Prelude.Maybe VirtualNodeHttpConnectionPool)+virtualNodeConnectionPool_http = Lens.lens (\VirtualNodeConnectionPool' {http} -> http) (\s@VirtualNodeConnectionPool' {} a -> s {http = a} :: VirtualNodeConnectionPool)++-- | An object that represents a type of connection pool.+virtualNodeConnectionPool_http2 :: Lens.Lens' VirtualNodeConnectionPool (Prelude.Maybe VirtualNodeHttp2ConnectionPool)+virtualNodeConnectionPool_http2 = Lens.lens (\VirtualNodeConnectionPool' {http2} -> http2) (\s@VirtualNodeConnectionPool' {} a -> s {http2 = a} :: VirtualNodeConnectionPool)++-- | An object that represents a type of connection pool.+virtualNodeConnectionPool_tcp :: Lens.Lens' VirtualNodeConnectionPool (Prelude.Maybe VirtualNodeTcpConnectionPool)+virtualNodeConnectionPool_tcp = Lens.lens (\VirtualNodeConnectionPool' {tcp} -> tcp) (\s@VirtualNodeConnectionPool' {} a -> s {tcp = a} :: VirtualNodeConnectionPool)++instance Data.FromJSON VirtualNodeConnectionPool where+ parseJSON =+ Data.withObject+ "VirtualNodeConnectionPool"+ ( \x ->+ VirtualNodeConnectionPool'+ Prelude.<$> (x Data..:? "grpc")+ Prelude.<*> (x Data..:? "http")+ Prelude.<*> (x Data..:? "http2")+ Prelude.<*> (x Data..:? "tcp")+ )++instance Prelude.Hashable VirtualNodeConnectionPool where+ hashWithSalt _salt VirtualNodeConnectionPool' {..} =+ _salt+ `Prelude.hashWithSalt` grpc+ `Prelude.hashWithSalt` http+ `Prelude.hashWithSalt` http2+ `Prelude.hashWithSalt` tcp++instance Prelude.NFData VirtualNodeConnectionPool where+ rnf VirtualNodeConnectionPool' {..} =+ Prelude.rnf grpc+ `Prelude.seq` Prelude.rnf http+ `Prelude.seq` Prelude.rnf http2+ `Prelude.seq` Prelude.rnf tcp++instance Data.ToJSON VirtualNodeConnectionPool where+ toJSON VirtualNodeConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("grpc" Data..=) Prelude.<$> grpc,+ ("http" Data..=) Prelude.<$> http,+ ("http2" Data..=) Prelude.<$> http2,+ ("tcp" Data..=) Prelude.<$> tcp+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualNodeData.hs view
@@ -0,0 +1,139 @@+{-# 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.AppMesh.Types.VirtualNodeData+-- 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.AppMesh.Types.VirtualNodeData where++import Amazonka.AppMesh.Types.ResourceMetadata+import Amazonka.AppMesh.Types.VirtualNodeSpec+import Amazonka.AppMesh.Types.VirtualNodeStatus+import qualified 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 object that represents a virtual node returned by a describe+-- operation.+--+-- /See:/ 'newVirtualNodeData' smart constructor.+data VirtualNodeData = VirtualNodeData'+ { -- | The name of the service mesh that the virtual node resides in.+ meshName :: Prelude.Text,+ -- | The associated metadata for the virtual node.+ metadata :: ResourceMetadata,+ -- | The specifications of the virtual node.+ spec :: VirtualNodeSpec,+ -- | The current status for the virtual node.+ status :: VirtualNodeStatus,+ -- | The name of the virtual node.+ virtualNodeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshName', 'virtualNodeData_meshName' - The name of the service mesh that the virtual node resides in.+--+-- 'metadata', 'virtualNodeData_metadata' - The associated metadata for the virtual node.+--+-- 'spec', 'virtualNodeData_spec' - The specifications of the virtual node.+--+-- 'status', 'virtualNodeData_status' - The current status for the virtual node.+--+-- 'virtualNodeName', 'virtualNodeData_virtualNodeName' - The name of the virtual node.+newVirtualNodeData ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'metadata'+ ResourceMetadata ->+ -- | 'spec'+ VirtualNodeSpec ->+ -- | 'status'+ VirtualNodeStatus ->+ -- | 'virtualNodeName'+ Prelude.Text ->+ VirtualNodeData+newVirtualNodeData+ pMeshName_+ pMetadata_+ pSpec_+ pStatus_+ pVirtualNodeName_ =+ VirtualNodeData'+ { meshName = pMeshName_,+ metadata = pMetadata_,+ spec = pSpec_,+ status = pStatus_,+ virtualNodeName = pVirtualNodeName_+ }++-- | The name of the service mesh that the virtual node resides in.+virtualNodeData_meshName :: Lens.Lens' VirtualNodeData Prelude.Text+virtualNodeData_meshName = Lens.lens (\VirtualNodeData' {meshName} -> meshName) (\s@VirtualNodeData' {} a -> s {meshName = a} :: VirtualNodeData)++-- | The associated metadata for the virtual node.+virtualNodeData_metadata :: Lens.Lens' VirtualNodeData ResourceMetadata+virtualNodeData_metadata = Lens.lens (\VirtualNodeData' {metadata} -> metadata) (\s@VirtualNodeData' {} a -> s {metadata = a} :: VirtualNodeData)++-- | The specifications of the virtual node.+virtualNodeData_spec :: Lens.Lens' VirtualNodeData VirtualNodeSpec+virtualNodeData_spec = Lens.lens (\VirtualNodeData' {spec} -> spec) (\s@VirtualNodeData' {} a -> s {spec = a} :: VirtualNodeData)++-- | The current status for the virtual node.+virtualNodeData_status :: Lens.Lens' VirtualNodeData VirtualNodeStatus+virtualNodeData_status = Lens.lens (\VirtualNodeData' {status} -> status) (\s@VirtualNodeData' {} a -> s {status = a} :: VirtualNodeData)++-- | The name of the virtual node.+virtualNodeData_virtualNodeName :: Lens.Lens' VirtualNodeData Prelude.Text+virtualNodeData_virtualNodeName = Lens.lens (\VirtualNodeData' {virtualNodeName} -> virtualNodeName) (\s@VirtualNodeData' {} a -> s {virtualNodeName = a} :: VirtualNodeData)++instance Data.FromJSON VirtualNodeData where+ parseJSON =+ Data.withObject+ "VirtualNodeData"+ ( \x ->+ VirtualNodeData'+ Prelude.<$> (x Data..: "meshName")+ Prelude.<*> (x Data..: "metadata")+ Prelude.<*> (x Data..: "spec")+ Prelude.<*> (x Data..: "status")+ Prelude.<*> (x Data..: "virtualNodeName")+ )++instance Prelude.Hashable VirtualNodeData where+ hashWithSalt _salt VirtualNodeData' {..} =+ _salt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` virtualNodeName++instance Prelude.NFData VirtualNodeData where+ rnf VirtualNodeData' {..} =+ Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf virtualNodeName
+ gen/Amazonka/AppMesh/Types/VirtualNodeGrpcConnectionPool.hs view
@@ -0,0 +1,87 @@+{-# 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.AppMesh.Types.VirtualNodeGrpcConnectionPool+-- 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.AppMesh.Types.VirtualNodeGrpcConnectionPool 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++-- | An object that represents a type of connection pool.+--+-- /See:/ 'newVirtualNodeGrpcConnectionPool' smart constructor.+data VirtualNodeGrpcConnectionPool = VirtualNodeGrpcConnectionPool'+ { -- | Maximum number of inflight requests Envoy can concurrently support+ -- across hosts in upstream cluster.+ maxRequests :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeGrpcConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxRequests', 'virtualNodeGrpcConnectionPool_maxRequests' - Maximum number of inflight requests Envoy can concurrently support+-- across hosts in upstream cluster.+newVirtualNodeGrpcConnectionPool ::+ -- | 'maxRequests'+ Prelude.Natural ->+ VirtualNodeGrpcConnectionPool+newVirtualNodeGrpcConnectionPool pMaxRequests_ =+ VirtualNodeGrpcConnectionPool'+ { maxRequests =+ pMaxRequests_+ }++-- | Maximum number of inflight requests Envoy can concurrently support+-- across hosts in upstream cluster.+virtualNodeGrpcConnectionPool_maxRequests :: Lens.Lens' VirtualNodeGrpcConnectionPool Prelude.Natural+virtualNodeGrpcConnectionPool_maxRequests = Lens.lens (\VirtualNodeGrpcConnectionPool' {maxRequests} -> maxRequests) (\s@VirtualNodeGrpcConnectionPool' {} a -> s {maxRequests = a} :: VirtualNodeGrpcConnectionPool)++instance Data.FromJSON VirtualNodeGrpcConnectionPool where+ parseJSON =+ Data.withObject+ "VirtualNodeGrpcConnectionPool"+ ( \x ->+ VirtualNodeGrpcConnectionPool'+ Prelude.<$> (x Data..: "maxRequests")+ )++instance+ Prelude.Hashable+ VirtualNodeGrpcConnectionPool+ where+ hashWithSalt _salt VirtualNodeGrpcConnectionPool' {..} =+ _salt `Prelude.hashWithSalt` maxRequests++instance Prelude.NFData VirtualNodeGrpcConnectionPool where+ rnf VirtualNodeGrpcConnectionPool' {..} =+ Prelude.rnf maxRequests++instance Data.ToJSON VirtualNodeGrpcConnectionPool where+ toJSON VirtualNodeGrpcConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("maxRequests" Data..= maxRequests)]+ )
+ gen/Amazonka/AppMesh/Types/VirtualNodeHttp2ConnectionPool.hs view
@@ -0,0 +1,92 @@+{-# 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.AppMesh.Types.VirtualNodeHttp2ConnectionPool+-- 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.AppMesh.Types.VirtualNodeHttp2ConnectionPool 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++-- | An object that represents a type of connection pool.+--+-- /See:/ 'newVirtualNodeHttp2ConnectionPool' smart constructor.+data VirtualNodeHttp2ConnectionPool = VirtualNodeHttp2ConnectionPool'+ { -- | Maximum number of inflight requests Envoy can concurrently support+ -- across hosts in upstream cluster.+ maxRequests :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeHttp2ConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxRequests', 'virtualNodeHttp2ConnectionPool_maxRequests' - Maximum number of inflight requests Envoy can concurrently support+-- across hosts in upstream cluster.+newVirtualNodeHttp2ConnectionPool ::+ -- | 'maxRequests'+ Prelude.Natural ->+ VirtualNodeHttp2ConnectionPool+newVirtualNodeHttp2ConnectionPool pMaxRequests_ =+ VirtualNodeHttp2ConnectionPool'+ { maxRequests =+ pMaxRequests_+ }++-- | Maximum number of inflight requests Envoy can concurrently support+-- across hosts in upstream cluster.+virtualNodeHttp2ConnectionPool_maxRequests :: Lens.Lens' VirtualNodeHttp2ConnectionPool Prelude.Natural+virtualNodeHttp2ConnectionPool_maxRequests = Lens.lens (\VirtualNodeHttp2ConnectionPool' {maxRequests} -> maxRequests) (\s@VirtualNodeHttp2ConnectionPool' {} a -> s {maxRequests = a} :: VirtualNodeHttp2ConnectionPool)++instance Data.FromJSON VirtualNodeHttp2ConnectionPool where+ parseJSON =+ Data.withObject+ "VirtualNodeHttp2ConnectionPool"+ ( \x ->+ VirtualNodeHttp2ConnectionPool'+ Prelude.<$> (x Data..: "maxRequests")+ )++instance+ Prelude.Hashable+ VirtualNodeHttp2ConnectionPool+ where+ hashWithSalt+ _salt+ VirtualNodeHttp2ConnectionPool' {..} =+ _salt `Prelude.hashWithSalt` maxRequests++instance+ Prelude.NFData+ VirtualNodeHttp2ConnectionPool+ where+ rnf VirtualNodeHttp2ConnectionPool' {..} =+ Prelude.rnf maxRequests++instance Data.ToJSON VirtualNodeHttp2ConnectionPool where+ toJSON VirtualNodeHttp2ConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("maxRequests" Data..= maxRequests)]+ )
+ gen/Amazonka/AppMesh/Types/VirtualNodeHttpConnectionPool.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualNodeHttpConnectionPool+-- 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.AppMesh.Types.VirtualNodeHttpConnectionPool 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++-- | An object that represents a type of connection pool.+--+-- /See:/ 'newVirtualNodeHttpConnectionPool' smart constructor.+data VirtualNodeHttpConnectionPool = VirtualNodeHttpConnectionPool'+ { -- | Number of overflowing requests after @max_connections@ Envoy will queue+ -- to upstream cluster.+ maxPendingRequests :: Prelude.Maybe Prelude.Natural,+ -- | Maximum number of outbound TCP connections Envoy can establish+ -- concurrently with all hosts in upstream cluster.+ maxConnections :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeHttpConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxPendingRequests', 'virtualNodeHttpConnectionPool_maxPendingRequests' - Number of overflowing requests after @max_connections@ Envoy will queue+-- to upstream cluster.+--+-- 'maxConnections', 'virtualNodeHttpConnectionPool_maxConnections' - Maximum number of outbound TCP connections Envoy can establish+-- concurrently with all hosts in upstream cluster.+newVirtualNodeHttpConnectionPool ::+ -- | 'maxConnections'+ Prelude.Natural ->+ VirtualNodeHttpConnectionPool+newVirtualNodeHttpConnectionPool pMaxConnections_ =+ VirtualNodeHttpConnectionPool'+ { maxPendingRequests =+ Prelude.Nothing,+ maxConnections = pMaxConnections_+ }++-- | Number of overflowing requests after @max_connections@ Envoy will queue+-- to upstream cluster.+virtualNodeHttpConnectionPool_maxPendingRequests :: Lens.Lens' VirtualNodeHttpConnectionPool (Prelude.Maybe Prelude.Natural)+virtualNodeHttpConnectionPool_maxPendingRequests = Lens.lens (\VirtualNodeHttpConnectionPool' {maxPendingRequests} -> maxPendingRequests) (\s@VirtualNodeHttpConnectionPool' {} a -> s {maxPendingRequests = a} :: VirtualNodeHttpConnectionPool)++-- | Maximum number of outbound TCP connections Envoy can establish+-- concurrently with all hosts in upstream cluster.+virtualNodeHttpConnectionPool_maxConnections :: Lens.Lens' VirtualNodeHttpConnectionPool Prelude.Natural+virtualNodeHttpConnectionPool_maxConnections = Lens.lens (\VirtualNodeHttpConnectionPool' {maxConnections} -> maxConnections) (\s@VirtualNodeHttpConnectionPool' {} a -> s {maxConnections = a} :: VirtualNodeHttpConnectionPool)++instance Data.FromJSON VirtualNodeHttpConnectionPool where+ parseJSON =+ Data.withObject+ "VirtualNodeHttpConnectionPool"+ ( \x ->+ VirtualNodeHttpConnectionPool'+ Prelude.<$> (x Data..:? "maxPendingRequests")+ Prelude.<*> (x Data..: "maxConnections")+ )++instance+ Prelude.Hashable+ VirtualNodeHttpConnectionPool+ where+ hashWithSalt _salt VirtualNodeHttpConnectionPool' {..} =+ _salt+ `Prelude.hashWithSalt` maxPendingRequests+ `Prelude.hashWithSalt` maxConnections++instance Prelude.NFData VirtualNodeHttpConnectionPool where+ rnf VirtualNodeHttpConnectionPool' {..} =+ Prelude.rnf maxPendingRequests+ `Prelude.seq` Prelude.rnf maxConnections++instance Data.ToJSON VirtualNodeHttpConnectionPool where+ toJSON VirtualNodeHttpConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxPendingRequests" Data..=)+ Prelude.<$> maxPendingRequests,+ Prelude.Just+ ("maxConnections" Data..= maxConnections)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualNodeRef.hs view
@@ -0,0 +1,207 @@+{-# 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.AppMesh.Types.VirtualNodeRef+-- 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.AppMesh.Types.VirtualNodeRef 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++-- | An object that represents a virtual node returned by a list operation.+--+-- /See:/ 'newVirtualNodeRef' smart constructor.+data VirtualNodeRef = VirtualNodeRef'+ { -- | The full Amazon Resource Name (ARN) for the virtual node.+ arn :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was created.+ createdAt :: Data.POSIX,+ -- | The Unix epoch timestamp in seconds for when the resource was last+ -- updated.+ lastUpdatedAt :: Data.POSIX,+ -- | The name of the service mesh that the virtual node resides in.+ meshName :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the resource owner. If the+ -- account ID is not your own, then it\'s the ID of the mesh owner or of+ -- another account that the mesh is shared with. For more information about+ -- mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ resourceOwner :: Prelude.Text,+ -- | The version of the resource. Resources are created at version 1, and+ -- this version is incremented each time that they\'re updated.+ version :: Prelude.Integer,+ -- | The name of the virtual node.+ virtualNodeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'virtualNodeRef_arn' - The full Amazon Resource Name (ARN) for the virtual node.+--+-- 'createdAt', 'virtualNodeRef_createdAt' - The Unix epoch timestamp in seconds for when the resource was created.+--+-- 'lastUpdatedAt', 'virtualNodeRef_lastUpdatedAt' - The Unix epoch timestamp in seconds for when the resource was last+-- updated.+--+-- 'meshName', 'virtualNodeRef_meshName' - The name of the service mesh that the virtual node resides in.+--+-- 'meshOwner', 'virtualNodeRef_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'resourceOwner', 'virtualNodeRef_resourceOwner' - The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'version', 'virtualNodeRef_version' - The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+--+-- 'virtualNodeName', 'virtualNodeRef_virtualNodeName' - The name of the virtual node.+newVirtualNodeRef ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'meshOwner'+ Prelude.Text ->+ -- | 'resourceOwner'+ Prelude.Text ->+ -- | 'version'+ Prelude.Integer ->+ -- | 'virtualNodeName'+ Prelude.Text ->+ VirtualNodeRef+newVirtualNodeRef+ pArn_+ pCreatedAt_+ pLastUpdatedAt_+ pMeshName_+ pMeshOwner_+ pResourceOwner_+ pVersion_+ pVirtualNodeName_ =+ VirtualNodeRef'+ { arn = pArn_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_,+ meshName = pMeshName_,+ meshOwner = pMeshOwner_,+ resourceOwner = pResourceOwner_,+ version = pVersion_,+ virtualNodeName = pVirtualNodeName_+ }++-- | The full Amazon Resource Name (ARN) for the virtual node.+virtualNodeRef_arn :: Lens.Lens' VirtualNodeRef Prelude.Text+virtualNodeRef_arn = Lens.lens (\VirtualNodeRef' {arn} -> arn) (\s@VirtualNodeRef' {} a -> s {arn = a} :: VirtualNodeRef)++-- | The Unix epoch timestamp in seconds for when the resource was created.+virtualNodeRef_createdAt :: Lens.Lens' VirtualNodeRef Prelude.UTCTime+virtualNodeRef_createdAt = Lens.lens (\VirtualNodeRef' {createdAt} -> createdAt) (\s@VirtualNodeRef' {} a -> s {createdAt = a} :: VirtualNodeRef) Prelude.. Data._Time++-- | The Unix epoch timestamp in seconds for when the resource was last+-- updated.+virtualNodeRef_lastUpdatedAt :: Lens.Lens' VirtualNodeRef Prelude.UTCTime+virtualNodeRef_lastUpdatedAt = Lens.lens (\VirtualNodeRef' {lastUpdatedAt} -> lastUpdatedAt) (\s@VirtualNodeRef' {} a -> s {lastUpdatedAt = a} :: VirtualNodeRef) Prelude.. Data._Time++-- | The name of the service mesh that the virtual node resides in.+virtualNodeRef_meshName :: Lens.Lens' VirtualNodeRef Prelude.Text+virtualNodeRef_meshName = Lens.lens (\VirtualNodeRef' {meshName} -> meshName) (\s@VirtualNodeRef' {} a -> s {meshName = a} :: VirtualNodeRef)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+virtualNodeRef_meshOwner :: Lens.Lens' VirtualNodeRef Prelude.Text+virtualNodeRef_meshOwner = Lens.lens (\VirtualNodeRef' {meshOwner} -> meshOwner) (\s@VirtualNodeRef' {} a -> s {meshOwner = a} :: VirtualNodeRef)++-- | The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+virtualNodeRef_resourceOwner :: Lens.Lens' VirtualNodeRef Prelude.Text+virtualNodeRef_resourceOwner = Lens.lens (\VirtualNodeRef' {resourceOwner} -> resourceOwner) (\s@VirtualNodeRef' {} a -> s {resourceOwner = a} :: VirtualNodeRef)++-- | The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+virtualNodeRef_version :: Lens.Lens' VirtualNodeRef Prelude.Integer+virtualNodeRef_version = Lens.lens (\VirtualNodeRef' {version} -> version) (\s@VirtualNodeRef' {} a -> s {version = a} :: VirtualNodeRef)++-- | The name of the virtual node.+virtualNodeRef_virtualNodeName :: Lens.Lens' VirtualNodeRef Prelude.Text+virtualNodeRef_virtualNodeName = Lens.lens (\VirtualNodeRef' {virtualNodeName} -> virtualNodeName) (\s@VirtualNodeRef' {} a -> s {virtualNodeName = a} :: VirtualNodeRef)++instance Data.FromJSON VirtualNodeRef where+ parseJSON =+ Data.withObject+ "VirtualNodeRef"+ ( \x ->+ VirtualNodeRef'+ Prelude.<$> (x Data..: "arn")+ Prelude.<*> (x Data..: "createdAt")+ Prelude.<*> (x Data..: "lastUpdatedAt")+ Prelude.<*> (x Data..: "meshName")+ Prelude.<*> (x Data..: "meshOwner")+ Prelude.<*> (x Data..: "resourceOwner")+ Prelude.<*> (x Data..: "version")+ Prelude.<*> (x Data..: "virtualNodeName")+ )++instance Prelude.Hashable VirtualNodeRef where+ hashWithSalt _salt VirtualNodeRef' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` resourceOwner+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` virtualNodeName++instance Prelude.NFData VirtualNodeRef where+ rnf VirtualNodeRef' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf resourceOwner+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf virtualNodeName
+ gen/Amazonka/AppMesh/Types/VirtualNodeServiceProvider.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.AppMesh.Types.VirtualNodeServiceProvider+-- 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.AppMesh.Types.VirtualNodeServiceProvider 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++-- | An object that represents a virtual node service provider.+--+-- /See:/ 'newVirtualNodeServiceProvider' smart constructor.+data VirtualNodeServiceProvider = VirtualNodeServiceProvider'+ { -- | The name of the virtual node that is acting as a service provider.+ virtualNodeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeServiceProvider' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'virtualNodeName', 'virtualNodeServiceProvider_virtualNodeName' - The name of the virtual node that is acting as a service provider.+newVirtualNodeServiceProvider ::+ -- | 'virtualNodeName'+ Prelude.Text ->+ VirtualNodeServiceProvider+newVirtualNodeServiceProvider pVirtualNodeName_ =+ VirtualNodeServiceProvider'+ { virtualNodeName =+ pVirtualNodeName_+ }++-- | The name of the virtual node that is acting as a service provider.+virtualNodeServiceProvider_virtualNodeName :: Lens.Lens' VirtualNodeServiceProvider Prelude.Text+virtualNodeServiceProvider_virtualNodeName = Lens.lens (\VirtualNodeServiceProvider' {virtualNodeName} -> virtualNodeName) (\s@VirtualNodeServiceProvider' {} a -> s {virtualNodeName = a} :: VirtualNodeServiceProvider)++instance Data.FromJSON VirtualNodeServiceProvider where+ parseJSON =+ Data.withObject+ "VirtualNodeServiceProvider"+ ( \x ->+ VirtualNodeServiceProvider'+ Prelude.<$> (x Data..: "virtualNodeName")+ )++instance Prelude.Hashable VirtualNodeServiceProvider where+ hashWithSalt _salt VirtualNodeServiceProvider' {..} =+ _salt `Prelude.hashWithSalt` virtualNodeName++instance Prelude.NFData VirtualNodeServiceProvider where+ rnf VirtualNodeServiceProvider' {..} =+ Prelude.rnf virtualNodeName++instance Data.ToJSON VirtualNodeServiceProvider where+ toJSON VirtualNodeServiceProvider' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("virtualNodeName" Data..= virtualNodeName)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualNodeSpec.hs view
@@ -0,0 +1,157 @@+{-# 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.AppMesh.Types.VirtualNodeSpec+-- 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.AppMesh.Types.VirtualNodeSpec where++import Amazonka.AppMesh.Types.Backend+import Amazonka.AppMesh.Types.BackendDefaults+import Amazonka.AppMesh.Types.Listener+import Amazonka.AppMesh.Types.Logging+import Amazonka.AppMesh.Types.ServiceDiscovery+import qualified 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 object that represents the specification of a virtual node.+--+-- /See:/ 'newVirtualNodeSpec' smart constructor.+data VirtualNodeSpec = VirtualNodeSpec'+ { -- | A reference to an object that represents the defaults for backends.+ backendDefaults :: Prelude.Maybe BackendDefaults,+ -- | The backends that the virtual node is expected to send outbound traffic+ -- to.+ backends :: Prelude.Maybe [Backend],+ -- | The listener that the virtual node is expected to receive inbound+ -- traffic from. You can specify one listener.+ listeners :: Prelude.Maybe [Listener],+ -- | The inbound and outbound access logging information for the virtual+ -- node.+ logging :: Prelude.Maybe Logging,+ -- | The service discovery information for the virtual node. If your virtual+ -- node does not expect ingress traffic, you can omit this parameter. If+ -- you specify a @listener@, then you must specify service discovery+ -- information.+ serviceDiscovery :: Prelude.Maybe ServiceDiscovery+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeSpec' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backendDefaults', 'virtualNodeSpec_backendDefaults' - A reference to an object that represents the defaults for backends.+--+-- 'backends', 'virtualNodeSpec_backends' - The backends that the virtual node is expected to send outbound traffic+-- to.+--+-- 'listeners', 'virtualNodeSpec_listeners' - The listener that the virtual node is expected to receive inbound+-- traffic from. You can specify one listener.+--+-- 'logging', 'virtualNodeSpec_logging' - The inbound and outbound access logging information for the virtual+-- node.+--+-- 'serviceDiscovery', 'virtualNodeSpec_serviceDiscovery' - The service discovery information for the virtual node. If your virtual+-- node does not expect ingress traffic, you can omit this parameter. If+-- you specify a @listener@, then you must specify service discovery+-- information.+newVirtualNodeSpec ::+ VirtualNodeSpec+newVirtualNodeSpec =+ VirtualNodeSpec'+ { backendDefaults = Prelude.Nothing,+ backends = Prelude.Nothing,+ listeners = Prelude.Nothing,+ logging = Prelude.Nothing,+ serviceDiscovery = Prelude.Nothing+ }++-- | A reference to an object that represents the defaults for backends.+virtualNodeSpec_backendDefaults :: Lens.Lens' VirtualNodeSpec (Prelude.Maybe BackendDefaults)+virtualNodeSpec_backendDefaults = Lens.lens (\VirtualNodeSpec' {backendDefaults} -> backendDefaults) (\s@VirtualNodeSpec' {} a -> s {backendDefaults = a} :: VirtualNodeSpec)++-- | The backends that the virtual node is expected to send outbound traffic+-- to.+virtualNodeSpec_backends :: Lens.Lens' VirtualNodeSpec (Prelude.Maybe [Backend])+virtualNodeSpec_backends = Lens.lens (\VirtualNodeSpec' {backends} -> backends) (\s@VirtualNodeSpec' {} a -> s {backends = a} :: VirtualNodeSpec) Prelude.. Lens.mapping Lens.coerced++-- | The listener that the virtual node is expected to receive inbound+-- traffic from. You can specify one listener.+virtualNodeSpec_listeners :: Lens.Lens' VirtualNodeSpec (Prelude.Maybe [Listener])+virtualNodeSpec_listeners = Lens.lens (\VirtualNodeSpec' {listeners} -> listeners) (\s@VirtualNodeSpec' {} a -> s {listeners = a} :: VirtualNodeSpec) Prelude.. Lens.mapping Lens.coerced++-- | The inbound and outbound access logging information for the virtual+-- node.+virtualNodeSpec_logging :: Lens.Lens' VirtualNodeSpec (Prelude.Maybe Logging)+virtualNodeSpec_logging = Lens.lens (\VirtualNodeSpec' {logging} -> logging) (\s@VirtualNodeSpec' {} a -> s {logging = a} :: VirtualNodeSpec)++-- | The service discovery information for the virtual node. If your virtual+-- node does not expect ingress traffic, you can omit this parameter. If+-- you specify a @listener@, then you must specify service discovery+-- information.+virtualNodeSpec_serviceDiscovery :: Lens.Lens' VirtualNodeSpec (Prelude.Maybe ServiceDiscovery)+virtualNodeSpec_serviceDiscovery = Lens.lens (\VirtualNodeSpec' {serviceDiscovery} -> serviceDiscovery) (\s@VirtualNodeSpec' {} a -> s {serviceDiscovery = a} :: VirtualNodeSpec)++instance Data.FromJSON VirtualNodeSpec where+ parseJSON =+ Data.withObject+ "VirtualNodeSpec"+ ( \x ->+ VirtualNodeSpec'+ Prelude.<$> (x Data..:? "backendDefaults")+ Prelude.<*> (x Data..:? "backends" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "listeners" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "logging")+ Prelude.<*> (x Data..:? "serviceDiscovery")+ )++instance Prelude.Hashable VirtualNodeSpec where+ hashWithSalt _salt VirtualNodeSpec' {..} =+ _salt+ `Prelude.hashWithSalt` backendDefaults+ `Prelude.hashWithSalt` backends+ `Prelude.hashWithSalt` listeners+ `Prelude.hashWithSalt` logging+ `Prelude.hashWithSalt` serviceDiscovery++instance Prelude.NFData VirtualNodeSpec where+ rnf VirtualNodeSpec' {..} =+ Prelude.rnf backendDefaults+ `Prelude.seq` Prelude.rnf backends+ `Prelude.seq` Prelude.rnf listeners+ `Prelude.seq` Prelude.rnf logging+ `Prelude.seq` Prelude.rnf serviceDiscovery++instance Data.ToJSON VirtualNodeSpec where+ toJSON VirtualNodeSpec' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("backendDefaults" Data..=)+ Prelude.<$> backendDefaults,+ ("backends" Data..=) Prelude.<$> backends,+ ("listeners" Data..=) Prelude.<$> listeners,+ ("logging" Data..=) Prelude.<$> logging,+ ("serviceDiscovery" Data..=)+ Prelude.<$> serviceDiscovery+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualNodeStatus.hs view
@@ -0,0 +1,70 @@+{-# 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.AppMesh.Types.VirtualNodeStatus+-- 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.AppMesh.Types.VirtualNodeStatus where++import Amazonka.AppMesh.Types.VirtualNodeStatusCode+import qualified 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 object that represents the current status of the virtual node.+--+-- /See:/ 'newVirtualNodeStatus' smart constructor.+data VirtualNodeStatus = VirtualNodeStatus'+ { -- | The current status of the virtual node.+ status :: VirtualNodeStatusCode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'virtualNodeStatus_status' - The current status of the virtual node.+newVirtualNodeStatus ::+ -- | 'status'+ VirtualNodeStatusCode ->+ VirtualNodeStatus+newVirtualNodeStatus pStatus_ =+ VirtualNodeStatus' {status = pStatus_}++-- | The current status of the virtual node.+virtualNodeStatus_status :: Lens.Lens' VirtualNodeStatus VirtualNodeStatusCode+virtualNodeStatus_status = Lens.lens (\VirtualNodeStatus' {status} -> status) (\s@VirtualNodeStatus' {} a -> s {status = a} :: VirtualNodeStatus)++instance Data.FromJSON VirtualNodeStatus where+ parseJSON =+ Data.withObject+ "VirtualNodeStatus"+ ( \x ->+ VirtualNodeStatus' Prelude.<$> (x Data..: "status")+ )++instance Prelude.Hashable VirtualNodeStatus where+ hashWithSalt _salt VirtualNodeStatus' {..} =+ _salt `Prelude.hashWithSalt` status++instance Prelude.NFData VirtualNodeStatus where+ rnf VirtualNodeStatus' {..} = Prelude.rnf status
+ gen/Amazonka/AppMesh/Types/VirtualNodeStatusCode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualNodeStatusCode+-- 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.AppMesh.Types.VirtualNodeStatusCode+ ( VirtualNodeStatusCode+ ( ..,+ VirtualNodeStatusCode_ACTIVE,+ VirtualNodeStatusCode_DELETED,+ VirtualNodeStatusCode_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VirtualNodeStatusCode = VirtualNodeStatusCode'+ { fromVirtualNodeStatusCode ::+ 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 VirtualNodeStatusCode_ACTIVE :: VirtualNodeStatusCode+pattern VirtualNodeStatusCode_ACTIVE = VirtualNodeStatusCode' "ACTIVE"++pattern VirtualNodeStatusCode_DELETED :: VirtualNodeStatusCode+pattern VirtualNodeStatusCode_DELETED = VirtualNodeStatusCode' "DELETED"++pattern VirtualNodeStatusCode_INACTIVE :: VirtualNodeStatusCode+pattern VirtualNodeStatusCode_INACTIVE = VirtualNodeStatusCode' "INACTIVE"++{-# COMPLETE+ VirtualNodeStatusCode_ACTIVE,+ VirtualNodeStatusCode_DELETED,+ VirtualNodeStatusCode_INACTIVE,+ VirtualNodeStatusCode'+ #-}
+ gen/Amazonka/AppMesh/Types/VirtualNodeTcpConnectionPool.hs view
@@ -0,0 +1,89 @@+{-# 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.AppMesh.Types.VirtualNodeTcpConnectionPool+-- 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.AppMesh.Types.VirtualNodeTcpConnectionPool 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++-- | An object that represents a type of connection pool.+--+-- /See:/ 'newVirtualNodeTcpConnectionPool' smart constructor.+data VirtualNodeTcpConnectionPool = VirtualNodeTcpConnectionPool'+ { -- | Maximum number of outbound TCP connections Envoy can establish+ -- concurrently with all hosts in upstream cluster.+ maxConnections :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualNodeTcpConnectionPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxConnections', 'virtualNodeTcpConnectionPool_maxConnections' - Maximum number of outbound TCP connections Envoy can establish+-- concurrently with all hosts in upstream cluster.+newVirtualNodeTcpConnectionPool ::+ -- | 'maxConnections'+ Prelude.Natural ->+ VirtualNodeTcpConnectionPool+newVirtualNodeTcpConnectionPool pMaxConnections_ =+ VirtualNodeTcpConnectionPool'+ { maxConnections =+ pMaxConnections_+ }++-- | Maximum number of outbound TCP connections Envoy can establish+-- concurrently with all hosts in upstream cluster.+virtualNodeTcpConnectionPool_maxConnections :: Lens.Lens' VirtualNodeTcpConnectionPool Prelude.Natural+virtualNodeTcpConnectionPool_maxConnections = Lens.lens (\VirtualNodeTcpConnectionPool' {maxConnections} -> maxConnections) (\s@VirtualNodeTcpConnectionPool' {} a -> s {maxConnections = a} :: VirtualNodeTcpConnectionPool)++instance Data.FromJSON VirtualNodeTcpConnectionPool where+ parseJSON =+ Data.withObject+ "VirtualNodeTcpConnectionPool"+ ( \x ->+ VirtualNodeTcpConnectionPool'+ Prelude.<$> (x Data..: "maxConnections")+ )++instance+ Prelude.Hashable+ VirtualNodeTcpConnectionPool+ where+ hashWithSalt _salt VirtualNodeTcpConnectionPool' {..} =+ _salt `Prelude.hashWithSalt` maxConnections++instance Prelude.NFData VirtualNodeTcpConnectionPool where+ rnf VirtualNodeTcpConnectionPool' {..} =+ Prelude.rnf maxConnections++instance Data.ToJSON VirtualNodeTcpConnectionPool where+ toJSON VirtualNodeTcpConnectionPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("maxConnections" Data..= maxConnections)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualRouterData.hs view
@@ -0,0 +1,139 @@+{-# 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.AppMesh.Types.VirtualRouterData+-- 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.AppMesh.Types.VirtualRouterData where++import Amazonka.AppMesh.Types.ResourceMetadata+import Amazonka.AppMesh.Types.VirtualRouterSpec+import Amazonka.AppMesh.Types.VirtualRouterStatus+import qualified 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 object that represents a virtual router returned by a describe+-- operation.+--+-- /See:/ 'newVirtualRouterData' smart constructor.+data VirtualRouterData = VirtualRouterData'+ { -- | The name of the service mesh that the virtual router resides in.+ meshName :: Prelude.Text,+ -- | The associated metadata for the virtual router.+ metadata :: ResourceMetadata,+ -- | The specifications of the virtual router.+ spec :: VirtualRouterSpec,+ -- | The current status of the virtual router.+ status :: VirtualRouterStatus,+ -- | The name of the virtual router.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualRouterData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshName', 'virtualRouterData_meshName' - The name of the service mesh that the virtual router resides in.+--+-- 'metadata', 'virtualRouterData_metadata' - The associated metadata for the virtual router.+--+-- 'spec', 'virtualRouterData_spec' - The specifications of the virtual router.+--+-- 'status', 'virtualRouterData_status' - The current status of the virtual router.+--+-- 'virtualRouterName', 'virtualRouterData_virtualRouterName' - The name of the virtual router.+newVirtualRouterData ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'metadata'+ ResourceMetadata ->+ -- | 'spec'+ VirtualRouterSpec ->+ -- | 'status'+ VirtualRouterStatus ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ VirtualRouterData+newVirtualRouterData+ pMeshName_+ pMetadata_+ pSpec_+ pStatus_+ pVirtualRouterName_ =+ VirtualRouterData'+ { meshName = pMeshName_,+ metadata = pMetadata_,+ spec = pSpec_,+ status = pStatus_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The name of the service mesh that the virtual router resides in.+virtualRouterData_meshName :: Lens.Lens' VirtualRouterData Prelude.Text+virtualRouterData_meshName = Lens.lens (\VirtualRouterData' {meshName} -> meshName) (\s@VirtualRouterData' {} a -> s {meshName = a} :: VirtualRouterData)++-- | The associated metadata for the virtual router.+virtualRouterData_metadata :: Lens.Lens' VirtualRouterData ResourceMetadata+virtualRouterData_metadata = Lens.lens (\VirtualRouterData' {metadata} -> metadata) (\s@VirtualRouterData' {} a -> s {metadata = a} :: VirtualRouterData)++-- | The specifications of the virtual router.+virtualRouterData_spec :: Lens.Lens' VirtualRouterData VirtualRouterSpec+virtualRouterData_spec = Lens.lens (\VirtualRouterData' {spec} -> spec) (\s@VirtualRouterData' {} a -> s {spec = a} :: VirtualRouterData)++-- | The current status of the virtual router.+virtualRouterData_status :: Lens.Lens' VirtualRouterData VirtualRouterStatus+virtualRouterData_status = Lens.lens (\VirtualRouterData' {status} -> status) (\s@VirtualRouterData' {} a -> s {status = a} :: VirtualRouterData)++-- | The name of the virtual router.+virtualRouterData_virtualRouterName :: Lens.Lens' VirtualRouterData Prelude.Text+virtualRouterData_virtualRouterName = Lens.lens (\VirtualRouterData' {virtualRouterName} -> virtualRouterName) (\s@VirtualRouterData' {} a -> s {virtualRouterName = a} :: VirtualRouterData)++instance Data.FromJSON VirtualRouterData where+ parseJSON =+ Data.withObject+ "VirtualRouterData"+ ( \x ->+ VirtualRouterData'+ Prelude.<$> (x Data..: "meshName")+ Prelude.<*> (x Data..: "metadata")+ Prelude.<*> (x Data..: "spec")+ Prelude.<*> (x Data..: "status")+ Prelude.<*> (x Data..: "virtualRouterName")+ )++instance Prelude.Hashable VirtualRouterData where+ hashWithSalt _salt VirtualRouterData' {..} =+ _salt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData VirtualRouterData where+ rnf VirtualRouterData' {..} =+ Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf virtualRouterName
+ gen/Amazonka/AppMesh/Types/VirtualRouterListener.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualRouterListener+-- 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.AppMesh.Types.VirtualRouterListener where++import Amazonka.AppMesh.Types.PortMapping+import qualified 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 object that represents a virtual router listener.+--+-- /See:/ 'newVirtualRouterListener' smart constructor.+data VirtualRouterListener = VirtualRouterListener'+ { portMapping :: PortMapping+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualRouterListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'portMapping', 'virtualRouterListener_portMapping' - Undocumented member.+newVirtualRouterListener ::+ -- | 'portMapping'+ PortMapping ->+ VirtualRouterListener+newVirtualRouterListener pPortMapping_ =+ VirtualRouterListener' {portMapping = pPortMapping_}++-- | Undocumented member.+virtualRouterListener_portMapping :: Lens.Lens' VirtualRouterListener PortMapping+virtualRouterListener_portMapping = Lens.lens (\VirtualRouterListener' {portMapping} -> portMapping) (\s@VirtualRouterListener' {} a -> s {portMapping = a} :: VirtualRouterListener)++instance Data.FromJSON VirtualRouterListener where+ parseJSON =+ Data.withObject+ "VirtualRouterListener"+ ( \x ->+ VirtualRouterListener'+ Prelude.<$> (x Data..: "portMapping")+ )++instance Prelude.Hashable VirtualRouterListener where+ hashWithSalt _salt VirtualRouterListener' {..} =+ _salt `Prelude.hashWithSalt` portMapping++instance Prelude.NFData VirtualRouterListener where+ rnf VirtualRouterListener' {..} =+ Prelude.rnf portMapping++instance Data.ToJSON VirtualRouterListener where+ toJSON VirtualRouterListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("portMapping" Data..= portMapping)]+ )
+ gen/Amazonka/AppMesh/Types/VirtualRouterRef.hs view
@@ -0,0 +1,207 @@+{-# 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.AppMesh.Types.VirtualRouterRef+-- 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.AppMesh.Types.VirtualRouterRef 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++-- | An object that represents a virtual router returned by a list operation.+--+-- /See:/ 'newVirtualRouterRef' smart constructor.+data VirtualRouterRef = VirtualRouterRef'+ { -- | The full Amazon Resource Name (ARN) for the virtual router.+ arn :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was created.+ createdAt :: Data.POSIX,+ -- | The Unix epoch timestamp in seconds for when the resource was last+ -- updated.+ lastUpdatedAt :: Data.POSIX,+ -- | The name of the service mesh that the virtual router resides in.+ meshName :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the resource owner. If the+ -- account ID is not your own, then it\'s the ID of the mesh owner or of+ -- another account that the mesh is shared with. For more information about+ -- mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ resourceOwner :: Prelude.Text,+ -- | The version of the resource. Resources are created at version 1, and+ -- this version is incremented each time that they\'re updated.+ version :: Prelude.Integer,+ -- | The name of the virtual router.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualRouterRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'virtualRouterRef_arn' - The full Amazon Resource Name (ARN) for the virtual router.+--+-- 'createdAt', 'virtualRouterRef_createdAt' - The Unix epoch timestamp in seconds for when the resource was created.+--+-- 'lastUpdatedAt', 'virtualRouterRef_lastUpdatedAt' - The Unix epoch timestamp in seconds for when the resource was last+-- updated.+--+-- 'meshName', 'virtualRouterRef_meshName' - The name of the service mesh that the virtual router resides in.+--+-- 'meshOwner', 'virtualRouterRef_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'resourceOwner', 'virtualRouterRef_resourceOwner' - The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'version', 'virtualRouterRef_version' - The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+--+-- 'virtualRouterName', 'virtualRouterRef_virtualRouterName' - The name of the virtual router.+newVirtualRouterRef ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'meshOwner'+ Prelude.Text ->+ -- | 'resourceOwner'+ Prelude.Text ->+ -- | 'version'+ Prelude.Integer ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ VirtualRouterRef+newVirtualRouterRef+ pArn_+ pCreatedAt_+ pLastUpdatedAt_+ pMeshName_+ pMeshOwner_+ pResourceOwner_+ pVersion_+ pVirtualRouterName_ =+ VirtualRouterRef'+ { arn = pArn_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_,+ meshName = pMeshName_,+ meshOwner = pMeshOwner_,+ resourceOwner = pResourceOwner_,+ version = pVersion_,+ virtualRouterName = pVirtualRouterName_+ }++-- | The full Amazon Resource Name (ARN) for the virtual router.+virtualRouterRef_arn :: Lens.Lens' VirtualRouterRef Prelude.Text+virtualRouterRef_arn = Lens.lens (\VirtualRouterRef' {arn} -> arn) (\s@VirtualRouterRef' {} a -> s {arn = a} :: VirtualRouterRef)++-- | The Unix epoch timestamp in seconds for when the resource was created.+virtualRouterRef_createdAt :: Lens.Lens' VirtualRouterRef Prelude.UTCTime+virtualRouterRef_createdAt = Lens.lens (\VirtualRouterRef' {createdAt} -> createdAt) (\s@VirtualRouterRef' {} a -> s {createdAt = a} :: VirtualRouterRef) Prelude.. Data._Time++-- | The Unix epoch timestamp in seconds for when the resource was last+-- updated.+virtualRouterRef_lastUpdatedAt :: Lens.Lens' VirtualRouterRef Prelude.UTCTime+virtualRouterRef_lastUpdatedAt = Lens.lens (\VirtualRouterRef' {lastUpdatedAt} -> lastUpdatedAt) (\s@VirtualRouterRef' {} a -> s {lastUpdatedAt = a} :: VirtualRouterRef) Prelude.. Data._Time++-- | The name of the service mesh that the virtual router resides in.+virtualRouterRef_meshName :: Lens.Lens' VirtualRouterRef Prelude.Text+virtualRouterRef_meshName = Lens.lens (\VirtualRouterRef' {meshName} -> meshName) (\s@VirtualRouterRef' {} a -> s {meshName = a} :: VirtualRouterRef)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+virtualRouterRef_meshOwner :: Lens.Lens' VirtualRouterRef Prelude.Text+virtualRouterRef_meshOwner = Lens.lens (\VirtualRouterRef' {meshOwner} -> meshOwner) (\s@VirtualRouterRef' {} a -> s {meshOwner = a} :: VirtualRouterRef)++-- | The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+virtualRouterRef_resourceOwner :: Lens.Lens' VirtualRouterRef Prelude.Text+virtualRouterRef_resourceOwner = Lens.lens (\VirtualRouterRef' {resourceOwner} -> resourceOwner) (\s@VirtualRouterRef' {} a -> s {resourceOwner = a} :: VirtualRouterRef)++-- | The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+virtualRouterRef_version :: Lens.Lens' VirtualRouterRef Prelude.Integer+virtualRouterRef_version = Lens.lens (\VirtualRouterRef' {version} -> version) (\s@VirtualRouterRef' {} a -> s {version = a} :: VirtualRouterRef)++-- | The name of the virtual router.+virtualRouterRef_virtualRouterName :: Lens.Lens' VirtualRouterRef Prelude.Text+virtualRouterRef_virtualRouterName = Lens.lens (\VirtualRouterRef' {virtualRouterName} -> virtualRouterName) (\s@VirtualRouterRef' {} a -> s {virtualRouterName = a} :: VirtualRouterRef)++instance Data.FromJSON VirtualRouterRef where+ parseJSON =+ Data.withObject+ "VirtualRouterRef"+ ( \x ->+ VirtualRouterRef'+ Prelude.<$> (x Data..: "arn")+ Prelude.<*> (x Data..: "createdAt")+ Prelude.<*> (x Data..: "lastUpdatedAt")+ Prelude.<*> (x Data..: "meshName")+ Prelude.<*> (x Data..: "meshOwner")+ Prelude.<*> (x Data..: "resourceOwner")+ Prelude.<*> (x Data..: "version")+ Prelude.<*> (x Data..: "virtualRouterName")+ )++instance Prelude.Hashable VirtualRouterRef where+ hashWithSalt _salt VirtualRouterRef' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` resourceOwner+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData VirtualRouterRef where+ rnf VirtualRouterRef' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf resourceOwner+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf virtualRouterName
+ gen/Amazonka/AppMesh/Types/VirtualRouterServiceProvider.hs view
@@ -0,0 +1,86 @@+{-# 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.AppMesh.Types.VirtualRouterServiceProvider+-- 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.AppMesh.Types.VirtualRouterServiceProvider 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++-- | An object that represents a virtual node service provider.+--+-- /See:/ 'newVirtualRouterServiceProvider' smart constructor.+data VirtualRouterServiceProvider = VirtualRouterServiceProvider'+ { -- | The name of the virtual router that is acting as a service provider.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualRouterServiceProvider' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'virtualRouterName', 'virtualRouterServiceProvider_virtualRouterName' - The name of the virtual router that is acting as a service provider.+newVirtualRouterServiceProvider ::+ -- | 'virtualRouterName'+ Prelude.Text ->+ VirtualRouterServiceProvider+newVirtualRouterServiceProvider pVirtualRouterName_ =+ VirtualRouterServiceProvider'+ { virtualRouterName =+ pVirtualRouterName_+ }++-- | The name of the virtual router that is acting as a service provider.+virtualRouterServiceProvider_virtualRouterName :: Lens.Lens' VirtualRouterServiceProvider Prelude.Text+virtualRouterServiceProvider_virtualRouterName = Lens.lens (\VirtualRouterServiceProvider' {virtualRouterName} -> virtualRouterName) (\s@VirtualRouterServiceProvider' {} a -> s {virtualRouterName = a} :: VirtualRouterServiceProvider)++instance Data.FromJSON VirtualRouterServiceProvider where+ parseJSON =+ Data.withObject+ "VirtualRouterServiceProvider"+ ( \x ->+ VirtualRouterServiceProvider'+ Prelude.<$> (x Data..: "virtualRouterName")+ )++instance+ Prelude.Hashable+ VirtualRouterServiceProvider+ where+ hashWithSalt _salt VirtualRouterServiceProvider' {..} =+ _salt `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData VirtualRouterServiceProvider where+ rnf VirtualRouterServiceProvider' {..} =+ Prelude.rnf virtualRouterName++instance Data.ToJSON VirtualRouterServiceProvider where+ toJSON VirtualRouterServiceProvider' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("virtualRouterName" Data..= virtualRouterName)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualRouterSpec.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.AppMesh.Types.VirtualRouterSpec+-- 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.AppMesh.Types.VirtualRouterSpec where++import Amazonka.AppMesh.Types.VirtualRouterListener+import qualified 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 object that represents the specification of a virtual router.+--+-- /See:/ 'newVirtualRouterSpec' smart constructor.+data VirtualRouterSpec = VirtualRouterSpec'+ { -- | The listeners that the virtual router is expected to receive inbound+ -- traffic from. You can specify one listener.+ listeners :: Prelude.Maybe [VirtualRouterListener]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualRouterSpec' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listeners', 'virtualRouterSpec_listeners' - The listeners that the virtual router is expected to receive inbound+-- traffic from. You can specify one listener.+newVirtualRouterSpec ::+ VirtualRouterSpec+newVirtualRouterSpec =+ VirtualRouterSpec' {listeners = Prelude.Nothing}++-- | The listeners that the virtual router is expected to receive inbound+-- traffic from. You can specify one listener.+virtualRouterSpec_listeners :: Lens.Lens' VirtualRouterSpec (Prelude.Maybe [VirtualRouterListener])+virtualRouterSpec_listeners = Lens.lens (\VirtualRouterSpec' {listeners} -> listeners) (\s@VirtualRouterSpec' {} a -> s {listeners = a} :: VirtualRouterSpec) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON VirtualRouterSpec where+ parseJSON =+ Data.withObject+ "VirtualRouterSpec"+ ( \x ->+ VirtualRouterSpec'+ Prelude.<$> (x Data..:? "listeners" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable VirtualRouterSpec where+ hashWithSalt _salt VirtualRouterSpec' {..} =+ _salt `Prelude.hashWithSalt` listeners++instance Prelude.NFData VirtualRouterSpec where+ rnf VirtualRouterSpec' {..} = Prelude.rnf listeners++instance Data.ToJSON VirtualRouterSpec where+ toJSON VirtualRouterSpec' {..} =+ Data.object+ ( Prelude.catMaybes+ [("listeners" Data..=) Prelude.<$> listeners]+ )
+ gen/Amazonka/AppMesh/Types/VirtualRouterStatus.hs view
@@ -0,0 +1,71 @@+{-# 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.AppMesh.Types.VirtualRouterStatus+-- 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.AppMesh.Types.VirtualRouterStatus where++import Amazonka.AppMesh.Types.VirtualRouterStatusCode+import qualified 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 object that represents the status of a virtual router.+--+-- /See:/ 'newVirtualRouterStatus' smart constructor.+data VirtualRouterStatus = VirtualRouterStatus'+ { -- | The current status of the virtual router.+ status :: VirtualRouterStatusCode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualRouterStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'virtualRouterStatus_status' - The current status of the virtual router.+newVirtualRouterStatus ::+ -- | 'status'+ VirtualRouterStatusCode ->+ VirtualRouterStatus+newVirtualRouterStatus pStatus_ =+ VirtualRouterStatus' {status = pStatus_}++-- | The current status of the virtual router.+virtualRouterStatus_status :: Lens.Lens' VirtualRouterStatus VirtualRouterStatusCode+virtualRouterStatus_status = Lens.lens (\VirtualRouterStatus' {status} -> status) (\s@VirtualRouterStatus' {} a -> s {status = a} :: VirtualRouterStatus)++instance Data.FromJSON VirtualRouterStatus where+ parseJSON =+ Data.withObject+ "VirtualRouterStatus"+ ( \x ->+ VirtualRouterStatus'+ Prelude.<$> (x Data..: "status")+ )++instance Prelude.Hashable VirtualRouterStatus where+ hashWithSalt _salt VirtualRouterStatus' {..} =+ _salt `Prelude.hashWithSalt` status++instance Prelude.NFData VirtualRouterStatus where+ rnf VirtualRouterStatus' {..} = Prelude.rnf status
+ gen/Amazonka/AppMesh/Types/VirtualRouterStatusCode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualRouterStatusCode+-- 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.AppMesh.Types.VirtualRouterStatusCode+ ( VirtualRouterStatusCode+ ( ..,+ VirtualRouterStatusCode_ACTIVE,+ VirtualRouterStatusCode_DELETED,+ VirtualRouterStatusCode_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VirtualRouterStatusCode = VirtualRouterStatusCode'+ { fromVirtualRouterStatusCode ::+ 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 VirtualRouterStatusCode_ACTIVE :: VirtualRouterStatusCode+pattern VirtualRouterStatusCode_ACTIVE = VirtualRouterStatusCode' "ACTIVE"++pattern VirtualRouterStatusCode_DELETED :: VirtualRouterStatusCode+pattern VirtualRouterStatusCode_DELETED = VirtualRouterStatusCode' "DELETED"++pattern VirtualRouterStatusCode_INACTIVE :: VirtualRouterStatusCode+pattern VirtualRouterStatusCode_INACTIVE = VirtualRouterStatusCode' "INACTIVE"++{-# COMPLETE+ VirtualRouterStatusCode_ACTIVE,+ VirtualRouterStatusCode_DELETED,+ VirtualRouterStatusCode_INACTIVE,+ VirtualRouterStatusCode'+ #-}
+ gen/Amazonka/AppMesh/Types/VirtualServiceBackend.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.AppMesh.Types.VirtualServiceBackend+-- 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.AppMesh.Types.VirtualServiceBackend where++import Amazonka.AppMesh.Types.ClientPolicy+import qualified 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 object that represents a virtual service backend for a virtual node.+--+-- /See:/ 'newVirtualServiceBackend' smart constructor.+data VirtualServiceBackend = VirtualServiceBackend'+ { -- | A reference to an object that represents the client policy for a+ -- backend.+ clientPolicy :: Prelude.Maybe ClientPolicy,+ -- | The name of the virtual service that is acting as a virtual node+ -- backend.+ virtualServiceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualServiceBackend' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientPolicy', 'virtualServiceBackend_clientPolicy' - A reference to an object that represents the client policy for a+-- backend.+--+-- 'virtualServiceName', 'virtualServiceBackend_virtualServiceName' - The name of the virtual service that is acting as a virtual node+-- backend.+newVirtualServiceBackend ::+ -- | 'virtualServiceName'+ Prelude.Text ->+ VirtualServiceBackend+newVirtualServiceBackend pVirtualServiceName_ =+ VirtualServiceBackend'+ { clientPolicy =+ Prelude.Nothing,+ virtualServiceName = pVirtualServiceName_+ }++-- | A reference to an object that represents the client policy for a+-- backend.+virtualServiceBackend_clientPolicy :: Lens.Lens' VirtualServiceBackend (Prelude.Maybe ClientPolicy)+virtualServiceBackend_clientPolicy = Lens.lens (\VirtualServiceBackend' {clientPolicy} -> clientPolicy) (\s@VirtualServiceBackend' {} a -> s {clientPolicy = a} :: VirtualServiceBackend)++-- | The name of the virtual service that is acting as a virtual node+-- backend.+virtualServiceBackend_virtualServiceName :: Lens.Lens' VirtualServiceBackend Prelude.Text+virtualServiceBackend_virtualServiceName = Lens.lens (\VirtualServiceBackend' {virtualServiceName} -> virtualServiceName) (\s@VirtualServiceBackend' {} a -> s {virtualServiceName = a} :: VirtualServiceBackend)++instance Data.FromJSON VirtualServiceBackend where+ parseJSON =+ Data.withObject+ "VirtualServiceBackend"+ ( \x ->+ VirtualServiceBackend'+ Prelude.<$> (x Data..:? "clientPolicy")+ Prelude.<*> (x Data..: "virtualServiceName")+ )++instance Prelude.Hashable VirtualServiceBackend where+ hashWithSalt _salt VirtualServiceBackend' {..} =+ _salt+ `Prelude.hashWithSalt` clientPolicy+ `Prelude.hashWithSalt` virtualServiceName++instance Prelude.NFData VirtualServiceBackend where+ rnf VirtualServiceBackend' {..} =+ Prelude.rnf clientPolicy+ `Prelude.seq` Prelude.rnf virtualServiceName++instance Data.ToJSON VirtualServiceBackend where+ toJSON VirtualServiceBackend' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientPolicy" Data..=) Prelude.<$> clientPolicy,+ Prelude.Just+ ("virtualServiceName" Data..= virtualServiceName)+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualServiceData.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualServiceData+-- 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.AppMesh.Types.VirtualServiceData where++import Amazonka.AppMesh.Types.ResourceMetadata+import Amazonka.AppMesh.Types.VirtualServiceSpec+import Amazonka.AppMesh.Types.VirtualServiceStatus+import qualified 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 object that represents a virtual service returned by a describe+-- operation.+--+-- /See:/ 'newVirtualServiceData' smart constructor.+data VirtualServiceData = VirtualServiceData'+ { -- | The name of the service mesh that the virtual service resides in.+ meshName :: Prelude.Text,+ metadata :: ResourceMetadata,+ -- | The specifications of the virtual service.+ spec :: VirtualServiceSpec,+ -- | The current status of the virtual service.+ status :: VirtualServiceStatus,+ -- | The name of the virtual service.+ virtualServiceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualServiceData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meshName', 'virtualServiceData_meshName' - The name of the service mesh that the virtual service resides in.+--+-- 'metadata', 'virtualServiceData_metadata' - Undocumented member.+--+-- 'spec', 'virtualServiceData_spec' - The specifications of the virtual service.+--+-- 'status', 'virtualServiceData_status' - The current status of the virtual service.+--+-- 'virtualServiceName', 'virtualServiceData_virtualServiceName' - The name of the virtual service.+newVirtualServiceData ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'metadata'+ ResourceMetadata ->+ -- | 'spec'+ VirtualServiceSpec ->+ -- | 'status'+ VirtualServiceStatus ->+ -- | 'virtualServiceName'+ Prelude.Text ->+ VirtualServiceData+newVirtualServiceData+ pMeshName_+ pMetadata_+ pSpec_+ pStatus_+ pVirtualServiceName_ =+ VirtualServiceData'+ { meshName = pMeshName_,+ metadata = pMetadata_,+ spec = pSpec_,+ status = pStatus_,+ virtualServiceName = pVirtualServiceName_+ }++-- | The name of the service mesh that the virtual service resides in.+virtualServiceData_meshName :: Lens.Lens' VirtualServiceData Prelude.Text+virtualServiceData_meshName = Lens.lens (\VirtualServiceData' {meshName} -> meshName) (\s@VirtualServiceData' {} a -> s {meshName = a} :: VirtualServiceData)++-- | Undocumented member.+virtualServiceData_metadata :: Lens.Lens' VirtualServiceData ResourceMetadata+virtualServiceData_metadata = Lens.lens (\VirtualServiceData' {metadata} -> metadata) (\s@VirtualServiceData' {} a -> s {metadata = a} :: VirtualServiceData)++-- | The specifications of the virtual service.+virtualServiceData_spec :: Lens.Lens' VirtualServiceData VirtualServiceSpec+virtualServiceData_spec = Lens.lens (\VirtualServiceData' {spec} -> spec) (\s@VirtualServiceData' {} a -> s {spec = a} :: VirtualServiceData)++-- | The current status of the virtual service.+virtualServiceData_status :: Lens.Lens' VirtualServiceData VirtualServiceStatus+virtualServiceData_status = Lens.lens (\VirtualServiceData' {status} -> status) (\s@VirtualServiceData' {} a -> s {status = a} :: VirtualServiceData)++-- | The name of the virtual service.+virtualServiceData_virtualServiceName :: Lens.Lens' VirtualServiceData Prelude.Text+virtualServiceData_virtualServiceName = Lens.lens (\VirtualServiceData' {virtualServiceName} -> virtualServiceName) (\s@VirtualServiceData' {} a -> s {virtualServiceName = a} :: VirtualServiceData)++instance Data.FromJSON VirtualServiceData where+ parseJSON =+ Data.withObject+ "VirtualServiceData"+ ( \x ->+ VirtualServiceData'+ Prelude.<$> (x Data..: "meshName")+ Prelude.<*> (x Data..: "metadata")+ Prelude.<*> (x Data..: "spec")+ Prelude.<*> (x Data..: "status")+ Prelude.<*> (x Data..: "virtualServiceName")+ )++instance Prelude.Hashable VirtualServiceData where+ hashWithSalt _salt VirtualServiceData' {..} =+ _salt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` virtualServiceName++instance Prelude.NFData VirtualServiceData where+ rnf VirtualServiceData' {..} =+ Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf virtualServiceName
+ gen/Amazonka/AppMesh/Types/VirtualServiceProvider.hs view
@@ -0,0 +1,96 @@+{-# 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.AppMesh.Types.VirtualServiceProvider+-- 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.AppMesh.Types.VirtualServiceProvider where++import Amazonka.AppMesh.Types.VirtualNodeServiceProvider+import Amazonka.AppMesh.Types.VirtualRouterServiceProvider+import qualified 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 object that represents the provider for a virtual service.+--+-- /See:/ 'newVirtualServiceProvider' smart constructor.+data VirtualServiceProvider = VirtualServiceProvider'+ { -- | The virtual node associated with a virtual service.+ virtualNode :: Prelude.Maybe VirtualNodeServiceProvider,+ -- | The virtual router associated with a virtual service.+ virtualRouter :: Prelude.Maybe VirtualRouterServiceProvider+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualServiceProvider' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'virtualNode', 'virtualServiceProvider_virtualNode' - The virtual node associated with a virtual service.+--+-- 'virtualRouter', 'virtualServiceProvider_virtualRouter' - The virtual router associated with a virtual service.+newVirtualServiceProvider ::+ VirtualServiceProvider+newVirtualServiceProvider =+ VirtualServiceProvider'+ { virtualNode =+ Prelude.Nothing,+ virtualRouter = Prelude.Nothing+ }++-- | The virtual node associated with a virtual service.+virtualServiceProvider_virtualNode :: Lens.Lens' VirtualServiceProvider (Prelude.Maybe VirtualNodeServiceProvider)+virtualServiceProvider_virtualNode = Lens.lens (\VirtualServiceProvider' {virtualNode} -> virtualNode) (\s@VirtualServiceProvider' {} a -> s {virtualNode = a} :: VirtualServiceProvider)++-- | The virtual router associated with a virtual service.+virtualServiceProvider_virtualRouter :: Lens.Lens' VirtualServiceProvider (Prelude.Maybe VirtualRouterServiceProvider)+virtualServiceProvider_virtualRouter = Lens.lens (\VirtualServiceProvider' {virtualRouter} -> virtualRouter) (\s@VirtualServiceProvider' {} a -> s {virtualRouter = a} :: VirtualServiceProvider)++instance Data.FromJSON VirtualServiceProvider where+ parseJSON =+ Data.withObject+ "VirtualServiceProvider"+ ( \x ->+ VirtualServiceProvider'+ Prelude.<$> (x Data..:? "virtualNode")+ Prelude.<*> (x Data..:? "virtualRouter")+ )++instance Prelude.Hashable VirtualServiceProvider where+ hashWithSalt _salt VirtualServiceProvider' {..} =+ _salt+ `Prelude.hashWithSalt` virtualNode+ `Prelude.hashWithSalt` virtualRouter++instance Prelude.NFData VirtualServiceProvider where+ rnf VirtualServiceProvider' {..} =+ Prelude.rnf virtualNode+ `Prelude.seq` Prelude.rnf virtualRouter++instance Data.ToJSON VirtualServiceProvider where+ toJSON VirtualServiceProvider' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("virtualNode" Data..=) Prelude.<$> virtualNode,+ ("virtualRouter" Data..=) Prelude.<$> virtualRouter+ ]+ )
+ gen/Amazonka/AppMesh/Types/VirtualServiceRef.hs view
@@ -0,0 +1,208 @@+{-# 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.AppMesh.Types.VirtualServiceRef+-- 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.AppMesh.Types.VirtualServiceRef 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++-- | An object that represents a virtual service returned by a list+-- operation.+--+-- /See:/ 'newVirtualServiceRef' smart constructor.+data VirtualServiceRef = VirtualServiceRef'+ { -- | The full Amazon Resource Name (ARN) for the virtual service.+ arn :: Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the resource was created.+ createdAt :: Data.POSIX,+ -- | The Unix epoch timestamp in seconds for when the resource was last+ -- updated.+ lastUpdatedAt :: Data.POSIX,+ -- | The name of the service mesh that the virtual service resides in.+ meshName :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the resource owner. If the+ -- account ID is not your own, then it\'s the ID of the mesh owner or of+ -- another account that the mesh is shared with. For more information about+ -- mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ resourceOwner :: Prelude.Text,+ -- | The version of the resource. Resources are created at version 1, and+ -- this version is incremented each time that they\'re updated.+ version :: Prelude.Integer,+ -- | The name of the virtual service.+ virtualServiceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualServiceRef' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'virtualServiceRef_arn' - The full Amazon Resource Name (ARN) for the virtual service.+--+-- 'createdAt', 'virtualServiceRef_createdAt' - The Unix epoch timestamp in seconds for when the resource was created.+--+-- 'lastUpdatedAt', 'virtualServiceRef_lastUpdatedAt' - The Unix epoch timestamp in seconds for when the resource was last+-- updated.+--+-- 'meshName', 'virtualServiceRef_meshName' - The name of the service mesh that the virtual service resides in.+--+-- 'meshOwner', 'virtualServiceRef_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'resourceOwner', 'virtualServiceRef_resourceOwner' - The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'version', 'virtualServiceRef_version' - The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+--+-- 'virtualServiceName', 'virtualServiceRef_virtualServiceName' - The name of the virtual service.+newVirtualServiceRef ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'meshOwner'+ Prelude.Text ->+ -- | 'resourceOwner'+ Prelude.Text ->+ -- | 'version'+ Prelude.Integer ->+ -- | 'virtualServiceName'+ Prelude.Text ->+ VirtualServiceRef+newVirtualServiceRef+ pArn_+ pCreatedAt_+ pLastUpdatedAt_+ pMeshName_+ pMeshOwner_+ pResourceOwner_+ pVersion_+ pVirtualServiceName_ =+ VirtualServiceRef'+ { arn = pArn_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_,+ meshName = pMeshName_,+ meshOwner = pMeshOwner_,+ resourceOwner = pResourceOwner_,+ version = pVersion_,+ virtualServiceName = pVirtualServiceName_+ }++-- | The full Amazon Resource Name (ARN) for the virtual service.+virtualServiceRef_arn :: Lens.Lens' VirtualServiceRef Prelude.Text+virtualServiceRef_arn = Lens.lens (\VirtualServiceRef' {arn} -> arn) (\s@VirtualServiceRef' {} a -> s {arn = a} :: VirtualServiceRef)++-- | The Unix epoch timestamp in seconds for when the resource was created.+virtualServiceRef_createdAt :: Lens.Lens' VirtualServiceRef Prelude.UTCTime+virtualServiceRef_createdAt = Lens.lens (\VirtualServiceRef' {createdAt} -> createdAt) (\s@VirtualServiceRef' {} a -> s {createdAt = a} :: VirtualServiceRef) Prelude.. Data._Time++-- | The Unix epoch timestamp in seconds for when the resource was last+-- updated.+virtualServiceRef_lastUpdatedAt :: Lens.Lens' VirtualServiceRef Prelude.UTCTime+virtualServiceRef_lastUpdatedAt = Lens.lens (\VirtualServiceRef' {lastUpdatedAt} -> lastUpdatedAt) (\s@VirtualServiceRef' {} a -> s {lastUpdatedAt = a} :: VirtualServiceRef) Prelude.. Data._Time++-- | The name of the service mesh that the virtual service resides in.+virtualServiceRef_meshName :: Lens.Lens' VirtualServiceRef Prelude.Text+virtualServiceRef_meshName = Lens.lens (\VirtualServiceRef' {meshName} -> meshName) (\s@VirtualServiceRef' {} a -> s {meshName = a} :: VirtualServiceRef)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+virtualServiceRef_meshOwner :: Lens.Lens' VirtualServiceRef Prelude.Text+virtualServiceRef_meshOwner = Lens.lens (\VirtualServiceRef' {meshOwner} -> meshOwner) (\s@VirtualServiceRef' {} a -> s {meshOwner = a} :: VirtualServiceRef)++-- | The Amazon Web Services IAM account ID of the resource owner. If the+-- account ID is not your own, then it\'s the ID of the mesh owner or of+-- another account that the mesh is shared with. For more information about+-- mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+virtualServiceRef_resourceOwner :: Lens.Lens' VirtualServiceRef Prelude.Text+virtualServiceRef_resourceOwner = Lens.lens (\VirtualServiceRef' {resourceOwner} -> resourceOwner) (\s@VirtualServiceRef' {} a -> s {resourceOwner = a} :: VirtualServiceRef)++-- | The version of the resource. Resources are created at version 1, and+-- this version is incremented each time that they\'re updated.+virtualServiceRef_version :: Lens.Lens' VirtualServiceRef Prelude.Integer+virtualServiceRef_version = Lens.lens (\VirtualServiceRef' {version} -> version) (\s@VirtualServiceRef' {} a -> s {version = a} :: VirtualServiceRef)++-- | The name of the virtual service.+virtualServiceRef_virtualServiceName :: Lens.Lens' VirtualServiceRef Prelude.Text+virtualServiceRef_virtualServiceName = Lens.lens (\VirtualServiceRef' {virtualServiceName} -> virtualServiceName) (\s@VirtualServiceRef' {} a -> s {virtualServiceName = a} :: VirtualServiceRef)++instance Data.FromJSON VirtualServiceRef where+ parseJSON =+ Data.withObject+ "VirtualServiceRef"+ ( \x ->+ VirtualServiceRef'+ Prelude.<$> (x Data..: "arn")+ Prelude.<*> (x Data..: "createdAt")+ Prelude.<*> (x Data..: "lastUpdatedAt")+ Prelude.<*> (x Data..: "meshName")+ Prelude.<*> (x Data..: "meshOwner")+ Prelude.<*> (x Data..: "resourceOwner")+ Prelude.<*> (x Data..: "version")+ Prelude.<*> (x Data..: "virtualServiceName")+ )++instance Prelude.Hashable VirtualServiceRef where+ hashWithSalt _salt VirtualServiceRef' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` resourceOwner+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` virtualServiceName++instance Prelude.NFData VirtualServiceRef where+ rnf VirtualServiceRef' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf resourceOwner+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf virtualServiceName
+ gen/Amazonka/AppMesh/Types/VirtualServiceSpec.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.AppMesh.Types.VirtualServiceSpec+-- 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.AppMesh.Types.VirtualServiceSpec where++import Amazonka.AppMesh.Types.VirtualServiceProvider+import qualified 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 object that represents the specification of a virtual service.+--+-- /See:/ 'newVirtualServiceSpec' smart constructor.+data VirtualServiceSpec = VirtualServiceSpec'+ { -- | The App Mesh object that is acting as the provider for a virtual+ -- service. You can specify a single virtual node or virtual router.+ provider :: Prelude.Maybe VirtualServiceProvider+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualServiceSpec' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'provider', 'virtualServiceSpec_provider' - The App Mesh object that is acting as the provider for a virtual+-- service. You can specify a single virtual node or virtual router.+newVirtualServiceSpec ::+ VirtualServiceSpec+newVirtualServiceSpec =+ VirtualServiceSpec' {provider = Prelude.Nothing}++-- | The App Mesh object that is acting as the provider for a virtual+-- service. You can specify a single virtual node or virtual router.+virtualServiceSpec_provider :: Lens.Lens' VirtualServiceSpec (Prelude.Maybe VirtualServiceProvider)+virtualServiceSpec_provider = Lens.lens (\VirtualServiceSpec' {provider} -> provider) (\s@VirtualServiceSpec' {} a -> s {provider = a} :: VirtualServiceSpec)++instance Data.FromJSON VirtualServiceSpec where+ parseJSON =+ Data.withObject+ "VirtualServiceSpec"+ ( \x ->+ VirtualServiceSpec'+ Prelude.<$> (x Data..:? "provider")+ )++instance Prelude.Hashable VirtualServiceSpec where+ hashWithSalt _salt VirtualServiceSpec' {..} =+ _salt `Prelude.hashWithSalt` provider++instance Prelude.NFData VirtualServiceSpec where+ rnf VirtualServiceSpec' {..} = Prelude.rnf provider++instance Data.ToJSON VirtualServiceSpec where+ toJSON VirtualServiceSpec' {..} =+ Data.object+ ( Prelude.catMaybes+ [("provider" Data..=) Prelude.<$> provider]+ )
+ gen/Amazonka/AppMesh/Types/VirtualServiceStatus.hs view
@@ -0,0 +1,71 @@+{-# 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.AppMesh.Types.VirtualServiceStatus+-- 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.AppMesh.Types.VirtualServiceStatus where++import Amazonka.AppMesh.Types.VirtualServiceStatusCode+import qualified 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 object that represents the status of a virtual service.+--+-- /See:/ 'newVirtualServiceStatus' smart constructor.+data VirtualServiceStatus = VirtualServiceStatus'+ { -- | The current status of the virtual service.+ status :: VirtualServiceStatusCode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualServiceStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'virtualServiceStatus_status' - The current status of the virtual service.+newVirtualServiceStatus ::+ -- | 'status'+ VirtualServiceStatusCode ->+ VirtualServiceStatus+newVirtualServiceStatus pStatus_ =+ VirtualServiceStatus' {status = pStatus_}++-- | The current status of the virtual service.+virtualServiceStatus_status :: Lens.Lens' VirtualServiceStatus VirtualServiceStatusCode+virtualServiceStatus_status = Lens.lens (\VirtualServiceStatus' {status} -> status) (\s@VirtualServiceStatus' {} a -> s {status = a} :: VirtualServiceStatus)++instance Data.FromJSON VirtualServiceStatus where+ parseJSON =+ Data.withObject+ "VirtualServiceStatus"+ ( \x ->+ VirtualServiceStatus'+ Prelude.<$> (x Data..: "status")+ )++instance Prelude.Hashable VirtualServiceStatus where+ hashWithSalt _salt VirtualServiceStatus' {..} =+ _salt `Prelude.hashWithSalt` status++instance Prelude.NFData VirtualServiceStatus where+ rnf VirtualServiceStatus' {..} = Prelude.rnf status
+ gen/Amazonka/AppMesh/Types/VirtualServiceStatusCode.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.AppMesh.Types.VirtualServiceStatusCode+-- 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.AppMesh.Types.VirtualServiceStatusCode+ ( VirtualServiceStatusCode+ ( ..,+ VirtualServiceStatusCode_ACTIVE,+ VirtualServiceStatusCode_DELETED,+ VirtualServiceStatusCode_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VirtualServiceStatusCode = VirtualServiceStatusCode'+ { fromVirtualServiceStatusCode ::+ 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 VirtualServiceStatusCode_ACTIVE :: VirtualServiceStatusCode+pattern VirtualServiceStatusCode_ACTIVE = VirtualServiceStatusCode' "ACTIVE"++pattern VirtualServiceStatusCode_DELETED :: VirtualServiceStatusCode+pattern VirtualServiceStatusCode_DELETED = VirtualServiceStatusCode' "DELETED"++pattern VirtualServiceStatusCode_INACTIVE :: VirtualServiceStatusCode+pattern VirtualServiceStatusCode_INACTIVE = VirtualServiceStatusCode' "INACTIVE"++{-# COMPLETE+ VirtualServiceStatusCode_ACTIVE,+ VirtualServiceStatusCode_DELETED,+ VirtualServiceStatusCode_INACTIVE,+ VirtualServiceStatusCode'+ #-}
+ gen/Amazonka/AppMesh/Types/WeightedTarget.hs view
@@ -0,0 +1,114 @@+{-# 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.AppMesh.Types.WeightedTarget+-- 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.AppMesh.Types.WeightedTarget 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++-- | An object that represents a target and its relative weight. Traffic is+-- distributed across targets according to their relative weight. For+-- example, a weighted target with a relative weight of 50 receives five+-- times as much traffic as one with a relative weight of 10. The total+-- weight for all targets combined must be less than or equal to 100.+--+-- /See:/ 'newWeightedTarget' smart constructor.+data WeightedTarget = WeightedTarget'+ { -- | The targeted port of the weighted object.+ port :: Prelude.Maybe Prelude.Natural,+ -- | The virtual node to associate with the weighted target.+ virtualNode :: Prelude.Text,+ -- | The relative weight of the weighted target.+ weight :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WeightedTarget' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'port', 'weightedTarget_port' - The targeted port of the weighted object.+--+-- 'virtualNode', 'weightedTarget_virtualNode' - The virtual node to associate with the weighted target.+--+-- 'weight', 'weightedTarget_weight' - The relative weight of the weighted target.+newWeightedTarget ::+ -- | 'virtualNode'+ Prelude.Text ->+ -- | 'weight'+ Prelude.Natural ->+ WeightedTarget+newWeightedTarget pVirtualNode_ pWeight_ =+ WeightedTarget'+ { port = Prelude.Nothing,+ virtualNode = pVirtualNode_,+ weight = pWeight_+ }++-- | The targeted port of the weighted object.+weightedTarget_port :: Lens.Lens' WeightedTarget (Prelude.Maybe Prelude.Natural)+weightedTarget_port = Lens.lens (\WeightedTarget' {port} -> port) (\s@WeightedTarget' {} a -> s {port = a} :: WeightedTarget)++-- | The virtual node to associate with the weighted target.+weightedTarget_virtualNode :: Lens.Lens' WeightedTarget Prelude.Text+weightedTarget_virtualNode = Lens.lens (\WeightedTarget' {virtualNode} -> virtualNode) (\s@WeightedTarget' {} a -> s {virtualNode = a} :: WeightedTarget)++-- | The relative weight of the weighted target.+weightedTarget_weight :: Lens.Lens' WeightedTarget Prelude.Natural+weightedTarget_weight = Lens.lens (\WeightedTarget' {weight} -> weight) (\s@WeightedTarget' {} a -> s {weight = a} :: WeightedTarget)++instance Data.FromJSON WeightedTarget where+ parseJSON =+ Data.withObject+ "WeightedTarget"+ ( \x ->+ WeightedTarget'+ Prelude.<$> (x Data..:? "port")+ Prelude.<*> (x Data..: "virtualNode")+ Prelude.<*> (x Data..: "weight")+ )++instance Prelude.Hashable WeightedTarget where+ hashWithSalt _salt WeightedTarget' {..} =+ _salt+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` virtualNode+ `Prelude.hashWithSalt` weight++instance Prelude.NFData WeightedTarget where+ rnf WeightedTarget' {..} =+ Prelude.rnf port+ `Prelude.seq` Prelude.rnf virtualNode+ `Prelude.seq` Prelude.rnf weight++instance Data.ToJSON WeightedTarget where+ toJSON WeightedTarget' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("port" Data..=) Prelude.<$> port,+ Prelude.Just ("virtualNode" Data..= virtualNode),+ Prelude.Just ("weight" Data..= weight)+ ]+ )
+ gen/Amazonka/AppMesh/UntagResource.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.AppMesh.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 specified tags from a resource.+module Amazonka.AppMesh.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_resourceArn,+ untagResource_tagKeys,++ -- * Destructuring the Response+ UntagResourceResponse (..),+ newUntagResourceResponse,++ -- * Response Lenses+ untagResourceResponse_httpStatus,+ )+where++import Amazonka.AppMesh.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 Amazon Resource Name (ARN) of the resource to delete tags from.+ resourceArn :: Prelude.Text,+ -- | The keys of the tags to be removed.+ 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 Amazon Resource Name (ARN) of the resource to delete tags from.+--+-- 'tagKeys', 'untagResource_tagKeys' - The keys of the tags to be removed.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource to delete tags from.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The keys of the tags to be removed.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.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.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UntagResource where+ toJSON UntagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("tagKeys" Data..= tagKeys)]+ )++instance Data.ToPath UntagResource where+ toPath = Prelude.const "/v20190125/untag"++instance Data.ToQuery UntagResource where+ toQuery UntagResource' {..} =+ Prelude.mconcat ["resourceArn" Data.=: resourceArn]++-- |+--+-- /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+ rnf UntagResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/AppMesh/UpdateGatewayRoute.hs view
@@ -0,0 +1,275 @@+{-# 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.AppMesh.UpdateGatewayRoute+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing gateway route that is associated to a specified+-- virtual gateway in a service mesh.+module Amazonka.AppMesh.UpdateGatewayRoute+ ( -- * Creating a Request+ UpdateGatewayRoute (..),+ newUpdateGatewayRoute,++ -- * Request Lenses+ updateGatewayRoute_clientToken,+ updateGatewayRoute_meshOwner,+ updateGatewayRoute_gatewayRouteName,+ updateGatewayRoute_meshName,+ updateGatewayRoute_spec,+ updateGatewayRoute_virtualGatewayName,++ -- * Destructuring the Response+ UpdateGatewayRouteResponse (..),+ newUpdateGatewayRouteResponse,++ -- * Response Lenses+ updateGatewayRouteResponse_httpStatus,+ updateGatewayRouteResponse_gatewayRoute,+ )+where++import Amazonka.AppMesh.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:/ 'newUpdateGatewayRoute' smart constructor.+data UpdateGatewayRoute = UpdateGatewayRoute'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the gateway route to update.+ gatewayRouteName :: Prelude.Text,+ -- | The name of the service mesh that the gateway route resides in.+ meshName :: Prelude.Text,+ -- | The new gateway route specification to apply. This overwrites the+ -- existing data.+ spec :: GatewayRouteSpec,+ -- | The name of the virtual gateway that the gateway route is associated+ -- with.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateGatewayRoute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateGatewayRoute_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'updateGatewayRoute_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'gatewayRouteName', 'updateGatewayRoute_gatewayRouteName' - The name of the gateway route to update.+--+-- 'meshName', 'updateGatewayRoute_meshName' - The name of the service mesh that the gateway route resides in.+--+-- 'spec', 'updateGatewayRoute_spec' - The new gateway route specification to apply. This overwrites the+-- existing data.+--+-- 'virtualGatewayName', 'updateGatewayRoute_virtualGatewayName' - The name of the virtual gateway that the gateway route is associated+-- with.+newUpdateGatewayRoute ::+ -- | 'gatewayRouteName'+ Prelude.Text ->+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ GatewayRouteSpec ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ UpdateGatewayRoute+newUpdateGatewayRoute+ pGatewayRouteName_+ pMeshName_+ pSpec_+ pVirtualGatewayName_ =+ UpdateGatewayRoute'+ { clientToken = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ gatewayRouteName = pGatewayRouteName_,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+updateGatewayRoute_clientToken :: Lens.Lens' UpdateGatewayRoute (Prelude.Maybe Prelude.Text)+updateGatewayRoute_clientToken = Lens.lens (\UpdateGatewayRoute' {clientToken} -> clientToken) (\s@UpdateGatewayRoute' {} a -> s {clientToken = a} :: UpdateGatewayRoute)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+updateGatewayRoute_meshOwner :: Lens.Lens' UpdateGatewayRoute (Prelude.Maybe Prelude.Text)+updateGatewayRoute_meshOwner = Lens.lens (\UpdateGatewayRoute' {meshOwner} -> meshOwner) (\s@UpdateGatewayRoute' {} a -> s {meshOwner = a} :: UpdateGatewayRoute)++-- | The name of the gateway route to update.+updateGatewayRoute_gatewayRouteName :: Lens.Lens' UpdateGatewayRoute Prelude.Text+updateGatewayRoute_gatewayRouteName = Lens.lens (\UpdateGatewayRoute' {gatewayRouteName} -> gatewayRouteName) (\s@UpdateGatewayRoute' {} a -> s {gatewayRouteName = a} :: UpdateGatewayRoute)++-- | The name of the service mesh that the gateway route resides in.+updateGatewayRoute_meshName :: Lens.Lens' UpdateGatewayRoute Prelude.Text+updateGatewayRoute_meshName = Lens.lens (\UpdateGatewayRoute' {meshName} -> meshName) (\s@UpdateGatewayRoute' {} a -> s {meshName = a} :: UpdateGatewayRoute)++-- | The new gateway route specification to apply. This overwrites the+-- existing data.+updateGatewayRoute_spec :: Lens.Lens' UpdateGatewayRoute GatewayRouteSpec+updateGatewayRoute_spec = Lens.lens (\UpdateGatewayRoute' {spec} -> spec) (\s@UpdateGatewayRoute' {} a -> s {spec = a} :: UpdateGatewayRoute)++-- | The name of the virtual gateway that the gateway route is associated+-- with.+updateGatewayRoute_virtualGatewayName :: Lens.Lens' UpdateGatewayRoute Prelude.Text+updateGatewayRoute_virtualGatewayName = Lens.lens (\UpdateGatewayRoute' {virtualGatewayName} -> virtualGatewayName) (\s@UpdateGatewayRoute' {} a -> s {virtualGatewayName = a} :: UpdateGatewayRoute)++instance Core.AWSRequest UpdateGatewayRoute where+ type+ AWSResponse UpdateGatewayRoute =+ UpdateGatewayRouteResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateGatewayRouteResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable UpdateGatewayRoute where+ hashWithSalt _salt UpdateGatewayRoute' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` gatewayRouteName+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData UpdateGatewayRoute where+ rnf UpdateGatewayRoute' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf gatewayRouteName+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders UpdateGatewayRoute where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateGatewayRoute where+ toJSON UpdateGatewayRoute' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ Prelude.Just ("spec" Data..= spec)+ ]+ )++instance Data.ToPath UpdateGatewayRoute where+ toPath UpdateGatewayRoute' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateway/",+ Data.toBS virtualGatewayName,+ "/gatewayRoutes/",+ Data.toBS gatewayRouteName+ ]++instance Data.ToQuery UpdateGatewayRoute where+ toQuery UpdateGatewayRoute' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- | /See:/ 'newUpdateGatewayRouteResponse' smart constructor.+data UpdateGatewayRouteResponse = UpdateGatewayRouteResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A full description of the gateway route that was updated.+ gatewayRoute :: GatewayRouteData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateGatewayRouteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateGatewayRouteResponse_httpStatus' - The response's http status code.+--+-- 'gatewayRoute', 'updateGatewayRouteResponse_gatewayRoute' - A full description of the gateway route that was updated.+newUpdateGatewayRouteResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'gatewayRoute'+ GatewayRouteData ->+ UpdateGatewayRouteResponse+newUpdateGatewayRouteResponse+ pHttpStatus_+ pGatewayRoute_ =+ UpdateGatewayRouteResponse'+ { httpStatus =+ pHttpStatus_,+ gatewayRoute = pGatewayRoute_+ }++-- | The response's http status code.+updateGatewayRouteResponse_httpStatus :: Lens.Lens' UpdateGatewayRouteResponse Prelude.Int+updateGatewayRouteResponse_httpStatus = Lens.lens (\UpdateGatewayRouteResponse' {httpStatus} -> httpStatus) (\s@UpdateGatewayRouteResponse' {} a -> s {httpStatus = a} :: UpdateGatewayRouteResponse)++-- | A full description of the gateway route that was updated.+updateGatewayRouteResponse_gatewayRoute :: Lens.Lens' UpdateGatewayRouteResponse GatewayRouteData+updateGatewayRouteResponse_gatewayRoute = Lens.lens (\UpdateGatewayRouteResponse' {gatewayRoute} -> gatewayRoute) (\s@UpdateGatewayRouteResponse' {} a -> s {gatewayRoute = a} :: UpdateGatewayRouteResponse)++instance Prelude.NFData UpdateGatewayRouteResponse where+ rnf UpdateGatewayRouteResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf gatewayRoute
+ gen/Amazonka/AppMesh/UpdateMesh.hs view
@@ -0,0 +1,204 @@+{-# 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.AppMesh.UpdateMesh+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing service mesh.+module Amazonka.AppMesh.UpdateMesh+ ( -- * Creating a Request+ UpdateMesh (..),+ newUpdateMesh,++ -- * Request Lenses+ updateMesh_clientToken,+ updateMesh_spec,+ updateMesh_meshName,++ -- * Destructuring the Response+ UpdateMeshResponse (..),+ newUpdateMeshResponse,++ -- * Response Lenses+ updateMeshResponse_httpStatus,+ updateMeshResponse_mesh,+ )+where++import Amazonka.AppMesh.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:/ 'newUpdateMesh' smart constructor.+data UpdateMesh = UpdateMesh'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The service mesh specification to apply.+ spec :: Prelude.Maybe MeshSpec,+ -- | The name of the service mesh to update.+ meshName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMesh' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateMesh_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'spec', 'updateMesh_spec' - The service mesh specification to apply.+--+-- 'meshName', 'updateMesh_meshName' - The name of the service mesh to update.+newUpdateMesh ::+ -- | 'meshName'+ Prelude.Text ->+ UpdateMesh+newUpdateMesh pMeshName_ =+ UpdateMesh'+ { clientToken = Prelude.Nothing,+ spec = Prelude.Nothing,+ meshName = pMeshName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+updateMesh_clientToken :: Lens.Lens' UpdateMesh (Prelude.Maybe Prelude.Text)+updateMesh_clientToken = Lens.lens (\UpdateMesh' {clientToken} -> clientToken) (\s@UpdateMesh' {} a -> s {clientToken = a} :: UpdateMesh)++-- | The service mesh specification to apply.+updateMesh_spec :: Lens.Lens' UpdateMesh (Prelude.Maybe MeshSpec)+updateMesh_spec = Lens.lens (\UpdateMesh' {spec} -> spec) (\s@UpdateMesh' {} a -> s {spec = a} :: UpdateMesh)++-- | The name of the service mesh to update.+updateMesh_meshName :: Lens.Lens' UpdateMesh Prelude.Text+updateMesh_meshName = Lens.lens (\UpdateMesh' {meshName} -> meshName) (\s@UpdateMesh' {} a -> s {meshName = a} :: UpdateMesh)++instance Core.AWSRequest UpdateMesh where+ type AWSResponse UpdateMesh = UpdateMeshResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateMeshResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable UpdateMesh where+ hashWithSalt _salt UpdateMesh' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` meshName++instance Prelude.NFData UpdateMesh where+ rnf UpdateMesh' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf meshName++instance Data.ToHeaders UpdateMesh where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateMesh where+ toJSON UpdateMesh' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("spec" Data..=) Prelude.<$> spec+ ]+ )++instance Data.ToPath UpdateMesh where+ toPath UpdateMesh' {..} =+ Prelude.mconcat+ ["/v20190125/meshes/", Data.toBS meshName]++instance Data.ToQuery UpdateMesh where+ toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newUpdateMeshResponse' smart constructor.+data UpdateMeshResponse = UpdateMeshResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ mesh :: MeshData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMeshResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateMeshResponse_httpStatus' - The response's http status code.+--+-- 'mesh', 'updateMeshResponse_mesh' - Undocumented member.+newUpdateMeshResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'mesh'+ MeshData ->+ UpdateMeshResponse+newUpdateMeshResponse pHttpStatus_ pMesh_ =+ UpdateMeshResponse'+ { httpStatus = pHttpStatus_,+ mesh = pMesh_+ }++-- | The response's http status code.+updateMeshResponse_httpStatus :: Lens.Lens' UpdateMeshResponse Prelude.Int+updateMeshResponse_httpStatus = Lens.lens (\UpdateMeshResponse' {httpStatus} -> httpStatus) (\s@UpdateMeshResponse' {} a -> s {httpStatus = a} :: UpdateMeshResponse)++-- | Undocumented member.+updateMeshResponse_mesh :: Lens.Lens' UpdateMeshResponse MeshData+updateMeshResponse_mesh = Lens.lens (\UpdateMeshResponse' {mesh} -> mesh) (\s@UpdateMeshResponse' {} a -> s {mesh = a} :: UpdateMeshResponse)++instance Prelude.NFData UpdateMeshResponse where+ rnf UpdateMeshResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf mesh
+ gen/Amazonka/AppMesh/UpdateRoute.hs view
@@ -0,0 +1,268 @@+{-# 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.AppMesh.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 an existing route for a specified service mesh and virtual+-- router.+module Amazonka.AppMesh.UpdateRoute+ ( -- * Creating a Request+ UpdateRoute (..),+ newUpdateRoute,++ -- * Request Lenses+ updateRoute_clientToken,+ updateRoute_meshOwner,+ updateRoute_meshName,+ updateRoute_routeName,+ updateRoute_spec,+ updateRoute_virtualRouterName,++ -- * Destructuring the Response+ UpdateRouteResponse (..),+ newUpdateRouteResponse,++ -- * Response Lenses+ updateRouteResponse_httpStatus,+ updateRouteResponse_route,+ )+where++import Amazonka.AppMesh.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:/ 'newUpdateRoute' smart constructor.+data UpdateRoute = UpdateRoute'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the route resides in.+ meshName :: Prelude.Text,+ -- | The name of the route to update.+ routeName :: Prelude.Text,+ -- | The new route specification to apply. This overwrites the existing data.+ spec :: RouteSpec,+ -- | The name of the virtual router that the route is associated with.+ virtualRouterName :: 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:+--+-- 'clientToken', 'updateRoute_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'updateRoute_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'updateRoute_meshName' - The name of the service mesh that the route resides in.+--+-- 'routeName', 'updateRoute_routeName' - The name of the route to update.+--+-- 'spec', 'updateRoute_spec' - The new route specification to apply. This overwrites the existing data.+--+-- 'virtualRouterName', 'updateRoute_virtualRouterName' - The name of the virtual router that the route is associated with.+newUpdateRoute ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'routeName'+ Prelude.Text ->+ -- | 'spec'+ RouteSpec ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ UpdateRoute+newUpdateRoute+ pMeshName_+ pRouteName_+ pSpec_+ pVirtualRouterName_ =+ UpdateRoute'+ { clientToken = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ routeName = pRouteName_,+ spec = pSpec_,+ virtualRouterName = pVirtualRouterName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+updateRoute_clientToken :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Text)+updateRoute_clientToken = Lens.lens (\UpdateRoute' {clientToken} -> clientToken) (\s@UpdateRoute' {} a -> s {clientToken = a} :: UpdateRoute)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+updateRoute_meshOwner :: Lens.Lens' UpdateRoute (Prelude.Maybe Prelude.Text)+updateRoute_meshOwner = Lens.lens (\UpdateRoute' {meshOwner} -> meshOwner) (\s@UpdateRoute' {} a -> s {meshOwner = a} :: UpdateRoute)++-- | The name of the service mesh that the route resides in.+updateRoute_meshName :: Lens.Lens' UpdateRoute Prelude.Text+updateRoute_meshName = Lens.lens (\UpdateRoute' {meshName} -> meshName) (\s@UpdateRoute' {} a -> s {meshName = a} :: UpdateRoute)++-- | The name of the route to update.+updateRoute_routeName :: Lens.Lens' UpdateRoute Prelude.Text+updateRoute_routeName = Lens.lens (\UpdateRoute' {routeName} -> routeName) (\s@UpdateRoute' {} a -> s {routeName = a} :: UpdateRoute)++-- | The new route specification to apply. This overwrites the existing data.+updateRoute_spec :: Lens.Lens' UpdateRoute RouteSpec+updateRoute_spec = Lens.lens (\UpdateRoute' {spec} -> spec) (\s@UpdateRoute' {} a -> s {spec = a} :: UpdateRoute)++-- | The name of the virtual router that the route is associated with.+updateRoute_virtualRouterName :: Lens.Lens' UpdateRoute Prelude.Text+updateRoute_virtualRouterName = Lens.lens (\UpdateRoute' {virtualRouterName} -> virtualRouterName) (\s@UpdateRoute' {} a -> s {virtualRouterName = a} :: UpdateRoute)++instance Core.AWSRequest UpdateRoute where+ type AWSResponse UpdateRoute = UpdateRouteResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateRouteResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable UpdateRoute where+ hashWithSalt _salt UpdateRoute' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` routeName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData UpdateRoute where+ rnf UpdateRoute' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf routeName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualRouterName++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+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ Prelude.Just ("spec" Data..= spec)+ ]+ )++instance Data.ToPath UpdateRoute where+ toPath UpdateRoute' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouter/",+ Data.toBS virtualRouterName,+ "/routes/",+ Data.toBS routeName+ ]++instance Data.ToQuery UpdateRoute where+ toQuery UpdateRoute' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newUpdateRouteResponse' smart constructor.+data UpdateRouteResponse = UpdateRouteResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A full description of the route that was updated.+ route :: RouteData+ }+ 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:+--+-- 'httpStatus', 'updateRouteResponse_httpStatus' - The response's http status code.+--+-- 'route', 'updateRouteResponse_route' - A full description of the route that was updated.+newUpdateRouteResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'route'+ RouteData ->+ UpdateRouteResponse+newUpdateRouteResponse pHttpStatus_ pRoute_ =+ UpdateRouteResponse'+ { httpStatus = pHttpStatus_,+ route = pRoute_+ }++-- | 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)++-- | A full description of the route that was updated.+updateRouteResponse_route :: Lens.Lens' UpdateRouteResponse RouteData+updateRouteResponse_route = Lens.lens (\UpdateRouteResponse' {route} -> route) (\s@UpdateRouteResponse' {} a -> s {route = a} :: UpdateRouteResponse)++instance Prelude.NFData UpdateRouteResponse where+ rnf UpdateRouteResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf route
+ gen/Amazonka/AppMesh/UpdateVirtualGateway.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.AppMesh.UpdateVirtualGateway+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing virtual gateway in a specified service mesh.+module Amazonka.AppMesh.UpdateVirtualGateway+ ( -- * Creating a Request+ UpdateVirtualGateway (..),+ newUpdateVirtualGateway,++ -- * Request Lenses+ updateVirtualGateway_clientToken,+ updateVirtualGateway_meshOwner,+ updateVirtualGateway_meshName,+ updateVirtualGateway_spec,+ updateVirtualGateway_virtualGatewayName,++ -- * Destructuring the Response+ UpdateVirtualGatewayResponse (..),+ newUpdateVirtualGatewayResponse,++ -- * Response Lenses+ updateVirtualGatewayResponse_httpStatus,+ updateVirtualGatewayResponse_virtualGateway,+ )+where++import Amazonka.AppMesh.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:/ 'newUpdateVirtualGateway' smart constructor.+data UpdateVirtualGateway = UpdateVirtualGateway'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the virtual gateway resides in.+ meshName :: Prelude.Text,+ -- | The new virtual gateway specification to apply. This overwrites the+ -- existing data.+ spec :: VirtualGatewaySpec,+ -- | The name of the virtual gateway to update.+ virtualGatewayName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVirtualGateway' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateVirtualGateway_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'updateVirtualGateway_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'updateVirtualGateway_meshName' - The name of the service mesh that the virtual gateway resides in.+--+-- 'spec', 'updateVirtualGateway_spec' - The new virtual gateway specification to apply. This overwrites the+-- existing data.+--+-- 'virtualGatewayName', 'updateVirtualGateway_virtualGatewayName' - The name of the virtual gateway to update.+newUpdateVirtualGateway ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ VirtualGatewaySpec ->+ -- | 'virtualGatewayName'+ Prelude.Text ->+ UpdateVirtualGateway+newUpdateVirtualGateway+ pMeshName_+ pSpec_+ pVirtualGatewayName_ =+ UpdateVirtualGateway'+ { clientToken =+ Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualGatewayName = pVirtualGatewayName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+updateVirtualGateway_clientToken :: Lens.Lens' UpdateVirtualGateway (Prelude.Maybe Prelude.Text)+updateVirtualGateway_clientToken = Lens.lens (\UpdateVirtualGateway' {clientToken} -> clientToken) (\s@UpdateVirtualGateway' {} a -> s {clientToken = a} :: UpdateVirtualGateway)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+updateVirtualGateway_meshOwner :: Lens.Lens' UpdateVirtualGateway (Prelude.Maybe Prelude.Text)+updateVirtualGateway_meshOwner = Lens.lens (\UpdateVirtualGateway' {meshOwner} -> meshOwner) (\s@UpdateVirtualGateway' {} a -> s {meshOwner = a} :: UpdateVirtualGateway)++-- | The name of the service mesh that the virtual gateway resides in.+updateVirtualGateway_meshName :: Lens.Lens' UpdateVirtualGateway Prelude.Text+updateVirtualGateway_meshName = Lens.lens (\UpdateVirtualGateway' {meshName} -> meshName) (\s@UpdateVirtualGateway' {} a -> s {meshName = a} :: UpdateVirtualGateway)++-- | The new virtual gateway specification to apply. This overwrites the+-- existing data.+updateVirtualGateway_spec :: Lens.Lens' UpdateVirtualGateway VirtualGatewaySpec+updateVirtualGateway_spec = Lens.lens (\UpdateVirtualGateway' {spec} -> spec) (\s@UpdateVirtualGateway' {} a -> s {spec = a} :: UpdateVirtualGateway)++-- | The name of the virtual gateway to update.+updateVirtualGateway_virtualGatewayName :: Lens.Lens' UpdateVirtualGateway Prelude.Text+updateVirtualGateway_virtualGatewayName = Lens.lens (\UpdateVirtualGateway' {virtualGatewayName} -> virtualGatewayName) (\s@UpdateVirtualGateway' {} a -> s {virtualGatewayName = a} :: UpdateVirtualGateway)++instance Core.AWSRequest UpdateVirtualGateway where+ type+ AWSResponse UpdateVirtualGateway =+ UpdateVirtualGatewayResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateVirtualGatewayResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable UpdateVirtualGateway where+ hashWithSalt _salt UpdateVirtualGateway' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualGatewayName++instance Prelude.NFData UpdateVirtualGateway where+ rnf UpdateVirtualGateway' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualGatewayName++instance Data.ToHeaders UpdateVirtualGateway where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateVirtualGateway where+ toJSON UpdateVirtualGateway' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ Prelude.Just ("spec" Data..= spec)+ ]+ )++instance Data.ToPath UpdateVirtualGateway where+ toPath UpdateVirtualGateway' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualGateways/",+ Data.toBS virtualGatewayName+ ]++instance Data.ToQuery UpdateVirtualGateway where+ toQuery UpdateVirtualGateway' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- | /See:/ 'newUpdateVirtualGatewayResponse' smart constructor.+data UpdateVirtualGatewayResponse = UpdateVirtualGatewayResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A full description of the virtual gateway that was updated.+ virtualGateway :: VirtualGatewayData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVirtualGatewayResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateVirtualGatewayResponse_httpStatus' - The response's http status code.+--+-- 'virtualGateway', 'updateVirtualGatewayResponse_virtualGateway' - A full description of the virtual gateway that was updated.+newUpdateVirtualGatewayResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualGateway'+ VirtualGatewayData ->+ UpdateVirtualGatewayResponse+newUpdateVirtualGatewayResponse+ pHttpStatus_+ pVirtualGateway_ =+ UpdateVirtualGatewayResponse'+ { httpStatus =+ pHttpStatus_,+ virtualGateway = pVirtualGateway_+ }++-- | The response's http status code.+updateVirtualGatewayResponse_httpStatus :: Lens.Lens' UpdateVirtualGatewayResponse Prelude.Int+updateVirtualGatewayResponse_httpStatus = Lens.lens (\UpdateVirtualGatewayResponse' {httpStatus} -> httpStatus) (\s@UpdateVirtualGatewayResponse' {} a -> s {httpStatus = a} :: UpdateVirtualGatewayResponse)++-- | A full description of the virtual gateway that was updated.+updateVirtualGatewayResponse_virtualGateway :: Lens.Lens' UpdateVirtualGatewayResponse VirtualGatewayData+updateVirtualGatewayResponse_virtualGateway = Lens.lens (\UpdateVirtualGatewayResponse' {virtualGateway} -> virtualGateway) (\s@UpdateVirtualGatewayResponse' {} a -> s {virtualGateway = a} :: UpdateVirtualGatewayResponse)++instance Prelude.NFData UpdateVirtualGatewayResponse where+ rnf UpdateVirtualGatewayResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualGateway
+ gen/Amazonka/AppMesh/UpdateVirtualNode.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.AppMesh.UpdateVirtualNode+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing virtual node in a specified service mesh.+module Amazonka.AppMesh.UpdateVirtualNode+ ( -- * Creating a Request+ UpdateVirtualNode (..),+ newUpdateVirtualNode,++ -- * Request Lenses+ updateVirtualNode_clientToken,+ updateVirtualNode_meshOwner,+ updateVirtualNode_meshName,+ updateVirtualNode_spec,+ updateVirtualNode_virtualNodeName,++ -- * Destructuring the Response+ UpdateVirtualNodeResponse (..),+ newUpdateVirtualNodeResponse,++ -- * Response Lenses+ updateVirtualNodeResponse_httpStatus,+ updateVirtualNodeResponse_virtualNode,+ )+where++import Amazonka.AppMesh.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:/ 'newUpdateVirtualNode' smart constructor.+data UpdateVirtualNode = UpdateVirtualNode'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the virtual node resides in.+ meshName :: Prelude.Text,+ -- | The new virtual node specification to apply. This overwrites the+ -- existing data.+ spec :: VirtualNodeSpec,+ -- | The name of the virtual node to update.+ virtualNodeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVirtualNode' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateVirtualNode_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'updateVirtualNode_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'updateVirtualNode_meshName' - The name of the service mesh that the virtual node resides in.+--+-- 'spec', 'updateVirtualNode_spec' - The new virtual node specification to apply. This overwrites the+-- existing data.+--+-- 'virtualNodeName', 'updateVirtualNode_virtualNodeName' - The name of the virtual node to update.+newUpdateVirtualNode ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ VirtualNodeSpec ->+ -- | 'virtualNodeName'+ Prelude.Text ->+ UpdateVirtualNode+newUpdateVirtualNode+ pMeshName_+ pSpec_+ pVirtualNodeName_ =+ UpdateVirtualNode'+ { clientToken = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualNodeName = pVirtualNodeName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+updateVirtualNode_clientToken :: Lens.Lens' UpdateVirtualNode (Prelude.Maybe Prelude.Text)+updateVirtualNode_clientToken = Lens.lens (\UpdateVirtualNode' {clientToken} -> clientToken) (\s@UpdateVirtualNode' {} a -> s {clientToken = a} :: UpdateVirtualNode)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+updateVirtualNode_meshOwner :: Lens.Lens' UpdateVirtualNode (Prelude.Maybe Prelude.Text)+updateVirtualNode_meshOwner = Lens.lens (\UpdateVirtualNode' {meshOwner} -> meshOwner) (\s@UpdateVirtualNode' {} a -> s {meshOwner = a} :: UpdateVirtualNode)++-- | The name of the service mesh that the virtual node resides in.+updateVirtualNode_meshName :: Lens.Lens' UpdateVirtualNode Prelude.Text+updateVirtualNode_meshName = Lens.lens (\UpdateVirtualNode' {meshName} -> meshName) (\s@UpdateVirtualNode' {} a -> s {meshName = a} :: UpdateVirtualNode)++-- | The new virtual node specification to apply. This overwrites the+-- existing data.+updateVirtualNode_spec :: Lens.Lens' UpdateVirtualNode VirtualNodeSpec+updateVirtualNode_spec = Lens.lens (\UpdateVirtualNode' {spec} -> spec) (\s@UpdateVirtualNode' {} a -> s {spec = a} :: UpdateVirtualNode)++-- | The name of the virtual node to update.+updateVirtualNode_virtualNodeName :: Lens.Lens' UpdateVirtualNode Prelude.Text+updateVirtualNode_virtualNodeName = Lens.lens (\UpdateVirtualNode' {virtualNodeName} -> virtualNodeName) (\s@UpdateVirtualNode' {} a -> s {virtualNodeName = a} :: UpdateVirtualNode)++instance Core.AWSRequest UpdateVirtualNode where+ type+ AWSResponse UpdateVirtualNode =+ UpdateVirtualNodeResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateVirtualNodeResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable UpdateVirtualNode where+ hashWithSalt _salt UpdateVirtualNode' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualNodeName++instance Prelude.NFData UpdateVirtualNode where+ rnf UpdateVirtualNode' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualNodeName++instance Data.ToHeaders UpdateVirtualNode where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateVirtualNode where+ toJSON UpdateVirtualNode' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ Prelude.Just ("spec" Data..= spec)+ ]+ )++instance Data.ToPath UpdateVirtualNode where+ toPath UpdateVirtualNode' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualNodes/",+ Data.toBS virtualNodeName+ ]++instance Data.ToQuery UpdateVirtualNode where+ toQuery UpdateVirtualNode' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newUpdateVirtualNodeResponse' smart constructor.+data UpdateVirtualNodeResponse = UpdateVirtualNodeResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A full description of the virtual node that was updated.+ virtualNode :: VirtualNodeData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVirtualNodeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateVirtualNodeResponse_httpStatus' - The response's http status code.+--+-- 'virtualNode', 'updateVirtualNodeResponse_virtualNode' - A full description of the virtual node that was updated.+newUpdateVirtualNodeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualNode'+ VirtualNodeData ->+ UpdateVirtualNodeResponse+newUpdateVirtualNodeResponse+ pHttpStatus_+ pVirtualNode_ =+ UpdateVirtualNodeResponse'+ { httpStatus =+ pHttpStatus_,+ virtualNode = pVirtualNode_+ }++-- | The response's http status code.+updateVirtualNodeResponse_httpStatus :: Lens.Lens' UpdateVirtualNodeResponse Prelude.Int+updateVirtualNodeResponse_httpStatus = Lens.lens (\UpdateVirtualNodeResponse' {httpStatus} -> httpStatus) (\s@UpdateVirtualNodeResponse' {} a -> s {httpStatus = a} :: UpdateVirtualNodeResponse)++-- | A full description of the virtual node that was updated.+updateVirtualNodeResponse_virtualNode :: Lens.Lens' UpdateVirtualNodeResponse VirtualNodeData+updateVirtualNodeResponse_virtualNode = Lens.lens (\UpdateVirtualNodeResponse' {virtualNode} -> virtualNode) (\s@UpdateVirtualNodeResponse' {} a -> s {virtualNode = a} :: UpdateVirtualNodeResponse)++instance Prelude.NFData UpdateVirtualNodeResponse where+ rnf UpdateVirtualNodeResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualNode
+ gen/Amazonka/AppMesh/UpdateVirtualRouter.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.AppMesh.UpdateVirtualRouter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing virtual router in a specified service mesh.+module Amazonka.AppMesh.UpdateVirtualRouter+ ( -- * Creating a Request+ UpdateVirtualRouter (..),+ newUpdateVirtualRouter,++ -- * Request Lenses+ updateVirtualRouter_clientToken,+ updateVirtualRouter_meshOwner,+ updateVirtualRouter_meshName,+ updateVirtualRouter_spec,+ updateVirtualRouter_virtualRouterName,++ -- * Destructuring the Response+ UpdateVirtualRouterResponse (..),+ newUpdateVirtualRouterResponse,++ -- * Response Lenses+ updateVirtualRouterResponse_httpStatus,+ updateVirtualRouterResponse_virtualRouter,+ )+where++import Amazonka.AppMesh.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:/ 'newUpdateVirtualRouter' smart constructor.+data UpdateVirtualRouter = UpdateVirtualRouter'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the virtual router resides in.+ meshName :: Prelude.Text,+ -- | The new virtual router specification to apply. This overwrites the+ -- existing data.+ spec :: VirtualRouterSpec,+ -- | The name of the virtual router to update.+ virtualRouterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVirtualRouter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateVirtualRouter_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'updateVirtualRouter_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'updateVirtualRouter_meshName' - The name of the service mesh that the virtual router resides in.+--+-- 'spec', 'updateVirtualRouter_spec' - The new virtual router specification to apply. This overwrites the+-- existing data.+--+-- 'virtualRouterName', 'updateVirtualRouter_virtualRouterName' - The name of the virtual router to update.+newUpdateVirtualRouter ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ VirtualRouterSpec ->+ -- | 'virtualRouterName'+ Prelude.Text ->+ UpdateVirtualRouter+newUpdateVirtualRouter+ pMeshName_+ pSpec_+ pVirtualRouterName_ =+ UpdateVirtualRouter'+ { clientToken = Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualRouterName = pVirtualRouterName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+updateVirtualRouter_clientToken :: Lens.Lens' UpdateVirtualRouter (Prelude.Maybe Prelude.Text)+updateVirtualRouter_clientToken = Lens.lens (\UpdateVirtualRouter' {clientToken} -> clientToken) (\s@UpdateVirtualRouter' {} a -> s {clientToken = a} :: UpdateVirtualRouter)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+updateVirtualRouter_meshOwner :: Lens.Lens' UpdateVirtualRouter (Prelude.Maybe Prelude.Text)+updateVirtualRouter_meshOwner = Lens.lens (\UpdateVirtualRouter' {meshOwner} -> meshOwner) (\s@UpdateVirtualRouter' {} a -> s {meshOwner = a} :: UpdateVirtualRouter)++-- | The name of the service mesh that the virtual router resides in.+updateVirtualRouter_meshName :: Lens.Lens' UpdateVirtualRouter Prelude.Text+updateVirtualRouter_meshName = Lens.lens (\UpdateVirtualRouter' {meshName} -> meshName) (\s@UpdateVirtualRouter' {} a -> s {meshName = a} :: UpdateVirtualRouter)++-- | The new virtual router specification to apply. This overwrites the+-- existing data.+updateVirtualRouter_spec :: Lens.Lens' UpdateVirtualRouter VirtualRouterSpec+updateVirtualRouter_spec = Lens.lens (\UpdateVirtualRouter' {spec} -> spec) (\s@UpdateVirtualRouter' {} a -> s {spec = a} :: UpdateVirtualRouter)++-- | The name of the virtual router to update.+updateVirtualRouter_virtualRouterName :: Lens.Lens' UpdateVirtualRouter Prelude.Text+updateVirtualRouter_virtualRouterName = Lens.lens (\UpdateVirtualRouter' {virtualRouterName} -> virtualRouterName) (\s@UpdateVirtualRouter' {} a -> s {virtualRouterName = a} :: UpdateVirtualRouter)++instance Core.AWSRequest UpdateVirtualRouter where+ type+ AWSResponse UpdateVirtualRouter =+ UpdateVirtualRouterResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateVirtualRouterResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable UpdateVirtualRouter where+ hashWithSalt _salt UpdateVirtualRouter' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualRouterName++instance Prelude.NFData UpdateVirtualRouter where+ rnf UpdateVirtualRouter' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualRouterName++instance Data.ToHeaders UpdateVirtualRouter where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateVirtualRouter where+ toJSON UpdateVirtualRouter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ Prelude.Just ("spec" Data..= spec)+ ]+ )++instance Data.ToPath UpdateVirtualRouter where+ toPath UpdateVirtualRouter' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualRouters/",+ Data.toBS virtualRouterName+ ]++instance Data.ToQuery UpdateVirtualRouter where+ toQuery UpdateVirtualRouter' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newUpdateVirtualRouterResponse' smart constructor.+data UpdateVirtualRouterResponse = UpdateVirtualRouterResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A full description of the virtual router that was updated.+ virtualRouter :: VirtualRouterData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVirtualRouterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateVirtualRouterResponse_httpStatus' - The response's http status code.+--+-- 'virtualRouter', 'updateVirtualRouterResponse_virtualRouter' - A full description of the virtual router that was updated.+newUpdateVirtualRouterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualRouter'+ VirtualRouterData ->+ UpdateVirtualRouterResponse+newUpdateVirtualRouterResponse+ pHttpStatus_+ pVirtualRouter_ =+ UpdateVirtualRouterResponse'+ { httpStatus =+ pHttpStatus_,+ virtualRouter = pVirtualRouter_+ }++-- | The response's http status code.+updateVirtualRouterResponse_httpStatus :: Lens.Lens' UpdateVirtualRouterResponse Prelude.Int+updateVirtualRouterResponse_httpStatus = Lens.lens (\UpdateVirtualRouterResponse' {httpStatus} -> httpStatus) (\s@UpdateVirtualRouterResponse' {} a -> s {httpStatus = a} :: UpdateVirtualRouterResponse)++-- | A full description of the virtual router that was updated.+updateVirtualRouterResponse_virtualRouter :: Lens.Lens' UpdateVirtualRouterResponse VirtualRouterData+updateVirtualRouterResponse_virtualRouter = Lens.lens (\UpdateVirtualRouterResponse' {virtualRouter} -> virtualRouter) (\s@UpdateVirtualRouterResponse' {} a -> s {virtualRouter = a} :: UpdateVirtualRouterResponse)++instance Prelude.NFData UpdateVirtualRouterResponse where+ rnf UpdateVirtualRouterResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualRouter
+ gen/Amazonka/AppMesh/UpdateVirtualService.hs view
@@ -0,0 +1,259 @@+{-# 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.AppMesh.UpdateVirtualService+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing virtual service in a specified service mesh.+module Amazonka.AppMesh.UpdateVirtualService+ ( -- * Creating a Request+ UpdateVirtualService (..),+ newUpdateVirtualService,++ -- * Request Lenses+ updateVirtualService_clientToken,+ updateVirtualService_meshOwner,+ updateVirtualService_meshName,+ updateVirtualService_spec,+ updateVirtualService_virtualServiceName,++ -- * Destructuring the Response+ UpdateVirtualServiceResponse (..),+ newUpdateVirtualServiceResponse,++ -- * Response Lenses+ updateVirtualServiceResponse_httpStatus,+ updateVirtualServiceResponse_virtualService,+ )+where++import Amazonka.AppMesh.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:/ 'newUpdateVirtualService' smart constructor.+data UpdateVirtualService = UpdateVirtualService'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request. Up to 36 letters, numbers, hyphens, and+ -- underscores are allowed.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services IAM account ID of the service mesh owner. If the+ -- account ID is not your own, then it\'s the ID of the account that shared+ -- the mesh with your account. For more information about mesh sharing, see+ -- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+ meshOwner :: Prelude.Maybe Prelude.Text,+ -- | The name of the service mesh that the virtual service resides in.+ meshName :: Prelude.Text,+ -- | The new virtual service specification to apply. This overwrites the+ -- existing data.+ spec :: VirtualServiceSpec,+ -- | The name of the virtual service to update.+ virtualServiceName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVirtualService' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateVirtualService_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+--+-- 'meshOwner', 'updateVirtualService_meshOwner' - The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+--+-- 'meshName', 'updateVirtualService_meshName' - The name of the service mesh that the virtual service resides in.+--+-- 'spec', 'updateVirtualService_spec' - The new virtual service specification to apply. This overwrites the+-- existing data.+--+-- 'virtualServiceName', 'updateVirtualService_virtualServiceName' - The name of the virtual service to update.+newUpdateVirtualService ::+ -- | 'meshName'+ Prelude.Text ->+ -- | 'spec'+ VirtualServiceSpec ->+ -- | 'virtualServiceName'+ Prelude.Text ->+ UpdateVirtualService+newUpdateVirtualService+ pMeshName_+ pSpec_+ pVirtualServiceName_ =+ UpdateVirtualService'+ { clientToken =+ Prelude.Nothing,+ meshOwner = Prelude.Nothing,+ meshName = pMeshName_,+ spec = pSpec_,+ virtualServiceName = pVirtualServiceName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. Up to 36 letters, numbers, hyphens, and+-- underscores are allowed.+updateVirtualService_clientToken :: Lens.Lens' UpdateVirtualService (Prelude.Maybe Prelude.Text)+updateVirtualService_clientToken = Lens.lens (\UpdateVirtualService' {clientToken} -> clientToken) (\s@UpdateVirtualService' {} a -> s {clientToken = a} :: UpdateVirtualService)++-- | The Amazon Web Services IAM account ID of the service mesh owner. If the+-- account ID is not your own, then it\'s the ID of the account that shared+-- the mesh with your account. For more information about mesh sharing, see+-- <https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html Working with shared meshes>.+updateVirtualService_meshOwner :: Lens.Lens' UpdateVirtualService (Prelude.Maybe Prelude.Text)+updateVirtualService_meshOwner = Lens.lens (\UpdateVirtualService' {meshOwner} -> meshOwner) (\s@UpdateVirtualService' {} a -> s {meshOwner = a} :: UpdateVirtualService)++-- | The name of the service mesh that the virtual service resides in.+updateVirtualService_meshName :: Lens.Lens' UpdateVirtualService Prelude.Text+updateVirtualService_meshName = Lens.lens (\UpdateVirtualService' {meshName} -> meshName) (\s@UpdateVirtualService' {} a -> s {meshName = a} :: UpdateVirtualService)++-- | The new virtual service specification to apply. This overwrites the+-- existing data.+updateVirtualService_spec :: Lens.Lens' UpdateVirtualService VirtualServiceSpec+updateVirtualService_spec = Lens.lens (\UpdateVirtualService' {spec} -> spec) (\s@UpdateVirtualService' {} a -> s {spec = a} :: UpdateVirtualService)++-- | The name of the virtual service to update.+updateVirtualService_virtualServiceName :: Lens.Lens' UpdateVirtualService Prelude.Text+updateVirtualService_virtualServiceName = Lens.lens (\UpdateVirtualService' {virtualServiceName} -> virtualServiceName) (\s@UpdateVirtualService' {} a -> s {virtualServiceName = a} :: UpdateVirtualService)++instance Core.AWSRequest UpdateVirtualService where+ type+ AWSResponse UpdateVirtualService =+ UpdateVirtualServiceResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateVirtualServiceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (Data.eitherParseJSON x)+ )++instance Prelude.Hashable UpdateVirtualService where+ hashWithSalt _salt UpdateVirtualService' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` meshOwner+ `Prelude.hashWithSalt` meshName+ `Prelude.hashWithSalt` spec+ `Prelude.hashWithSalt` virtualServiceName++instance Prelude.NFData UpdateVirtualService where+ rnf UpdateVirtualService' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf meshOwner+ `Prelude.seq` Prelude.rnf meshName+ `Prelude.seq` Prelude.rnf spec+ `Prelude.seq` Prelude.rnf virtualServiceName++instance Data.ToHeaders UpdateVirtualService where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateVirtualService where+ toJSON UpdateVirtualService' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ Prelude.Just ("spec" Data..= spec)+ ]+ )++instance Data.ToPath UpdateVirtualService where+ toPath UpdateVirtualService' {..} =+ Prelude.mconcat+ [ "/v20190125/meshes/",+ Data.toBS meshName,+ "/virtualServices/",+ Data.toBS virtualServiceName+ ]++instance Data.ToQuery UpdateVirtualService where+ toQuery UpdateVirtualService' {..} =+ Prelude.mconcat ["meshOwner" Data.=: meshOwner]++-- |+--+-- /See:/ 'newUpdateVirtualServiceResponse' smart constructor.+data UpdateVirtualServiceResponse = UpdateVirtualServiceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A full description of the virtual service that was updated.+ virtualService :: VirtualServiceData+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVirtualServiceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateVirtualServiceResponse_httpStatus' - The response's http status code.+--+-- 'virtualService', 'updateVirtualServiceResponse_virtualService' - A full description of the virtual service that was updated.+newUpdateVirtualServiceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'virtualService'+ VirtualServiceData ->+ UpdateVirtualServiceResponse+newUpdateVirtualServiceResponse+ pHttpStatus_+ pVirtualService_ =+ UpdateVirtualServiceResponse'+ { httpStatus =+ pHttpStatus_,+ virtualService = pVirtualService_+ }++-- | The response's http status code.+updateVirtualServiceResponse_httpStatus :: Lens.Lens' UpdateVirtualServiceResponse Prelude.Int+updateVirtualServiceResponse_httpStatus = Lens.lens (\UpdateVirtualServiceResponse' {httpStatus} -> httpStatus) (\s@UpdateVirtualServiceResponse' {} a -> s {httpStatus = a} :: UpdateVirtualServiceResponse)++-- | A full description of the virtual service that was updated.+updateVirtualServiceResponse_virtualService :: Lens.Lens' UpdateVirtualServiceResponse VirtualServiceData+updateVirtualServiceResponse_virtualService = Lens.lens (\UpdateVirtualServiceResponse' {virtualService} -> virtualService) (\s@UpdateVirtualServiceResponse' {} a -> s {virtualService = a} :: UpdateVirtualServiceResponse)++instance Prelude.NFData UpdateVirtualServiceResponse where+ rnf UpdateVirtualServiceResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf virtualService
+ gen/Amazonka/AppMesh/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.AppMesh.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.AppMesh.Waiters where++import Amazonka.AppMesh.Lens+import Amazonka.AppMesh.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.AppMesh+import Test.Amazonka.AppMesh.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "AppMesh"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/AppMesh.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.AppMesh+-- 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.AppMesh+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/AppMesh/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.AppMesh.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.AppMesh.Internal where
+ test/Test/Amazonka/Gen/AppMesh.hs view
@@ -0,0 +1,798 @@+{-# 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.AppMesh+-- 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.AppMesh where++import Amazonka.AppMesh+import qualified Data.Proxy as Proxy+import Test.Amazonka.AppMesh.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"+-- [ requestCreateGatewayRoute $+-- newCreateGatewayRoute+--+-- , requestCreateMesh $+-- newCreateMesh+--+-- , requestCreateRoute $+-- newCreateRoute+--+-- , requestCreateVirtualGateway $+-- newCreateVirtualGateway+--+-- , requestCreateVirtualNode $+-- newCreateVirtualNode+--+-- , requestCreateVirtualRouter $+-- newCreateVirtualRouter+--+-- , requestCreateVirtualService $+-- newCreateVirtualService+--+-- , requestDeleteGatewayRoute $+-- newDeleteGatewayRoute+--+-- , requestDeleteMesh $+-- newDeleteMesh+--+-- , requestDeleteRoute $+-- newDeleteRoute+--+-- , requestDeleteVirtualGateway $+-- newDeleteVirtualGateway+--+-- , requestDeleteVirtualNode $+-- newDeleteVirtualNode+--+-- , requestDeleteVirtualRouter $+-- newDeleteVirtualRouter+--+-- , requestDeleteVirtualService $+-- newDeleteVirtualService+--+-- , requestDescribeGatewayRoute $+-- newDescribeGatewayRoute+--+-- , requestDescribeMesh $+-- newDescribeMesh+--+-- , requestDescribeRoute $+-- newDescribeRoute+--+-- , requestDescribeVirtualGateway $+-- newDescribeVirtualGateway+--+-- , requestDescribeVirtualNode $+-- newDescribeVirtualNode+--+-- , requestDescribeVirtualRouter $+-- newDescribeVirtualRouter+--+-- , requestDescribeVirtualService $+-- newDescribeVirtualService+--+-- , requestListGatewayRoutes $+-- newListGatewayRoutes+--+-- , requestListMeshes $+-- newListMeshes+--+-- , requestListRoutes $+-- newListRoutes+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestListVirtualGateways $+-- newListVirtualGateways+--+-- , requestListVirtualNodes $+-- newListVirtualNodes+--+-- , requestListVirtualRouters $+-- newListVirtualRouters+--+-- , requestListVirtualServices $+-- newListVirtualServices+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateGatewayRoute $+-- newUpdateGatewayRoute+--+-- , requestUpdateMesh $+-- newUpdateMesh+--+-- , requestUpdateRoute $+-- newUpdateRoute+--+-- , requestUpdateVirtualGateway $+-- newUpdateVirtualGateway+--+-- , requestUpdateVirtualNode $+-- newUpdateVirtualNode+--+-- , requestUpdateVirtualRouter $+-- newUpdateVirtualRouter+--+-- , requestUpdateVirtualService $+-- newUpdateVirtualService+--+-- ]++-- , testGroup "response"+-- [ responseCreateGatewayRoute $+-- newCreateGatewayRouteResponse+--+-- , responseCreateMesh $+-- newCreateMeshResponse+--+-- , responseCreateRoute $+-- newCreateRouteResponse+--+-- , responseCreateVirtualGateway $+-- newCreateVirtualGatewayResponse+--+-- , responseCreateVirtualNode $+-- newCreateVirtualNodeResponse+--+-- , responseCreateVirtualRouter $+-- newCreateVirtualRouterResponse+--+-- , responseCreateVirtualService $+-- newCreateVirtualServiceResponse+--+-- , responseDeleteGatewayRoute $+-- newDeleteGatewayRouteResponse+--+-- , responseDeleteMesh $+-- newDeleteMeshResponse+--+-- , responseDeleteRoute $+-- newDeleteRouteResponse+--+-- , responseDeleteVirtualGateway $+-- newDeleteVirtualGatewayResponse+--+-- , responseDeleteVirtualNode $+-- newDeleteVirtualNodeResponse+--+-- , responseDeleteVirtualRouter $+-- newDeleteVirtualRouterResponse+--+-- , responseDeleteVirtualService $+-- newDeleteVirtualServiceResponse+--+-- , responseDescribeGatewayRoute $+-- newDescribeGatewayRouteResponse+--+-- , responseDescribeMesh $+-- newDescribeMeshResponse+--+-- , responseDescribeRoute $+-- newDescribeRouteResponse+--+-- , responseDescribeVirtualGateway $+-- newDescribeVirtualGatewayResponse+--+-- , responseDescribeVirtualNode $+-- newDescribeVirtualNodeResponse+--+-- , responseDescribeVirtualRouter $+-- newDescribeVirtualRouterResponse+--+-- , responseDescribeVirtualService $+-- newDescribeVirtualServiceResponse+--+-- , responseListGatewayRoutes $+-- newListGatewayRoutesResponse+--+-- , responseListMeshes $+-- newListMeshesResponse+--+-- , responseListRoutes $+-- newListRoutesResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responseListVirtualGateways $+-- newListVirtualGatewaysResponse+--+-- , responseListVirtualNodes $+-- newListVirtualNodesResponse+--+-- , responseListVirtualRouters $+-- newListVirtualRoutersResponse+--+-- , responseListVirtualServices $+-- newListVirtualServicesResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateGatewayRoute $+-- newUpdateGatewayRouteResponse+--+-- , responseUpdateMesh $+-- newUpdateMeshResponse+--+-- , responseUpdateRoute $+-- newUpdateRouteResponse+--+-- , responseUpdateVirtualGateway $+-- newUpdateVirtualGatewayResponse+--+-- , responseUpdateVirtualNode $+-- newUpdateVirtualNodeResponse+--+-- , responseUpdateVirtualRouter $+-- newUpdateVirtualRouterResponse+--+-- , responseUpdateVirtualService $+-- newUpdateVirtualServiceResponse+--+-- ]+-- ]++-- Requests++requestCreateGatewayRoute :: CreateGatewayRoute -> TestTree+requestCreateGatewayRoute =+ req+ "CreateGatewayRoute"+ "fixture/CreateGatewayRoute.yaml"++requestCreateMesh :: CreateMesh -> TestTree+requestCreateMesh =+ req+ "CreateMesh"+ "fixture/CreateMesh.yaml"++requestCreateRoute :: CreateRoute -> TestTree+requestCreateRoute =+ req+ "CreateRoute"+ "fixture/CreateRoute.yaml"++requestCreateVirtualGateway :: CreateVirtualGateway -> TestTree+requestCreateVirtualGateway =+ req+ "CreateVirtualGateway"+ "fixture/CreateVirtualGateway.yaml"++requestCreateVirtualNode :: CreateVirtualNode -> TestTree+requestCreateVirtualNode =+ req+ "CreateVirtualNode"+ "fixture/CreateVirtualNode.yaml"++requestCreateVirtualRouter :: CreateVirtualRouter -> TestTree+requestCreateVirtualRouter =+ req+ "CreateVirtualRouter"+ "fixture/CreateVirtualRouter.yaml"++requestCreateVirtualService :: CreateVirtualService -> TestTree+requestCreateVirtualService =+ req+ "CreateVirtualService"+ "fixture/CreateVirtualService.yaml"++requestDeleteGatewayRoute :: DeleteGatewayRoute -> TestTree+requestDeleteGatewayRoute =+ req+ "DeleteGatewayRoute"+ "fixture/DeleteGatewayRoute.yaml"++requestDeleteMesh :: DeleteMesh -> TestTree+requestDeleteMesh =+ req+ "DeleteMesh"+ "fixture/DeleteMesh.yaml"++requestDeleteRoute :: DeleteRoute -> TestTree+requestDeleteRoute =+ req+ "DeleteRoute"+ "fixture/DeleteRoute.yaml"++requestDeleteVirtualGateway :: DeleteVirtualGateway -> TestTree+requestDeleteVirtualGateway =+ req+ "DeleteVirtualGateway"+ "fixture/DeleteVirtualGateway.yaml"++requestDeleteVirtualNode :: DeleteVirtualNode -> TestTree+requestDeleteVirtualNode =+ req+ "DeleteVirtualNode"+ "fixture/DeleteVirtualNode.yaml"++requestDeleteVirtualRouter :: DeleteVirtualRouter -> TestTree+requestDeleteVirtualRouter =+ req+ "DeleteVirtualRouter"+ "fixture/DeleteVirtualRouter.yaml"++requestDeleteVirtualService :: DeleteVirtualService -> TestTree+requestDeleteVirtualService =+ req+ "DeleteVirtualService"+ "fixture/DeleteVirtualService.yaml"++requestDescribeGatewayRoute :: DescribeGatewayRoute -> TestTree+requestDescribeGatewayRoute =+ req+ "DescribeGatewayRoute"+ "fixture/DescribeGatewayRoute.yaml"++requestDescribeMesh :: DescribeMesh -> TestTree+requestDescribeMesh =+ req+ "DescribeMesh"+ "fixture/DescribeMesh.yaml"++requestDescribeRoute :: DescribeRoute -> TestTree+requestDescribeRoute =+ req+ "DescribeRoute"+ "fixture/DescribeRoute.yaml"++requestDescribeVirtualGateway :: DescribeVirtualGateway -> TestTree+requestDescribeVirtualGateway =+ req+ "DescribeVirtualGateway"+ "fixture/DescribeVirtualGateway.yaml"++requestDescribeVirtualNode :: DescribeVirtualNode -> TestTree+requestDescribeVirtualNode =+ req+ "DescribeVirtualNode"+ "fixture/DescribeVirtualNode.yaml"++requestDescribeVirtualRouter :: DescribeVirtualRouter -> TestTree+requestDescribeVirtualRouter =+ req+ "DescribeVirtualRouter"+ "fixture/DescribeVirtualRouter.yaml"++requestDescribeVirtualService :: DescribeVirtualService -> TestTree+requestDescribeVirtualService =+ req+ "DescribeVirtualService"+ "fixture/DescribeVirtualService.yaml"++requestListGatewayRoutes :: ListGatewayRoutes -> TestTree+requestListGatewayRoutes =+ req+ "ListGatewayRoutes"+ "fixture/ListGatewayRoutes.yaml"++requestListMeshes :: ListMeshes -> TestTree+requestListMeshes =+ req+ "ListMeshes"+ "fixture/ListMeshes.yaml"++requestListRoutes :: ListRoutes -> TestTree+requestListRoutes =+ req+ "ListRoutes"+ "fixture/ListRoutes.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestListVirtualGateways :: ListVirtualGateways -> TestTree+requestListVirtualGateways =+ req+ "ListVirtualGateways"+ "fixture/ListVirtualGateways.yaml"++requestListVirtualNodes :: ListVirtualNodes -> TestTree+requestListVirtualNodes =+ req+ "ListVirtualNodes"+ "fixture/ListVirtualNodes.yaml"++requestListVirtualRouters :: ListVirtualRouters -> TestTree+requestListVirtualRouters =+ req+ "ListVirtualRouters"+ "fixture/ListVirtualRouters.yaml"++requestListVirtualServices :: ListVirtualServices -> TestTree+requestListVirtualServices =+ req+ "ListVirtualServices"+ "fixture/ListVirtualServices.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateGatewayRoute :: UpdateGatewayRoute -> TestTree+requestUpdateGatewayRoute =+ req+ "UpdateGatewayRoute"+ "fixture/UpdateGatewayRoute.yaml"++requestUpdateMesh :: UpdateMesh -> TestTree+requestUpdateMesh =+ req+ "UpdateMesh"+ "fixture/UpdateMesh.yaml"++requestUpdateRoute :: UpdateRoute -> TestTree+requestUpdateRoute =+ req+ "UpdateRoute"+ "fixture/UpdateRoute.yaml"++requestUpdateVirtualGateway :: UpdateVirtualGateway -> TestTree+requestUpdateVirtualGateway =+ req+ "UpdateVirtualGateway"+ "fixture/UpdateVirtualGateway.yaml"++requestUpdateVirtualNode :: UpdateVirtualNode -> TestTree+requestUpdateVirtualNode =+ req+ "UpdateVirtualNode"+ "fixture/UpdateVirtualNode.yaml"++requestUpdateVirtualRouter :: UpdateVirtualRouter -> TestTree+requestUpdateVirtualRouter =+ req+ "UpdateVirtualRouter"+ "fixture/UpdateVirtualRouter.yaml"++requestUpdateVirtualService :: UpdateVirtualService -> TestTree+requestUpdateVirtualService =+ req+ "UpdateVirtualService"+ "fixture/UpdateVirtualService.yaml"++-- Responses++responseCreateGatewayRoute :: CreateGatewayRouteResponse -> TestTree+responseCreateGatewayRoute =+ res+ "CreateGatewayRouteResponse"+ "fixture/CreateGatewayRouteResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateGatewayRoute)++responseCreateMesh :: CreateMeshResponse -> TestTree+responseCreateMesh =+ res+ "CreateMeshResponse"+ "fixture/CreateMeshResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateMesh)++responseCreateRoute :: CreateRouteResponse -> TestTree+responseCreateRoute =+ res+ "CreateRouteResponse"+ "fixture/CreateRouteResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateRoute)++responseCreateVirtualGateway :: CreateVirtualGatewayResponse -> TestTree+responseCreateVirtualGateway =+ res+ "CreateVirtualGatewayResponse"+ "fixture/CreateVirtualGatewayResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateVirtualGateway)++responseCreateVirtualNode :: CreateVirtualNodeResponse -> TestTree+responseCreateVirtualNode =+ res+ "CreateVirtualNodeResponse"+ "fixture/CreateVirtualNodeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateVirtualNode)++responseCreateVirtualRouter :: CreateVirtualRouterResponse -> TestTree+responseCreateVirtualRouter =+ res+ "CreateVirtualRouterResponse"+ "fixture/CreateVirtualRouterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateVirtualRouter)++responseCreateVirtualService :: CreateVirtualServiceResponse -> TestTree+responseCreateVirtualService =+ res+ "CreateVirtualServiceResponse"+ "fixture/CreateVirtualServiceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateVirtualService)++responseDeleteGatewayRoute :: DeleteGatewayRouteResponse -> TestTree+responseDeleteGatewayRoute =+ res+ "DeleteGatewayRouteResponse"+ "fixture/DeleteGatewayRouteResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteGatewayRoute)++responseDeleteMesh :: DeleteMeshResponse -> TestTree+responseDeleteMesh =+ res+ "DeleteMeshResponse"+ "fixture/DeleteMeshResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteMesh)++responseDeleteRoute :: DeleteRouteResponse -> TestTree+responseDeleteRoute =+ res+ "DeleteRouteResponse"+ "fixture/DeleteRouteResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteRoute)++responseDeleteVirtualGateway :: DeleteVirtualGatewayResponse -> TestTree+responseDeleteVirtualGateway =+ res+ "DeleteVirtualGatewayResponse"+ "fixture/DeleteVirtualGatewayResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteVirtualGateway)++responseDeleteVirtualNode :: DeleteVirtualNodeResponse -> TestTree+responseDeleteVirtualNode =+ res+ "DeleteVirtualNodeResponse"+ "fixture/DeleteVirtualNodeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteVirtualNode)++responseDeleteVirtualRouter :: DeleteVirtualRouterResponse -> TestTree+responseDeleteVirtualRouter =+ res+ "DeleteVirtualRouterResponse"+ "fixture/DeleteVirtualRouterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteVirtualRouter)++responseDeleteVirtualService :: DeleteVirtualServiceResponse -> TestTree+responseDeleteVirtualService =+ res+ "DeleteVirtualServiceResponse"+ "fixture/DeleteVirtualServiceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteVirtualService)++responseDescribeGatewayRoute :: DescribeGatewayRouteResponse -> TestTree+responseDescribeGatewayRoute =+ res+ "DescribeGatewayRouteResponse"+ "fixture/DescribeGatewayRouteResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeGatewayRoute)++responseDescribeMesh :: DescribeMeshResponse -> TestTree+responseDescribeMesh =+ res+ "DescribeMeshResponse"+ "fixture/DescribeMeshResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeMesh)++responseDescribeRoute :: DescribeRouteResponse -> TestTree+responseDescribeRoute =+ res+ "DescribeRouteResponse"+ "fixture/DescribeRouteResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeRoute)++responseDescribeVirtualGateway :: DescribeVirtualGatewayResponse -> TestTree+responseDescribeVirtualGateway =+ res+ "DescribeVirtualGatewayResponse"+ "fixture/DescribeVirtualGatewayResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeVirtualGateway)++responseDescribeVirtualNode :: DescribeVirtualNodeResponse -> TestTree+responseDescribeVirtualNode =+ res+ "DescribeVirtualNodeResponse"+ "fixture/DescribeVirtualNodeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeVirtualNode)++responseDescribeVirtualRouter :: DescribeVirtualRouterResponse -> TestTree+responseDescribeVirtualRouter =+ res+ "DescribeVirtualRouterResponse"+ "fixture/DescribeVirtualRouterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeVirtualRouter)++responseDescribeVirtualService :: DescribeVirtualServiceResponse -> TestTree+responseDescribeVirtualService =+ res+ "DescribeVirtualServiceResponse"+ "fixture/DescribeVirtualServiceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeVirtualService)++responseListGatewayRoutes :: ListGatewayRoutesResponse -> TestTree+responseListGatewayRoutes =+ res+ "ListGatewayRoutesResponse"+ "fixture/ListGatewayRoutesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListGatewayRoutes)++responseListMeshes :: ListMeshesResponse -> TestTree+responseListMeshes =+ res+ "ListMeshesResponse"+ "fixture/ListMeshesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListMeshes)++responseListRoutes :: ListRoutesResponse -> TestTree+responseListRoutes =+ res+ "ListRoutesResponse"+ "fixture/ListRoutesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListRoutes)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListVirtualGateways :: ListVirtualGatewaysResponse -> TestTree+responseListVirtualGateways =+ res+ "ListVirtualGatewaysResponse"+ "fixture/ListVirtualGatewaysResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListVirtualGateways)++responseListVirtualNodes :: ListVirtualNodesResponse -> TestTree+responseListVirtualNodes =+ res+ "ListVirtualNodesResponse"+ "fixture/ListVirtualNodesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListVirtualNodes)++responseListVirtualRouters :: ListVirtualRoutersResponse -> TestTree+responseListVirtualRouters =+ res+ "ListVirtualRoutersResponse"+ "fixture/ListVirtualRoutersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListVirtualRouters)++responseListVirtualServices :: ListVirtualServicesResponse -> TestTree+responseListVirtualServices =+ res+ "ListVirtualServicesResponse"+ "fixture/ListVirtualServicesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListVirtualServices)++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)++responseUpdateGatewayRoute :: UpdateGatewayRouteResponse -> TestTree+responseUpdateGatewayRoute =+ res+ "UpdateGatewayRouteResponse"+ "fixture/UpdateGatewayRouteResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateGatewayRoute)++responseUpdateMesh :: UpdateMeshResponse -> TestTree+responseUpdateMesh =+ res+ "UpdateMeshResponse"+ "fixture/UpdateMeshResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateMesh)++responseUpdateRoute :: UpdateRouteResponse -> TestTree+responseUpdateRoute =+ res+ "UpdateRouteResponse"+ "fixture/UpdateRouteResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateRoute)++responseUpdateVirtualGateway :: UpdateVirtualGatewayResponse -> TestTree+responseUpdateVirtualGateway =+ res+ "UpdateVirtualGatewayResponse"+ "fixture/UpdateVirtualGatewayResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateVirtualGateway)++responseUpdateVirtualNode :: UpdateVirtualNodeResponse -> TestTree+responseUpdateVirtualNode =+ res+ "UpdateVirtualNodeResponse"+ "fixture/UpdateVirtualNodeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateVirtualNode)++responseUpdateVirtualRouter :: UpdateVirtualRouterResponse -> TestTree+responseUpdateVirtualRouter =+ res+ "UpdateVirtualRouterResponse"+ "fixture/UpdateVirtualRouterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateVirtualRouter)++responseUpdateVirtualService :: UpdateVirtualServiceResponse -> TestTree+responseUpdateVirtualService =+ res+ "UpdateVirtualServiceResponse"+ "fixture/UpdateVirtualServiceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateVirtualService)