/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace AppMesh { /** *

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 Service * Discovery in the Amazon Elastic Container Service Developer Guide. * Kubernetes kube-dns and coredns are supported. For * more information, see DNS * for Services and Pods in the Kubernetes documentation.

*/ class AWS_APPMESH_API AppMeshClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef AppMeshClientConfiguration ClientConfigurationType; typedef AppMeshEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ AppMeshClient(const Aws::AppMesh::AppMeshClientConfiguration& clientConfiguration = Aws::AppMesh::AppMeshClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ AppMeshClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::AppMesh::AppMeshClientConfiguration& clientConfiguration = Aws::AppMesh::AppMeshClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ AppMeshClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::AppMesh::AppMeshClientConfiguration& clientConfiguration = Aws::AppMesh::AppMeshClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ AppMeshClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ AppMeshClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ AppMeshClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~AppMeshClient(); /** *

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 Gateway * routes.

See Also:

AWS * API Reference

*/ virtual Model::CreateGatewayRouteOutcome CreateGatewayRoute(const Model::CreateGatewayRouteRequest& request) const; /** * A Callable wrapper for CreateGatewayRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateGatewayRouteOutcomeCallable CreateGatewayRouteCallable(const CreateGatewayRouteRequestT& request) const { return SubmitCallable(&AppMeshClient::CreateGatewayRoute, request); } /** * An Async wrapper for CreateGatewayRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateGatewayRouteAsync(const CreateGatewayRouteRequestT& request, const CreateGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::CreateGatewayRoute, request, handler, context); } /** *

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 * Service * meshes.

See Also:

AWS * API Reference

*/ virtual Model::CreateMeshOutcome CreateMesh(const Model::CreateMeshRequest& request) const; /** * A Callable wrapper for CreateMesh that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateMeshOutcomeCallable CreateMeshCallable(const CreateMeshRequestT& request) const { return SubmitCallable(&AppMeshClient::CreateMesh, request); } /** * An Async wrapper for CreateMesh that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateMeshAsync(const CreateMeshRequestT& request, const CreateMeshResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::CreateMesh, request, handler, context); } /** *

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 Routes.

See * Also:

AWS * API Reference

*/ virtual Model::CreateRouteOutcome CreateRoute(const Model::CreateRouteRequest& request) const; /** * A Callable wrapper for CreateRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateRouteOutcomeCallable CreateRouteCallable(const CreateRouteRequestT& request) const { return SubmitCallable(&AppMeshClient::CreateRoute, request); } /** * An Async wrapper for CreateRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateRouteAsync(const CreateRouteRequestT& request, const CreateRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::CreateRoute, request, handler, context); } /** *

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 Virtual * gateways.

See Also:

AWS * API Reference

*/ virtual Model::CreateVirtualGatewayOutcome CreateVirtualGateway(const Model::CreateVirtualGatewayRequest& request) const; /** * A Callable wrapper for CreateVirtualGateway that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateVirtualGatewayOutcomeCallable CreateVirtualGatewayCallable(const CreateVirtualGatewayRequestT& request) const { return SubmitCallable(&AppMeshClient::CreateVirtualGateway, request); } /** * An Async wrapper for CreateVirtualGateway that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateVirtualGatewayAsync(const CreateVirtualGatewayRequestT& request, const CreateVirtualGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::CreateVirtualGateway, request, handler, context); } /** *

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 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 Envoy * image in the App Mesh User Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateVirtualNodeOutcome CreateVirtualNode(const Model::CreateVirtualNodeRequest& request) const; /** * A Callable wrapper for CreateVirtualNode that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateVirtualNodeOutcomeCallable CreateVirtualNodeCallable(const CreateVirtualNodeRequestT& request) const { return SubmitCallable(&AppMeshClient::CreateVirtualNode, request); } /** * An Async wrapper for CreateVirtualNode that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateVirtualNodeAsync(const CreateVirtualNodeRequestT& request, const CreateVirtualNodeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::CreateVirtualNode, request, handler, context); } /** *

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 Virtual * routers.

See Also:

AWS * API Reference

*/ virtual Model::CreateVirtualRouterOutcome CreateVirtualRouter(const Model::CreateVirtualRouterRequest& request) const; /** * A Callable wrapper for CreateVirtualRouter that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateVirtualRouterOutcomeCallable CreateVirtualRouterCallable(const CreateVirtualRouterRequestT& request) const { return SubmitCallable(&AppMeshClient::CreateVirtualRouter, request); } /** * An Async wrapper for CreateVirtualRouter that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateVirtualRouterAsync(const CreateVirtualRouterRequestT& request, const CreateVirtualRouterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::CreateVirtualRouter, request, handler, context); } /** *

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 Virtual * services.

See Also:

AWS * API Reference

*/ virtual Model::CreateVirtualServiceOutcome CreateVirtualService(const Model::CreateVirtualServiceRequest& request) const; /** * A Callable wrapper for CreateVirtualService that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateVirtualServiceOutcomeCallable CreateVirtualServiceCallable(const CreateVirtualServiceRequestT& request) const { return SubmitCallable(&AppMeshClient::CreateVirtualService, request); } /** * An Async wrapper for CreateVirtualService that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateVirtualServiceAsync(const CreateVirtualServiceRequestT& request, const CreateVirtualServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::CreateVirtualService, request, handler, context); } /** *

Deletes an existing gateway route.

See Also:

AWS * API Reference

*/ virtual Model::DeleteGatewayRouteOutcome DeleteGatewayRoute(const Model::DeleteGatewayRouteRequest& request) const; /** * A Callable wrapper for DeleteGatewayRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteGatewayRouteOutcomeCallable DeleteGatewayRouteCallable(const DeleteGatewayRouteRequestT& request) const { return SubmitCallable(&AppMeshClient::DeleteGatewayRoute, request); } /** * An Async wrapper for DeleteGatewayRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteGatewayRouteAsync(const DeleteGatewayRouteRequestT& request, const DeleteGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DeleteGatewayRoute, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeleteMeshOutcome DeleteMesh(const Model::DeleteMeshRequest& request) const; /** * A Callable wrapper for DeleteMesh that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteMeshOutcomeCallable DeleteMeshCallable(const DeleteMeshRequestT& request) const { return SubmitCallable(&AppMeshClient::DeleteMesh, request); } /** * An Async wrapper for DeleteMesh that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteMeshAsync(const DeleteMeshRequestT& request, const DeleteMeshResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DeleteMesh, request, handler, context); } /** *

Deletes an existing route.

See Also:

AWS * API Reference

*/ virtual Model::DeleteRouteOutcome DeleteRoute(const Model::DeleteRouteRequest& request) const; /** * A Callable wrapper for DeleteRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteRouteOutcomeCallable DeleteRouteCallable(const DeleteRouteRequestT& request) const { return SubmitCallable(&AppMeshClient::DeleteRoute, request); } /** * An Async wrapper for DeleteRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteRouteAsync(const DeleteRouteRequestT& request, const DeleteRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DeleteRoute, request, handler, context); } /** *

Deletes an existing virtual gateway. You cannot delete a virtual gateway if * any gateway routes are associated to it.

See Also:

AWS * API Reference

*/ virtual Model::DeleteVirtualGatewayOutcome DeleteVirtualGateway(const Model::DeleteVirtualGatewayRequest& request) const; /** * A Callable wrapper for DeleteVirtualGateway that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteVirtualGatewayOutcomeCallable DeleteVirtualGatewayCallable(const DeleteVirtualGatewayRequestT& request) const { return SubmitCallable(&AppMeshClient::DeleteVirtualGateway, request); } /** * An Async wrapper for DeleteVirtualGateway that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteVirtualGatewayAsync(const DeleteVirtualGatewayRequestT& request, const DeleteVirtualGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DeleteVirtualGateway, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeleteVirtualNodeOutcome DeleteVirtualNode(const Model::DeleteVirtualNodeRequest& request) const; /** * A Callable wrapper for DeleteVirtualNode that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteVirtualNodeOutcomeCallable DeleteVirtualNodeCallable(const DeleteVirtualNodeRequestT& request) const { return SubmitCallable(&AppMeshClient::DeleteVirtualNode, request); } /** * An Async wrapper for DeleteVirtualNode that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteVirtualNodeAsync(const DeleteVirtualNodeRequestT& request, const DeleteVirtualNodeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DeleteVirtualNode, request, handler, context); } /** *

Deletes an existing virtual router.

You must delete any routes * associated with the virtual router before you can delete the router * itself.

See Also:

AWS * API Reference

*/ virtual Model::DeleteVirtualRouterOutcome DeleteVirtualRouter(const Model::DeleteVirtualRouterRequest& request) const; /** * A Callable wrapper for DeleteVirtualRouter that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteVirtualRouterOutcomeCallable DeleteVirtualRouterCallable(const DeleteVirtualRouterRequestT& request) const { return SubmitCallable(&AppMeshClient::DeleteVirtualRouter, request); } /** * An Async wrapper for DeleteVirtualRouter that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteVirtualRouterAsync(const DeleteVirtualRouterRequestT& request, const DeleteVirtualRouterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DeleteVirtualRouter, request, handler, context); } /** *

Deletes an existing virtual service.

See Also:

AWS * API Reference

*/ virtual Model::DeleteVirtualServiceOutcome DeleteVirtualService(const Model::DeleteVirtualServiceRequest& request) const; /** * A Callable wrapper for DeleteVirtualService that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteVirtualServiceOutcomeCallable DeleteVirtualServiceCallable(const DeleteVirtualServiceRequestT& request) const { return SubmitCallable(&AppMeshClient::DeleteVirtualService, request); } /** * An Async wrapper for DeleteVirtualService that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteVirtualServiceAsync(const DeleteVirtualServiceRequestT& request, const DeleteVirtualServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DeleteVirtualService, request, handler, context); } /** *

Describes an existing gateway route.

See Also:

AWS * API Reference

*/ virtual Model::DescribeGatewayRouteOutcome DescribeGatewayRoute(const Model::DescribeGatewayRouteRequest& request) const; /** * A Callable wrapper for DescribeGatewayRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeGatewayRouteOutcomeCallable DescribeGatewayRouteCallable(const DescribeGatewayRouteRequestT& request) const { return SubmitCallable(&AppMeshClient::DescribeGatewayRoute, request); } /** * An Async wrapper for DescribeGatewayRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeGatewayRouteAsync(const DescribeGatewayRouteRequestT& request, const DescribeGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DescribeGatewayRoute, request, handler, context); } /** *

Describes an existing service mesh.

See Also:

AWS * API Reference

*/ virtual Model::DescribeMeshOutcome DescribeMesh(const Model::DescribeMeshRequest& request) const; /** * A Callable wrapper for DescribeMesh that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeMeshOutcomeCallable DescribeMeshCallable(const DescribeMeshRequestT& request) const { return SubmitCallable(&AppMeshClient::DescribeMesh, request); } /** * An Async wrapper for DescribeMesh that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeMeshAsync(const DescribeMeshRequestT& request, const DescribeMeshResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DescribeMesh, request, handler, context); } /** *

Describes an existing route.

See Also:

AWS * API Reference

*/ virtual Model::DescribeRouteOutcome DescribeRoute(const Model::DescribeRouteRequest& request) const; /** * A Callable wrapper for DescribeRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeRouteOutcomeCallable DescribeRouteCallable(const DescribeRouteRequestT& request) const { return SubmitCallable(&AppMeshClient::DescribeRoute, request); } /** * An Async wrapper for DescribeRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeRouteAsync(const DescribeRouteRequestT& request, const DescribeRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DescribeRoute, request, handler, context); } /** *

Describes an existing virtual gateway.

See Also:

AWS * API Reference

*/ virtual Model::DescribeVirtualGatewayOutcome DescribeVirtualGateway(const Model::DescribeVirtualGatewayRequest& request) const; /** * A Callable wrapper for DescribeVirtualGateway that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeVirtualGatewayOutcomeCallable DescribeVirtualGatewayCallable(const DescribeVirtualGatewayRequestT& request) const { return SubmitCallable(&AppMeshClient::DescribeVirtualGateway, request); } /** * An Async wrapper for DescribeVirtualGateway that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeVirtualGatewayAsync(const DescribeVirtualGatewayRequestT& request, const DescribeVirtualGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DescribeVirtualGateway, request, handler, context); } /** *

Describes an existing virtual node.

See Also:

AWS * API Reference

*/ virtual Model::DescribeVirtualNodeOutcome DescribeVirtualNode(const Model::DescribeVirtualNodeRequest& request) const; /** * A Callable wrapper for DescribeVirtualNode that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeVirtualNodeOutcomeCallable DescribeVirtualNodeCallable(const DescribeVirtualNodeRequestT& request) const { return SubmitCallable(&AppMeshClient::DescribeVirtualNode, request); } /** * An Async wrapper for DescribeVirtualNode that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeVirtualNodeAsync(const DescribeVirtualNodeRequestT& request, const DescribeVirtualNodeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DescribeVirtualNode, request, handler, context); } /** *

Describes an existing virtual router.

See Also:

AWS * API Reference

*/ virtual Model::DescribeVirtualRouterOutcome DescribeVirtualRouter(const Model::DescribeVirtualRouterRequest& request) const; /** * A Callable wrapper for DescribeVirtualRouter that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeVirtualRouterOutcomeCallable DescribeVirtualRouterCallable(const DescribeVirtualRouterRequestT& request) const { return SubmitCallable(&AppMeshClient::DescribeVirtualRouter, request); } /** * An Async wrapper for DescribeVirtualRouter that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeVirtualRouterAsync(const DescribeVirtualRouterRequestT& request, const DescribeVirtualRouterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DescribeVirtualRouter, request, handler, context); } /** *

Describes an existing virtual service.

See Also:

AWS * API Reference

*/ virtual Model::DescribeVirtualServiceOutcome DescribeVirtualService(const Model::DescribeVirtualServiceRequest& request) const; /** * A Callable wrapper for DescribeVirtualService that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeVirtualServiceOutcomeCallable DescribeVirtualServiceCallable(const DescribeVirtualServiceRequestT& request) const { return SubmitCallable(&AppMeshClient::DescribeVirtualService, request); } /** * An Async wrapper for DescribeVirtualService that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeVirtualServiceAsync(const DescribeVirtualServiceRequestT& request, const DescribeVirtualServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::DescribeVirtualService, request, handler, context); } /** *

Returns a list of existing gateway routes that are associated to a virtual * gateway.

See Also:

AWS * API Reference

*/ virtual Model::ListGatewayRoutesOutcome ListGatewayRoutes(const Model::ListGatewayRoutesRequest& request) const; /** * A Callable wrapper for ListGatewayRoutes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListGatewayRoutesOutcomeCallable ListGatewayRoutesCallable(const ListGatewayRoutesRequestT& request) const { return SubmitCallable(&AppMeshClient::ListGatewayRoutes, request); } /** * An Async wrapper for ListGatewayRoutes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListGatewayRoutesAsync(const ListGatewayRoutesRequestT& request, const ListGatewayRoutesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::ListGatewayRoutes, request, handler, context); } /** *

Returns a list of existing service meshes.

See Also:

AWS * API Reference

*/ virtual Model::ListMeshesOutcome ListMeshes(const Model::ListMeshesRequest& request) const; /** * A Callable wrapper for ListMeshes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListMeshesOutcomeCallable ListMeshesCallable(const ListMeshesRequestT& request) const { return SubmitCallable(&AppMeshClient::ListMeshes, request); } /** * An Async wrapper for ListMeshes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListMeshesAsync(const ListMeshesRequestT& request, const ListMeshesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::ListMeshes, request, handler, context); } /** *

Returns a list of existing routes in a service mesh.

See Also:

* AWS * API Reference

*/ virtual Model::ListRoutesOutcome ListRoutes(const Model::ListRoutesRequest& request) const; /** * A Callable wrapper for ListRoutes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListRoutesOutcomeCallable ListRoutesCallable(const ListRoutesRequestT& request) const { return SubmitCallable(&AppMeshClient::ListRoutes, request); } /** * An Async wrapper for ListRoutes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListRoutesAsync(const ListRoutesRequestT& request, const ListRoutesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::ListRoutes, request, handler, context); } /** *

List the tags for an App Mesh resource.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&AppMeshClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::ListTagsForResource, request, handler, context); } /** *

Returns a list of existing virtual gateways in a service mesh.

See * Also:

AWS * API Reference

*/ virtual Model::ListVirtualGatewaysOutcome ListVirtualGateways(const Model::ListVirtualGatewaysRequest& request) const; /** * A Callable wrapper for ListVirtualGateways that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListVirtualGatewaysOutcomeCallable ListVirtualGatewaysCallable(const ListVirtualGatewaysRequestT& request) const { return SubmitCallable(&AppMeshClient::ListVirtualGateways, request); } /** * An Async wrapper for ListVirtualGateways that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListVirtualGatewaysAsync(const ListVirtualGatewaysRequestT& request, const ListVirtualGatewaysResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::ListVirtualGateways, request, handler, context); } /** *

Returns a list of existing virtual nodes.

See Also:

AWS * API Reference

*/ virtual Model::ListVirtualNodesOutcome ListVirtualNodes(const Model::ListVirtualNodesRequest& request) const; /** * A Callable wrapper for ListVirtualNodes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListVirtualNodesOutcomeCallable ListVirtualNodesCallable(const ListVirtualNodesRequestT& request) const { return SubmitCallable(&AppMeshClient::ListVirtualNodes, request); } /** * An Async wrapper for ListVirtualNodes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListVirtualNodesAsync(const ListVirtualNodesRequestT& request, const ListVirtualNodesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::ListVirtualNodes, request, handler, context); } /** *

Returns a list of existing virtual routers in a service mesh.

See * Also:

AWS * API Reference

*/ virtual Model::ListVirtualRoutersOutcome ListVirtualRouters(const Model::ListVirtualRoutersRequest& request) const; /** * A Callable wrapper for ListVirtualRouters that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListVirtualRoutersOutcomeCallable ListVirtualRoutersCallable(const ListVirtualRoutersRequestT& request) const { return SubmitCallable(&AppMeshClient::ListVirtualRouters, request); } /** * An Async wrapper for ListVirtualRouters that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListVirtualRoutersAsync(const ListVirtualRoutersRequestT& request, const ListVirtualRoutersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::ListVirtualRouters, request, handler, context); } /** *

Returns a list of existing virtual services in a service mesh.

See * Also:

AWS * API Reference

*/ virtual Model::ListVirtualServicesOutcome ListVirtualServices(const Model::ListVirtualServicesRequest& request) const; /** * A Callable wrapper for ListVirtualServices that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListVirtualServicesOutcomeCallable ListVirtualServicesCallable(const ListVirtualServicesRequestT& request) const { return SubmitCallable(&AppMeshClient::ListVirtualServices, request); } /** * An Async wrapper for ListVirtualServices that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListVirtualServicesAsync(const ListVirtualServicesRequestT& request, const ListVirtualServicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::ListVirtualServices, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&AppMeshClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::TagResource, request, handler, context); } /** *

Deletes specified tags from a resource.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&AppMeshClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::UntagResource, request, handler, context); } /** *

Updates an existing gateway route that is associated to a specified virtual * gateway in a service mesh.

See Also:

AWS * API Reference

*/ virtual Model::UpdateGatewayRouteOutcome UpdateGatewayRoute(const Model::UpdateGatewayRouteRequest& request) const; /** * A Callable wrapper for UpdateGatewayRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateGatewayRouteOutcomeCallable UpdateGatewayRouteCallable(const UpdateGatewayRouteRequestT& request) const { return SubmitCallable(&AppMeshClient::UpdateGatewayRoute, request); } /** * An Async wrapper for UpdateGatewayRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateGatewayRouteAsync(const UpdateGatewayRouteRequestT& request, const UpdateGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::UpdateGatewayRoute, request, handler, context); } /** *

Updates an existing service mesh.

See Also:

AWS * API Reference

*/ virtual Model::UpdateMeshOutcome UpdateMesh(const Model::UpdateMeshRequest& request) const; /** * A Callable wrapper for UpdateMesh that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateMeshOutcomeCallable UpdateMeshCallable(const UpdateMeshRequestT& request) const { return SubmitCallable(&AppMeshClient::UpdateMesh, request); } /** * An Async wrapper for UpdateMesh that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateMeshAsync(const UpdateMeshRequestT& request, const UpdateMeshResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::UpdateMesh, request, handler, context); } /** *

Updates an existing route for a specified service mesh and virtual * router.

See Also:

AWS * API Reference

*/ virtual Model::UpdateRouteOutcome UpdateRoute(const Model::UpdateRouteRequest& request) const; /** * A Callable wrapper for UpdateRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateRouteOutcomeCallable UpdateRouteCallable(const UpdateRouteRequestT& request) const { return SubmitCallable(&AppMeshClient::UpdateRoute, request); } /** * An Async wrapper for UpdateRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateRouteAsync(const UpdateRouteRequestT& request, const UpdateRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::UpdateRoute, request, handler, context); } /** *

Updates an existing virtual gateway in a specified service * mesh.

See Also:

AWS * API Reference

*/ virtual Model::UpdateVirtualGatewayOutcome UpdateVirtualGateway(const Model::UpdateVirtualGatewayRequest& request) const; /** * A Callable wrapper for UpdateVirtualGateway that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateVirtualGatewayOutcomeCallable UpdateVirtualGatewayCallable(const UpdateVirtualGatewayRequestT& request) const { return SubmitCallable(&AppMeshClient::UpdateVirtualGateway, request); } /** * An Async wrapper for UpdateVirtualGateway that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateVirtualGatewayAsync(const UpdateVirtualGatewayRequestT& request, const UpdateVirtualGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::UpdateVirtualGateway, request, handler, context); } /** *

Updates an existing virtual node in a specified service mesh.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateVirtualNodeOutcome UpdateVirtualNode(const Model::UpdateVirtualNodeRequest& request) const; /** * A Callable wrapper for UpdateVirtualNode that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateVirtualNodeOutcomeCallable UpdateVirtualNodeCallable(const UpdateVirtualNodeRequestT& request) const { return SubmitCallable(&AppMeshClient::UpdateVirtualNode, request); } /** * An Async wrapper for UpdateVirtualNode that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateVirtualNodeAsync(const UpdateVirtualNodeRequestT& request, const UpdateVirtualNodeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::UpdateVirtualNode, request, handler, context); } /** *

Updates an existing virtual router in a specified service mesh.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateVirtualRouterOutcome UpdateVirtualRouter(const Model::UpdateVirtualRouterRequest& request) const; /** * A Callable wrapper for UpdateVirtualRouter that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateVirtualRouterOutcomeCallable UpdateVirtualRouterCallable(const UpdateVirtualRouterRequestT& request) const { return SubmitCallable(&AppMeshClient::UpdateVirtualRouter, request); } /** * An Async wrapper for UpdateVirtualRouter that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateVirtualRouterAsync(const UpdateVirtualRouterRequestT& request, const UpdateVirtualRouterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::UpdateVirtualRouter, request, handler, context); } /** *

Updates an existing virtual service in a specified service * mesh.

See Also:

AWS * API Reference

*/ virtual Model::UpdateVirtualServiceOutcome UpdateVirtualService(const Model::UpdateVirtualServiceRequest& request) const; /** * A Callable wrapper for UpdateVirtualService that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateVirtualServiceOutcomeCallable UpdateVirtualServiceCallable(const UpdateVirtualServiceRequestT& request) const { return SubmitCallable(&AppMeshClient::UpdateVirtualService, request); } /** * An Async wrapper for UpdateVirtualService that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateVirtualServiceAsync(const UpdateVirtualServiceRequestT& request, const UpdateVirtualServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&AppMeshClient::UpdateVirtualService, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const AppMeshClientConfiguration& clientConfiguration); AppMeshClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace AppMesh } // namespace Aws