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

Amazon Web Services Migration Hub Refactor Spaces *

This API reference provides descriptions, syntax, and other details about * each of the actions and data types for Amazon Web Services Migration Hub * Refactor Spaces (Refactor Spaces). The topic for each action shows the API * request parameters and the response. Alternatively, you can use one of the * Amazon Web Services SDKs to access an API that is tailored to the programming * language or platform that you're using. For more information, see Amazon Web Services SDKs.

*

To share Refactor Spaces environments with other Amazon Web Services accounts * or with Organizations and their OUs, use Resource Access Manager's * CreateResourceShare API. See CreateResourceShare * in the Amazon Web Services RAM API Reference.

*/ class AWS_MIGRATIONHUBREFACTORSPACES_API MigrationHubRefactorSpacesClient : 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 MigrationHubRefactorSpacesClientConfiguration ClientConfigurationType; typedef MigrationHubRefactorSpacesEndpointProvider 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. */ MigrationHubRefactorSpacesClient(const Aws::MigrationHubRefactorSpaces::MigrationHubRefactorSpacesClientConfiguration& clientConfiguration = Aws::MigrationHubRefactorSpaces::MigrationHubRefactorSpacesClientConfiguration(), 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. */ MigrationHubRefactorSpacesClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::MigrationHubRefactorSpaces::MigrationHubRefactorSpacesClientConfiguration& clientConfiguration = Aws::MigrationHubRefactorSpaces::MigrationHubRefactorSpacesClientConfiguration()); /** * 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 */ MigrationHubRefactorSpacesClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::MigrationHubRefactorSpaces::MigrationHubRefactorSpacesClientConfiguration& clientConfiguration = Aws::MigrationHubRefactorSpaces::MigrationHubRefactorSpacesClientConfiguration()); /* 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. */ MigrationHubRefactorSpacesClient(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. */ MigrationHubRefactorSpacesClient(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 */ MigrationHubRefactorSpacesClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~MigrationHubRefactorSpacesClient(); /** *

Creates an Amazon Web Services Migration Hub Refactor Spaces application. The * account that owns the environment also owns the applications created inside the * environment, regardless of the account that creates the application. Refactor * Spaces provisions an Amazon API Gateway, API Gateway VPC link, and Network Load * Balancer for the application proxy inside your account.

In environments * created with a CreateEnvironment:NetworkFabricType * of NONE you need to configure * VPC to VPC connectivity between your service VPC and the application proxy * VPC to route traffic through the application proxy to a service with a private * URL endpoint. For more information, see * Create an application in the Refactor Spaces User Guide. *

See Also:

AWS * API Reference

*/ virtual Model::CreateApplicationOutcome CreateApplication(const Model::CreateApplicationRequest& request) const; /** * A Callable wrapper for CreateApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateApplicationOutcomeCallable CreateApplicationCallable(const CreateApplicationRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::CreateApplication, request); } /** * An Async wrapper for CreateApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateApplicationAsync(const CreateApplicationRequestT& request, const CreateApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::CreateApplication, request, handler, context); } /** *

Creates an Amazon Web Services Migration Hub Refactor Spaces environment. The * caller owns the environment resource, and all Refactor Spaces applications, * services, and routes created within the environment. They are referred to as the * environment owner. The environment owner has cross-account visibility and * control of Refactor Spaces resources that are added to the environment by other * accounts that the environment is shared with.

When creating an * environment with a CreateEnvironment:NetworkFabricType * of TRANSIT_GATEWAY, Refactor Spaces provisions a transit gateway to * enable services in VPCs to communicate directly across accounts. If CreateEnvironment:NetworkFabricType * is NONE, Refactor Spaces does not create a transit gateway and you * must use your network infrastructure to route traffic to services with private * URL endpoints.

See Also:

AWS * API Reference

*/ virtual Model::CreateEnvironmentOutcome CreateEnvironment(const Model::CreateEnvironmentRequest& request) const; /** * A Callable wrapper for CreateEnvironment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateEnvironmentOutcomeCallable CreateEnvironmentCallable(const CreateEnvironmentRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::CreateEnvironment, request); } /** * An Async wrapper for CreateEnvironment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateEnvironmentAsync(const CreateEnvironmentRequestT& request, const CreateEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::CreateEnvironment, request, handler, context); } /** *

Creates an Amazon Web Services Migration Hub Refactor Spaces route. The * account owner of the service resource is always the environment owner, * regardless of which account creates the route. Routes target a service in the * application. If an application does not have any routes, then the first route * must be created as a DEFAULT RouteType.

When * created, the default route defaults to an active state so state is not a * required input. However, like all other state values the state of the default * route can be updated after creation, but only when all other routes are also * inactive. Conversely, no route can be active without the default route also * being active.

When you create a route, Refactor Spaces configures the * Amazon API Gateway to send traffic to the target service as follows:

    *
  • URL Endpoints

    If the service has a URL endpoint, and the * endpoint resolves to a private IP address, Refactor Spaces routes traffic using * the API Gateway VPC link. If a service endpoint resolves to a public IP address, * Refactor Spaces routes traffic over the public internet. Services can have HTTP * or HTTPS URL endpoints. For HTTPS URLs, publicly-signed certificates are * supported. Private Certificate Authorities (CAs) are permitted only if the CA's * domain is also publicly resolvable.

    Refactor Spaces automatically * resolves the public Domain Name System (DNS) names that are set in * CreateService:UrlEndpoint when you create a service. The DNS names * resolve when the DNS time-to-live (TTL) expires, or every 60 seconds for TTLs * less than 60 seconds. This periodic DNS resolution ensures that the route * configuration remains up-to-date.

    One-time health check *

    A one-time health check is performed on the service when either the * route is updated from inactive to active, or when it is created with an active * state. If the health check fails, the route transitions the route state to * FAILED, an error code of * SERVICE_ENDPOINT_HEALTH_CHECK_FAILURE is provided, and no traffic * is sent to the service.

    For private URLs, a target group is created on * the Network Load Balancer and the load balancer target group runs default target * health checks. By default, the health check is run against the service endpoint * URL. Optionally, the health check can be performed against a different protocol, * port, and/or path using the CreateService:UrlEndpoint * parameter. All other health check settings for the load balancer use the default * values described in the Health * checks for your target groups in the Elastic Load Balancing guide. * The health check is considered successful if at least one target within the * target group transitions to a healthy state.

  • Lambda * function endpoints

    If the service has an Lambda function endpoint, * then Refactor Spaces configures the Lambda function's resource policy to allow * the application's API Gateway to invoke the function.

    The Lambda function * state is checked. If the function is not active, the function configuration is * updated so that Lambda resources are provisioned. If the Lambda state is * Failed, then the route creation fails. For more information, see * the GetFunctionConfiguration's * State response parameter in the Lambda Developer Guide.

    A * check is performed to determine that a Lambda function with the specified ARN * exists. If it does not exist, the health check fails. For public URLs, a * connection is opened to the public endpoint. If the URL is not reachable, the * health check fails.

Environments without a network * bridge

When you create environments without a network bridge (CreateEnvironment:NetworkFabricType * is NONE) and you use your own networking infrastructure, you need * to configure VPC * to VPC connectivity between your network and the application proxy VPC. * Route creation from the application proxy to service endpoints will fail if your * network is not configured to connect to the application proxy VPC. For more * information, see * Create a route in the Refactor Spaces User Guide.

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(&MigrationHubRefactorSpacesClient::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(&MigrationHubRefactorSpacesClient::CreateRoute, request, handler, context); } /** *

Creates an Amazon Web Services Migration Hub Refactor Spaces service. The * account owner of the service is always the environment owner, regardless of * which account in the environment creates the service. Services have either a URL * endpoint in a virtual private cloud (VPC), or a Lambda function endpoint.

*

If an Amazon Web Services resource is launched in a service VPC, * and you want it to be accessible to all of an environment’s services with VPCs * and routes, apply the RefactorSpacesSecurityGroup to the resource. * Alternatively, to add more cross-account constraints, apply your own security * group.

See Also:

AWS * API Reference

*/ virtual Model::CreateServiceOutcome CreateService(const Model::CreateServiceRequest& request) const; /** * A Callable wrapper for CreateService that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateServiceOutcomeCallable CreateServiceCallable(const CreateServiceRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::CreateService, request); } /** * An Async wrapper for CreateService that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateServiceAsync(const CreateServiceRequestT& request, const CreateServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::CreateService, request, handler, context); } /** *

Deletes an Amazon Web Services Migration Hub Refactor Spaces application. * Before you can delete an application, you must first delete any services or * routes within the application.

See Also:

AWS * API Reference

*/ virtual Model::DeleteApplicationOutcome DeleteApplication(const Model::DeleteApplicationRequest& request) const; /** * A Callable wrapper for DeleteApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteApplicationOutcomeCallable DeleteApplicationCallable(const DeleteApplicationRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::DeleteApplication, request); } /** * An Async wrapper for DeleteApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteApplicationAsync(const DeleteApplicationRequestT& request, const DeleteApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::DeleteApplication, request, handler, context); } /** *

Deletes an Amazon Web Services Migration Hub Refactor Spaces environment. * Before you can delete an environment, you must first delete any applications and * services within the environment.

See Also:

AWS * API Reference

*/ virtual Model::DeleteEnvironmentOutcome DeleteEnvironment(const Model::DeleteEnvironmentRequest& request) const; /** * A Callable wrapper for DeleteEnvironment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteEnvironmentOutcomeCallable DeleteEnvironmentCallable(const DeleteEnvironmentRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::DeleteEnvironment, request); } /** * An Async wrapper for DeleteEnvironment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteEnvironmentAsync(const DeleteEnvironmentRequestT& request, const DeleteEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::DeleteEnvironment, request, handler, context); } /** *

Deletes the resource policy set for the environment.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteResourcePolicyOutcome DeleteResourcePolicy(const Model::DeleteResourcePolicyRequest& request) const; /** * A Callable wrapper for DeleteResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteResourcePolicyOutcomeCallable DeleteResourcePolicyCallable(const DeleteResourcePolicyRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::DeleteResourcePolicy, request); } /** * An Async wrapper for DeleteResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteResourcePolicyAsync(const DeleteResourcePolicyRequestT& request, const DeleteResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::DeleteResourcePolicy, request, handler, context); } /** *

Deletes an Amazon Web Services Migration Hub Refactor Spaces * 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(&MigrationHubRefactorSpacesClient::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(&MigrationHubRefactorSpacesClient::DeleteRoute, request, handler, context); } /** *

Deletes an Amazon Web Services Migration Hub Refactor Spaces service. *

See Also:

AWS * API Reference

*/ virtual Model::DeleteServiceOutcome DeleteService(const Model::DeleteServiceRequest& request) const; /** * A Callable wrapper for DeleteService that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteServiceOutcomeCallable DeleteServiceCallable(const DeleteServiceRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::DeleteService, request); } /** * An Async wrapper for DeleteService that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteServiceAsync(const DeleteServiceRequestT& request, const DeleteServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::DeleteService, request, handler, context); } /** *

Gets an Amazon Web Services Migration Hub Refactor Spaces * application.

See Also:

AWS * API Reference

*/ virtual Model::GetApplicationOutcome GetApplication(const Model::GetApplicationRequest& request) const; /** * A Callable wrapper for GetApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetApplicationOutcomeCallable GetApplicationCallable(const GetApplicationRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::GetApplication, request); } /** * An Async wrapper for GetApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetApplicationAsync(const GetApplicationRequestT& request, const GetApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::GetApplication, request, handler, context); } /** *

Gets an Amazon Web Services Migration Hub Refactor Spaces * environment.

See Also:

AWS * API Reference

*/ virtual Model::GetEnvironmentOutcome GetEnvironment(const Model::GetEnvironmentRequest& request) const; /** * A Callable wrapper for GetEnvironment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetEnvironmentOutcomeCallable GetEnvironmentCallable(const GetEnvironmentRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::GetEnvironment, request); } /** * An Async wrapper for GetEnvironment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetEnvironmentAsync(const GetEnvironmentRequestT& request, const GetEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::GetEnvironment, request, handler, context); } /** *

Gets the resource-based permission policy that is set for the given * environment.

See Also:

AWS * API Reference

*/ virtual Model::GetResourcePolicyOutcome GetResourcePolicy(const Model::GetResourcePolicyRequest& request) const; /** * A Callable wrapper for GetResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetResourcePolicyOutcomeCallable GetResourcePolicyCallable(const GetResourcePolicyRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::GetResourcePolicy, request); } /** * An Async wrapper for GetResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetResourcePolicyAsync(const GetResourcePolicyRequestT& request, const GetResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::GetResourcePolicy, request, handler, context); } /** *

Gets an Amazon Web Services Migration Hub Refactor Spaces * route.

See Also:

AWS * API Reference

*/ virtual Model::GetRouteOutcome GetRoute(const Model::GetRouteRequest& request) const; /** * A Callable wrapper for GetRoute that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetRouteOutcomeCallable GetRouteCallable(const GetRouteRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::GetRoute, request); } /** * An Async wrapper for GetRoute that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetRouteAsync(const GetRouteRequestT& request, const GetRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::GetRoute, request, handler, context); } /** *

Gets an Amazon Web Services Migration Hub Refactor Spaces service. *

See Also:

AWS * API Reference

*/ virtual Model::GetServiceOutcome GetService(const Model::GetServiceRequest& request) const; /** * A Callable wrapper for GetService that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetServiceOutcomeCallable GetServiceCallable(const GetServiceRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::GetService, request); } /** * An Async wrapper for GetService that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetServiceAsync(const GetServiceRequestT& request, const GetServiceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::GetService, request, handler, context); } /** *

Lists all the Amazon Web Services Migration Hub Refactor Spaces applications * within an environment.

See Also:

AWS * API Reference

*/ virtual Model::ListApplicationsOutcome ListApplications(const Model::ListApplicationsRequest& request) const; /** * A Callable wrapper for ListApplications that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListApplicationsOutcomeCallable ListApplicationsCallable(const ListApplicationsRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::ListApplications, request); } /** * An Async wrapper for ListApplications that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListApplicationsAsync(const ListApplicationsRequestT& request, const ListApplicationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::ListApplications, request, handler, context); } /** *

Lists all Amazon Web Services Migration Hub Refactor Spaces service virtual * private clouds (VPCs) that are part of the environment.

See * Also:

AWS * API Reference

*/ virtual Model::ListEnvironmentVpcsOutcome ListEnvironmentVpcs(const Model::ListEnvironmentVpcsRequest& request) const; /** * A Callable wrapper for ListEnvironmentVpcs that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListEnvironmentVpcsOutcomeCallable ListEnvironmentVpcsCallable(const ListEnvironmentVpcsRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::ListEnvironmentVpcs, request); } /** * An Async wrapper for ListEnvironmentVpcs that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListEnvironmentVpcsAsync(const ListEnvironmentVpcsRequestT& request, const ListEnvironmentVpcsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::ListEnvironmentVpcs, request, handler, context); } /** *

Lists Amazon Web Services Migration Hub Refactor Spaces environments owned by * a caller account or shared with the caller account.

See Also:

* AWS * API Reference

*/ virtual Model::ListEnvironmentsOutcome ListEnvironments(const Model::ListEnvironmentsRequest& request) const; /** * A Callable wrapper for ListEnvironments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListEnvironmentsOutcomeCallable ListEnvironmentsCallable(const ListEnvironmentsRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::ListEnvironments, request); } /** * An Async wrapper for ListEnvironments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListEnvironmentsAsync(const ListEnvironmentsRequestT& request, const ListEnvironmentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::ListEnvironments, request, handler, context); } /** *

Lists all the Amazon Web Services Migration Hub Refactor Spaces routes within * an application.

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(&MigrationHubRefactorSpacesClient::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(&MigrationHubRefactorSpacesClient::ListRoutes, request, handler, context); } /** *

Lists all the Amazon Web Services Migration Hub Refactor Spaces services * within an application.

See Also:

AWS * API Reference

*/ virtual Model::ListServicesOutcome ListServices(const Model::ListServicesRequest& request) const; /** * A Callable wrapper for ListServices that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListServicesOutcomeCallable ListServicesCallable(const ListServicesRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::ListServices, request); } /** * An Async wrapper for ListServices that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListServicesAsync(const ListServicesRequestT& request, const ListServicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::ListServices, request, handler, context); } /** *

Lists the tags of a resource. The caller account must be the same as the * resource’s OwnerAccountId. Listing tags in other accounts is not * supported.

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(&MigrationHubRefactorSpacesClient::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(&MigrationHubRefactorSpacesClient::ListTagsForResource, request, handler, context); } /** *

Attaches a resource-based permission policy to the Amazon Web Services * Migration Hub Refactor Spaces environment. The policy must contain the same * actions and condition statements as the * arn:aws:ram::aws:permission/AWSRAMDefaultPermissionRefactorSpacesEnvironment * permission in Resource Access Manager. The policy must not contain new lines or * blank lines.

See Also:

AWS * API Reference

*/ virtual Model::PutResourcePolicyOutcome PutResourcePolicy(const Model::PutResourcePolicyRequest& request) const; /** * A Callable wrapper for PutResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutResourcePolicyOutcomeCallable PutResourcePolicyCallable(const PutResourcePolicyRequestT& request) const { return SubmitCallable(&MigrationHubRefactorSpacesClient::PutResourcePolicy, request); } /** * An Async wrapper for PutResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutResourcePolicyAsync(const PutResourcePolicyRequestT& request, const PutResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MigrationHubRefactorSpacesClient::PutResourcePolicy, request, handler, context); } /** *

Removes the tags of a given resource. Tags are metadata which can be used to * manage a resource. To tag a resource, the caller account must be the same as the * resource’s OwnerAccountId. Tagging resources in other accounts is * not supported.

Amazon Web Services Migration Hub Refactor Spaces * does not propagate tags to orchestrated resources, such as an environment’s * transit gateway.

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(&MigrationHubRefactorSpacesClient::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(&MigrationHubRefactorSpacesClient::TagResource, request, handler, context); } /** *

Adds to or modifies the tags of the given resource. Tags are metadata which * can be used to manage a resource. To untag a resource, the caller account must * be the same as the resource’s OwnerAccountId. Untagging resources * across accounts is not supported.

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(&MigrationHubRefactorSpacesClient::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(&MigrationHubRefactorSpacesClient::UntagResource, request, handler, context); } /** *

Updates an Amazon Web Services Migration Hub Refactor Spaces route. *

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(&MigrationHubRefactorSpacesClient::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(&MigrationHubRefactorSpacesClient::UpdateRoute, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const MigrationHubRefactorSpacesClientConfiguration& clientConfiguration); MigrationHubRefactorSpacesClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace MigrationHubRefactorSpaces } // namespace Aws