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

Amazon EMR on EKS provides a deployment option for Amazon EMR that allows you * to run open-source big data frameworks on Amazon Elastic Kubernetes Service * (Amazon EKS). With this deployment option, you can focus on running analytics * workloads while Amazon EMR on EKS builds, configures, and manages containers for * open-source applications. For more information about Amazon EMR on EKS concepts * and tasks, see What * is shared id="EMR-EKS"/>.

Amazon EMR containers is the API * name for Amazon EMR on EKS. The emr-containers prefix is used in * the following scenarios:

  • It is the prefix in the CLI commands * for Amazon EMR on EKS. For example, aws emr-containers * start-job-run.

  • It is the prefix before IAM policy * actions for Amazon EMR on EKS. For example, "Action": [ * "emr-containers:StartJobRun"]. For more information, see Policy * actions for Amazon EMR on EKS.

  • It is the prefix used in * Amazon EMR on EKS service endpoints. For example, * emr-containers.us-east-2.amazonaws.com. For more information, see * Amazon * EMR on EKSService Endpoints.

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

Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark * script, or SparkSQL query, that you submit to Amazon EMR on EKS.

See * Also:

AWS * API Reference

*/ virtual Model::CancelJobRunOutcome CancelJobRun(const Model::CancelJobRunRequest& request) const; /** * A Callable wrapper for CancelJobRun that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CancelJobRunOutcomeCallable CancelJobRunCallable(const CancelJobRunRequestT& request) const { return SubmitCallable(&EMRContainersClient::CancelJobRun, request); } /** * An Async wrapper for CancelJobRun that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CancelJobRunAsync(const CancelJobRunRequestT& request, const CancelJobRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::CancelJobRun, request, handler, context); } /** *

Creates a job template. Job template stores values of StartJobRun API request * in a template and can be used to start a job run. Job template allows two use * cases: avoid repeating recurring StartJobRun API request values, enforcing * certain values in StartJobRun API request.

See Also:

AWS * API Reference

*/ virtual Model::CreateJobTemplateOutcome CreateJobTemplate(const Model::CreateJobTemplateRequest& request) const; /** * A Callable wrapper for CreateJobTemplate that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateJobTemplateOutcomeCallable CreateJobTemplateCallable(const CreateJobTemplateRequestT& request) const { return SubmitCallable(&EMRContainersClient::CreateJobTemplate, request); } /** * An Async wrapper for CreateJobTemplate that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateJobTemplateAsync(const CreateJobTemplateRequestT& request, const CreateJobTemplateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::CreateJobTemplate, request, handler, context); } /** *

Creates a managed endpoint. A managed endpoint is a gateway that connects * Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate * with your virtual cluster.

See Also:

AWS * API Reference

*/ virtual Model::CreateManagedEndpointOutcome CreateManagedEndpoint(const Model::CreateManagedEndpointRequest& request) const; /** * A Callable wrapper for CreateManagedEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateManagedEndpointOutcomeCallable CreateManagedEndpointCallable(const CreateManagedEndpointRequestT& request) const { return SubmitCallable(&EMRContainersClient::CreateManagedEndpoint, request); } /** * An Async wrapper for CreateManagedEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateManagedEndpointAsync(const CreateManagedEndpointRequestT& request, const CreateManagedEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::CreateManagedEndpoint, request, handler, context); } /** *

Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR * on EKS. You can create, describe, list and delete virtual clusters. They do not * consume any additional resource in your system. A single virtual cluster maps to * a single Kubernetes namespace. Given this relationship, you can model virtual * clusters the same way you model Kubernetes namespaces to meet your * requirements.

See Also:

AWS * API Reference

*/ virtual Model::CreateVirtualClusterOutcome CreateVirtualCluster(const Model::CreateVirtualClusterRequest& request) const; /** * A Callable wrapper for CreateVirtualCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateVirtualClusterOutcomeCallable CreateVirtualClusterCallable(const CreateVirtualClusterRequestT& request) const { return SubmitCallable(&EMRContainersClient::CreateVirtualCluster, request); } /** * An Async wrapper for CreateVirtualCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateVirtualClusterAsync(const CreateVirtualClusterRequestT& request, const CreateVirtualClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::CreateVirtualCluster, request, handler, context); } /** *

Deletes a job template. Job template stores values of StartJobRun API request * in a template and can be used to start a job run. Job template allows two use * cases: avoid repeating recurring StartJobRun API request values, enforcing * certain values in StartJobRun API request.

See Also:

AWS * API Reference

*/ virtual Model::DeleteJobTemplateOutcome DeleteJobTemplate(const Model::DeleteJobTemplateRequest& request) const; /** * A Callable wrapper for DeleteJobTemplate that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteJobTemplateOutcomeCallable DeleteJobTemplateCallable(const DeleteJobTemplateRequestT& request) const { return SubmitCallable(&EMRContainersClient::DeleteJobTemplate, request); } /** * An Async wrapper for DeleteJobTemplate that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteJobTemplateAsync(const DeleteJobTemplateRequestT& request, const DeleteJobTemplateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::DeleteJobTemplate, request, handler, context); } /** *

Deletes a managed endpoint. A managed endpoint is a gateway that connects * Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate * with your virtual cluster.

See Also:

AWS * API Reference

*/ virtual Model::DeleteManagedEndpointOutcome DeleteManagedEndpoint(const Model::DeleteManagedEndpointRequest& request) const; /** * A Callable wrapper for DeleteManagedEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteManagedEndpointOutcomeCallable DeleteManagedEndpointCallable(const DeleteManagedEndpointRequestT& request) const { return SubmitCallable(&EMRContainersClient::DeleteManagedEndpoint, request); } /** * An Async wrapper for DeleteManagedEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteManagedEndpointAsync(const DeleteManagedEndpointRequestT& request, const DeleteManagedEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::DeleteManagedEndpoint, request, handler, context); } /** *

Deletes a virtual cluster. Virtual cluster is a managed entity on Amazon EMR * on EKS. You can create, describe, list and delete virtual clusters. They do not * consume any additional resource in your system. A single virtual cluster maps to * a single Kubernetes namespace. Given this relationship, you can model virtual * clusters the same way you model Kubernetes namespaces to meet your * requirements.

See Also:

AWS * API Reference

*/ virtual Model::DeleteVirtualClusterOutcome DeleteVirtualCluster(const Model::DeleteVirtualClusterRequest& request) const; /** * A Callable wrapper for DeleteVirtualCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteVirtualClusterOutcomeCallable DeleteVirtualClusterCallable(const DeleteVirtualClusterRequestT& request) const { return SubmitCallable(&EMRContainersClient::DeleteVirtualCluster, request); } /** * An Async wrapper for DeleteVirtualCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteVirtualClusterAsync(const DeleteVirtualClusterRequestT& request, const DeleteVirtualClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::DeleteVirtualCluster, request, handler, context); } /** *

Displays detailed information about a job run. A job run is a unit of work, * such as a Spark jar, PySpark script, or SparkSQL query, that you submit to * Amazon EMR on EKS.

See Also:

AWS * API Reference

*/ virtual Model::DescribeJobRunOutcome DescribeJobRun(const Model::DescribeJobRunRequest& request) const; /** * A Callable wrapper for DescribeJobRun that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeJobRunOutcomeCallable DescribeJobRunCallable(const DescribeJobRunRequestT& request) const { return SubmitCallable(&EMRContainersClient::DescribeJobRun, request); } /** * An Async wrapper for DescribeJobRun that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeJobRunAsync(const DescribeJobRunRequestT& request, const DescribeJobRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::DescribeJobRun, request, handler, context); } /** *

Displays detailed information about a specified job template. Job template * stores values of StartJobRun API request in a template and can be used to start * a job run. Job template allows two use cases: avoid repeating recurring * StartJobRun API request values, enforcing certain values in StartJobRun API * request.

See Also:

AWS * API Reference

*/ virtual Model::DescribeJobTemplateOutcome DescribeJobTemplate(const Model::DescribeJobTemplateRequest& request) const; /** * A Callable wrapper for DescribeJobTemplate that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeJobTemplateOutcomeCallable DescribeJobTemplateCallable(const DescribeJobTemplateRequestT& request) const { return SubmitCallable(&EMRContainersClient::DescribeJobTemplate, request); } /** * An Async wrapper for DescribeJobTemplate that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeJobTemplateAsync(const DescribeJobTemplateRequestT& request, const DescribeJobTemplateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::DescribeJobTemplate, request, handler, context); } /** *

Displays detailed information about a managed endpoint. A managed endpoint is * a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon * EMR Studio can communicate with your virtual cluster.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeManagedEndpointOutcome DescribeManagedEndpoint(const Model::DescribeManagedEndpointRequest& request) const; /** * A Callable wrapper for DescribeManagedEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeManagedEndpointOutcomeCallable DescribeManagedEndpointCallable(const DescribeManagedEndpointRequestT& request) const { return SubmitCallable(&EMRContainersClient::DescribeManagedEndpoint, request); } /** * An Async wrapper for DescribeManagedEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeManagedEndpointAsync(const DescribeManagedEndpointRequestT& request, const DescribeManagedEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::DescribeManagedEndpoint, request, handler, context); } /** *

Displays detailed information about a specified virtual cluster. Virtual * cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list * and delete virtual clusters. They do not consume any additional resource in your * system. A single virtual cluster maps to a single Kubernetes namespace. Given * this relationship, you can model virtual clusters the same way you model * Kubernetes namespaces to meet your requirements.

See Also:

AWS * API Reference

*/ virtual Model::DescribeVirtualClusterOutcome DescribeVirtualCluster(const Model::DescribeVirtualClusterRequest& request) const; /** * A Callable wrapper for DescribeVirtualCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeVirtualClusterOutcomeCallable DescribeVirtualClusterCallable(const DescribeVirtualClusterRequestT& request) const { return SubmitCallable(&EMRContainersClient::DescribeVirtualCluster, request); } /** * An Async wrapper for DescribeVirtualCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeVirtualClusterAsync(const DescribeVirtualClusterRequestT& request, const DescribeVirtualClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::DescribeVirtualCluster, request, handler, context); } /** *

Generate a session token to connect to a managed endpoint.

See * Also:

AWS * API Reference

*/ virtual Model::GetManagedEndpointSessionCredentialsOutcome GetManagedEndpointSessionCredentials(const Model::GetManagedEndpointSessionCredentialsRequest& request) const; /** * A Callable wrapper for GetManagedEndpointSessionCredentials that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetManagedEndpointSessionCredentialsOutcomeCallable GetManagedEndpointSessionCredentialsCallable(const GetManagedEndpointSessionCredentialsRequestT& request) const { return SubmitCallable(&EMRContainersClient::GetManagedEndpointSessionCredentials, request); } /** * An Async wrapper for GetManagedEndpointSessionCredentials that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetManagedEndpointSessionCredentialsAsync(const GetManagedEndpointSessionCredentialsRequestT& request, const GetManagedEndpointSessionCredentialsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::GetManagedEndpointSessionCredentials, request, handler, context); } /** *

Lists job runs based on a set of parameters. A job run is a unit of work, * such as a Spark jar, PySpark script, or SparkSQL query, that you submit to * Amazon EMR on EKS.

See Also:

AWS * API Reference

*/ virtual Model::ListJobRunsOutcome ListJobRuns(const Model::ListJobRunsRequest& request) const; /** * A Callable wrapper for ListJobRuns that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListJobRunsOutcomeCallable ListJobRunsCallable(const ListJobRunsRequestT& request) const { return SubmitCallable(&EMRContainersClient::ListJobRuns, request); } /** * An Async wrapper for ListJobRuns that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListJobRunsAsync(const ListJobRunsRequestT& request, const ListJobRunsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::ListJobRuns, request, handler, context); } /** *

Lists job templates based on a set of parameters. Job template stores values * of StartJobRun API request in a template and can be used to start a job run. Job * template allows two use cases: avoid repeating recurring StartJobRun API request * values, enforcing certain values in StartJobRun API request.

See * Also:

AWS * API Reference

*/ virtual Model::ListJobTemplatesOutcome ListJobTemplates(const Model::ListJobTemplatesRequest& request) const; /** * A Callable wrapper for ListJobTemplates that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListJobTemplatesOutcomeCallable ListJobTemplatesCallable(const ListJobTemplatesRequestT& request) const { return SubmitCallable(&EMRContainersClient::ListJobTemplates, request); } /** * An Async wrapper for ListJobTemplates that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListJobTemplatesAsync(const ListJobTemplatesRequestT& request, const ListJobTemplatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::ListJobTemplates, request, handler, context); } /** *

Lists managed endpoints based on a set of parameters. A managed endpoint is a * gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR * Studio can communicate with your virtual cluster.

See Also:

AWS * API Reference

*/ virtual Model::ListManagedEndpointsOutcome ListManagedEndpoints(const Model::ListManagedEndpointsRequest& request) const; /** * A Callable wrapper for ListManagedEndpoints that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListManagedEndpointsOutcomeCallable ListManagedEndpointsCallable(const ListManagedEndpointsRequestT& request) const { return SubmitCallable(&EMRContainersClient::ListManagedEndpoints, request); } /** * An Async wrapper for ListManagedEndpoints that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListManagedEndpointsAsync(const ListManagedEndpointsRequestT& request, const ListManagedEndpointsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::ListManagedEndpoints, request, handler, context); } /** *

Lists the tags assigned to the resources.

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

Lists information about the specified virtual cluster. Virtual cluster is a * managed entity on Amazon EMR on EKS. You can create, describe, list and delete * virtual clusters. They do not consume any additional resource in your system. A * single virtual cluster maps to a single Kubernetes namespace. Given this * relationship, you can model virtual clusters the same way you model Kubernetes * namespaces to meet your requirements.

See Also:

AWS * API Reference

*/ virtual Model::ListVirtualClustersOutcome ListVirtualClusters(const Model::ListVirtualClustersRequest& request) const; /** * A Callable wrapper for ListVirtualClusters that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListVirtualClustersOutcomeCallable ListVirtualClustersCallable(const ListVirtualClustersRequestT& request) const { return SubmitCallable(&EMRContainersClient::ListVirtualClusters, request); } /** * An Async wrapper for ListVirtualClusters that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListVirtualClustersAsync(const ListVirtualClustersRequestT& request, const ListVirtualClustersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::ListVirtualClusters, request, handler, context); } /** *

Starts a job run. A job run is a unit of work, such as a Spark jar, PySpark * script, or SparkSQL query, that you submit to Amazon EMR on EKS.

See * Also:

AWS * API Reference

*/ virtual Model::StartJobRunOutcome StartJobRun(const Model::StartJobRunRequest& request) const; /** * A Callable wrapper for StartJobRun that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartJobRunOutcomeCallable StartJobRunCallable(const StartJobRunRequestT& request) const { return SubmitCallable(&EMRContainersClient::StartJobRun, request); } /** * An Async wrapper for StartJobRun that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartJobRunAsync(const StartJobRunRequestT& request, const StartJobRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&EMRContainersClient::StartJobRun, request, handler, context); } /** *

Assigns tags to resources. A tag is a label that you assign to an Amazon Web * Services resource. Each tag consists of a key and an optional value, both of * which you define. Tags enable you to categorize your Amazon Web Services * resources by attributes such as purpose, owner, or environment. When you have * many resources of the same type, you can quickly identify a specific resource * based on the tags you've assigned to it. For example, you can define a set of * tags for your Amazon EMR on EKS clusters to help you track each cluster's owner * and stack level. We recommend that you devise a consistent set of tag keys for * each resource type. You can then search and filter the resources based on the * tags that you add.

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

Removes tags from resources.

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