/**
* 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