/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace EMR { namespace Model { class AddInstanceFleetRequest; class AddInstanceGroupsRequest; class AddJobFlowStepsRequest; class AddTagsRequest; class CancelStepsRequest; class CreateSecurityConfigurationRequest; class DeleteSecurityConfigurationRequest; class DescribeClusterRequest; class DescribeSecurityConfigurationRequest; class DescribeStepRequest; class GetBlockPublicAccessConfigurationRequest; class GetManagedScalingPolicyRequest; class ListBootstrapActionsRequest; class ListClustersRequest; class ListInstanceFleetsRequest; class ListInstanceGroupsRequest; class ListInstancesRequest; class ListSecurityConfigurationsRequest; class ListStepsRequest; class ModifyClusterRequest; class ModifyInstanceFleetRequest; class ModifyInstanceGroupsRequest; class PutAutoScalingPolicyRequest; class PutBlockPublicAccessConfigurationRequest; class PutManagedScalingPolicyRequest; class RemoveAutoScalingPolicyRequest; class RemoveManagedScalingPolicyRequest; class RemoveTagsRequest; class RunJobFlowRequest; class SetTerminationProtectionRequest; class SetVisibleToAllUsersRequest; class TerminateJobFlowsRequest; typedef Aws::Utils::Outcome AddInstanceFleetOutcome; typedef Aws::Utils::Outcome AddInstanceGroupsOutcome; typedef Aws::Utils::Outcome AddJobFlowStepsOutcome; typedef Aws::Utils::Outcome AddTagsOutcome; typedef Aws::Utils::Outcome CancelStepsOutcome; typedef Aws::Utils::Outcome CreateSecurityConfigurationOutcome; typedef Aws::Utils::Outcome DeleteSecurityConfigurationOutcome; typedef Aws::Utils::Outcome DescribeClusterOutcome; typedef Aws::Utils::Outcome DescribeSecurityConfigurationOutcome; typedef Aws::Utils::Outcome DescribeStepOutcome; typedef Aws::Utils::Outcome GetBlockPublicAccessConfigurationOutcome; typedef Aws::Utils::Outcome GetManagedScalingPolicyOutcome; typedef Aws::Utils::Outcome ListBootstrapActionsOutcome; typedef Aws::Utils::Outcome ListClustersOutcome; typedef Aws::Utils::Outcome ListInstanceFleetsOutcome; typedef Aws::Utils::Outcome ListInstanceGroupsOutcome; typedef Aws::Utils::Outcome ListInstancesOutcome; typedef Aws::Utils::Outcome ListSecurityConfigurationsOutcome; typedef Aws::Utils::Outcome ListStepsOutcome; typedef Aws::Utils::Outcome ModifyClusterOutcome; typedef Aws::Utils::Outcome ModifyInstanceFleetOutcome; typedef Aws::Utils::Outcome ModifyInstanceGroupsOutcome; typedef Aws::Utils::Outcome PutAutoScalingPolicyOutcome; typedef Aws::Utils::Outcome PutBlockPublicAccessConfigurationOutcome; typedef Aws::Utils::Outcome PutManagedScalingPolicyOutcome; typedef Aws::Utils::Outcome RemoveAutoScalingPolicyOutcome; typedef Aws::Utils::Outcome RemoveManagedScalingPolicyOutcome; typedef Aws::Utils::Outcome RemoveTagsOutcome; typedef Aws::Utils::Outcome RunJobFlowOutcome; typedef Aws::Utils::Outcome SetTerminationProtectionOutcome; typedef Aws::Utils::Outcome SetVisibleToAllUsersOutcome; typedef Aws::Utils::Outcome TerminateJobFlowsOutcome; typedef std::future AddInstanceFleetOutcomeCallable; typedef std::future AddInstanceGroupsOutcomeCallable; typedef std::future AddJobFlowStepsOutcomeCallable; typedef std::future AddTagsOutcomeCallable; typedef std::future CancelStepsOutcomeCallable; typedef std::future CreateSecurityConfigurationOutcomeCallable; typedef std::future DeleteSecurityConfigurationOutcomeCallable; typedef std::future DescribeClusterOutcomeCallable; typedef std::future DescribeSecurityConfigurationOutcomeCallable; typedef std::future DescribeStepOutcomeCallable; typedef std::future GetBlockPublicAccessConfigurationOutcomeCallable; typedef std::future GetManagedScalingPolicyOutcomeCallable; typedef std::future ListBootstrapActionsOutcomeCallable; typedef std::future ListClustersOutcomeCallable; typedef std::future ListInstanceFleetsOutcomeCallable; typedef std::future ListInstanceGroupsOutcomeCallable; typedef std::future ListInstancesOutcomeCallable; typedef std::future ListSecurityConfigurationsOutcomeCallable; typedef std::future ListStepsOutcomeCallable; typedef std::future ModifyClusterOutcomeCallable; typedef std::future ModifyInstanceFleetOutcomeCallable; typedef std::future ModifyInstanceGroupsOutcomeCallable; typedef std::future PutAutoScalingPolicyOutcomeCallable; typedef std::future PutBlockPublicAccessConfigurationOutcomeCallable; typedef std::future PutManagedScalingPolicyOutcomeCallable; typedef std::future RemoveAutoScalingPolicyOutcomeCallable; typedef std::future RemoveManagedScalingPolicyOutcomeCallable; typedef std::future RemoveTagsOutcomeCallable; typedef std::future RunJobFlowOutcomeCallable; typedef std::future SetTerminationProtectionOutcomeCallable; typedef std::future SetVisibleToAllUsersOutcomeCallable; typedef std::future TerminateJobFlowsOutcomeCallable; } // namespace Model class EMRClient; typedef std::function&) > AddInstanceFleetResponseReceivedHandler; typedef std::function&) > AddInstanceGroupsResponseReceivedHandler; typedef std::function&) > AddJobFlowStepsResponseReceivedHandler; typedef std::function&) > AddTagsResponseReceivedHandler; typedef std::function&) > CancelStepsResponseReceivedHandler; typedef std::function&) > CreateSecurityConfigurationResponseReceivedHandler; typedef std::function&) > DeleteSecurityConfigurationResponseReceivedHandler; typedef std::function&) > DescribeClusterResponseReceivedHandler; typedef std::function&) > DescribeSecurityConfigurationResponseReceivedHandler; typedef std::function&) > DescribeStepResponseReceivedHandler; typedef std::function&) > GetBlockPublicAccessConfigurationResponseReceivedHandler; typedef std::function&) > GetManagedScalingPolicyResponseReceivedHandler; typedef std::function&) > ListBootstrapActionsResponseReceivedHandler; typedef std::function&) > ListClustersResponseReceivedHandler; typedef std::function&) > ListInstanceFleetsResponseReceivedHandler; typedef std::function&) > ListInstanceGroupsResponseReceivedHandler; typedef std::function&) > ListInstancesResponseReceivedHandler; typedef std::function&) > ListSecurityConfigurationsResponseReceivedHandler; typedef std::function&) > ListStepsResponseReceivedHandler; typedef std::function&) > ModifyClusterResponseReceivedHandler; typedef std::function&) > ModifyInstanceFleetResponseReceivedHandler; typedef std::function&) > ModifyInstanceGroupsResponseReceivedHandler; typedef std::function&) > PutAutoScalingPolicyResponseReceivedHandler; typedef std::function&) > PutBlockPublicAccessConfigurationResponseReceivedHandler; typedef std::function&) > PutManagedScalingPolicyResponseReceivedHandler; typedef std::function&) > RemoveAutoScalingPolicyResponseReceivedHandler; typedef std::function&) > RemoveManagedScalingPolicyResponseReceivedHandler; typedef std::function&) > RemoveTagsResponseReceivedHandler; typedef std::function&) > RunJobFlowResponseReceivedHandler; typedef std::function&) > SetTerminationProtectionResponseReceivedHandler; typedef std::function&) > SetVisibleToAllUsersResponseReceivedHandler; typedef std::function&) > TerminateJobFlowsResponseReceivedHandler; /** *

Amazon EMR is a web service that makes it easy to process large amounts of * data efficiently. Amazon EMR uses Hadoop processing combined with several AWS * products to do tasks such as web indexing, data mining, log file analysis, * machine learning, scientific simulation, and data warehousing.

*/ class AWS_EMR_API EMRClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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. */ EMRClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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. */ EMRClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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 */ EMRClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~EMRClient(); /** *

Adds an instance fleet to a running cluster.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x.

See Also:

AWS * API Reference

*/ virtual Model::AddInstanceFleetOutcome AddInstanceFleet(const Model::AddInstanceFleetRequest& request) const; /** *

Adds an instance fleet to a running cluster.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddInstanceFleetOutcomeCallable AddInstanceFleetCallable(const Model::AddInstanceFleetRequest& request) const; /** *

Adds an instance fleet to a running cluster.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddInstanceFleetAsync(const Model::AddInstanceFleetRequest& request, const AddInstanceFleetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds one or more instance groups to a running cluster.

See * Also:

AWS * API Reference

*/ virtual Model::AddInstanceGroupsOutcome AddInstanceGroups(const Model::AddInstanceGroupsRequest& request) const; /** *

Adds one or more instance groups to a running cluster.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddInstanceGroupsOutcomeCallable AddInstanceGroupsCallable(const Model::AddInstanceGroupsRequest& request) const; /** *

Adds one or more instance groups to a running cluster.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddInstanceGroupsAsync(const Model::AddInstanceGroupsRequest& request, const AddInstanceGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps * are allowed in each job flow.

If your cluster is long-running (such as a * Hive data warehouse) or complex, you may require more than 256 steps to process * your data. You can bypass the 256-step limitation in various ways, including * using SSH to connect to the master node and submitting queries directly to the * software running on the master node, such as Hive and Hadoop. For more * information on how to do this, see Add * More than 256 Steps to a Cluster in the Amazon EMR Management * Guide.

A step specifies the location of a JAR file stored either on * the master node of the cluster or in Amazon S3. Each step is performed by the * main function of the main class of the JAR file. The main class can be specified * either in the manifest of the JAR or by using the MainFunction parameter of the * step.

Amazon EMR executes each step in the order listed. For a step to be * considered complete, the main function must exit with a zero exit code and all * Hadoop jobs started while the step was running must have completed and run * successfully.

You can only add steps to a cluster that is in one of the * following states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.

See * Also:

AWS * API Reference

*/ virtual Model::AddJobFlowStepsOutcome AddJobFlowSteps(const Model::AddJobFlowStepsRequest& request) const; /** *

AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps * are allowed in each job flow.

If your cluster is long-running (such as a * Hive data warehouse) or complex, you may require more than 256 steps to process * your data. You can bypass the 256-step limitation in various ways, including * using SSH to connect to the master node and submitting queries directly to the * software running on the master node, such as Hive and Hadoop. For more * information on how to do this, see Add * More than 256 Steps to a Cluster in the Amazon EMR Management * Guide.

A step specifies the location of a JAR file stored either on * the master node of the cluster or in Amazon S3. Each step is performed by the * main function of the main class of the JAR file. The main class can be specified * either in the manifest of the JAR or by using the MainFunction parameter of the * step.

Amazon EMR executes each step in the order listed. For a step to be * considered complete, the main function must exit with a zero exit code and all * Hadoop jobs started while the step was running must have completed and run * successfully.

You can only add steps to a cluster that is in one of the * following states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddJobFlowStepsOutcomeCallable AddJobFlowStepsCallable(const Model::AddJobFlowStepsRequest& request) const; /** *

AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps * are allowed in each job flow.

If your cluster is long-running (such as a * Hive data warehouse) or complex, you may require more than 256 steps to process * your data. You can bypass the 256-step limitation in various ways, including * using SSH to connect to the master node and submitting queries directly to the * software running on the master node, such as Hive and Hadoop. For more * information on how to do this, see Add * More than 256 Steps to a Cluster in the Amazon EMR Management * Guide.

A step specifies the location of a JAR file stored either on * the master node of the cluster or in Amazon S3. Each step is performed by the * main function of the main class of the JAR file. The main class can be specified * either in the manifest of the JAR or by using the MainFunction parameter of the * step.

Amazon EMR executes each step in the order listed. For a step to be * considered complete, the main function must exit with a zero exit code and all * Hadoop jobs started while the step was running must have completed and run * successfully.

You can only add steps to a cluster that is in one of the * following states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddJobFlowStepsAsync(const Model::AddJobFlowStepsRequest& request, const AddJobFlowStepsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds tags to an Amazon EMR resource. Tags make it easier to associate * clusters in various ways, such as grouping clusters to track your Amazon EMR * resource allocation costs. For more information, see Tag * Clusters.

See Also:

AWS * API Reference

*/ virtual Model::AddTagsOutcome AddTags(const Model::AddTagsRequest& request) const; /** *

Adds tags to an Amazon EMR resource. Tags make it easier to associate * clusters in various ways, such as grouping clusters to track your Amazon EMR * resource allocation costs. For more information, see Tag * Clusters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddTagsOutcomeCallable AddTagsCallable(const Model::AddTagsRequest& request) const; /** *

Adds tags to an Amazon EMR resource. Tags make it easier to associate * clusters in various ways, such as grouping clusters to track your Amazon EMR * resource allocation costs. For more information, see Tag * Clusters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddTagsAsync(const Model::AddTagsRequest& request, const AddTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Cancels a pending step or steps in a running cluster. Available only in * Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 * steps are allowed in each CancelSteps request. CancelSteps is idempotent but * asynchronous; it does not guarantee a step will be canceled, even if the request * is successfully submitted. You can only cancel steps that are in a * PENDING state.

See Also:

AWS * API Reference

*/ virtual Model::CancelStepsOutcome CancelSteps(const Model::CancelStepsRequest& request) const; /** *

Cancels a pending step or steps in a running cluster. Available only in * Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 * steps are allowed in each CancelSteps request. CancelSteps is idempotent but * asynchronous; it does not guarantee a step will be canceled, even if the request * is successfully submitted. You can only cancel steps that are in a * PENDING state.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CancelStepsOutcomeCallable CancelStepsCallable(const Model::CancelStepsRequest& request) const; /** *

Cancels a pending step or steps in a running cluster. Available only in * Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 * steps are allowed in each CancelSteps request. CancelSteps is idempotent but * asynchronous; it does not guarantee a step will be canceled, even if the request * is successfully submitted. You can only cancel steps that are in a * PENDING state.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CancelStepsAsync(const Model::CancelStepsRequest& request, const CancelStepsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a security configuration, which is stored in the service and can be * specified when a cluster is created.

See Also:

AWS * API Reference

*/ virtual Model::CreateSecurityConfigurationOutcome CreateSecurityConfiguration(const Model::CreateSecurityConfigurationRequest& request) const; /** *

Creates a security configuration, which is stored in the service and can be * specified when a cluster is created.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateSecurityConfigurationOutcomeCallable CreateSecurityConfigurationCallable(const Model::CreateSecurityConfigurationRequest& request) const; /** *

Creates a security configuration, which is stored in the service and can be * specified when a cluster is created.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateSecurityConfigurationAsync(const Model::CreateSecurityConfigurationRequest& request, const CreateSecurityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a security configuration.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSecurityConfigurationOutcome DeleteSecurityConfiguration(const Model::DeleteSecurityConfigurationRequest& request) const; /** *

Deletes a security configuration.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteSecurityConfigurationOutcomeCallable DeleteSecurityConfigurationCallable(const Model::DeleteSecurityConfigurationRequest& request) const; /** *

Deletes a security configuration.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteSecurityConfigurationAsync(const Model::DeleteSecurityConfigurationRequest& request, const DeleteSecurityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides cluster-level details including status, hardware and software * configuration, VPC settings, and so on.

See Also:

AWS * API Reference

*/ virtual Model::DescribeClusterOutcome DescribeCluster(const Model::DescribeClusterRequest& request) const; /** *

Provides cluster-level details including status, hardware and software * configuration, VPC settings, and so on.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeClusterOutcomeCallable DescribeClusterCallable(const Model::DescribeClusterRequest& request) const; /** *

Provides cluster-level details including status, hardware and software * configuration, VPC settings, and so on.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeClusterAsync(const Model::DescribeClusterRequest& request, const DescribeClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides the details of a security configuration by returning the * configuration JSON.

See Also:

AWS * API Reference

*/ virtual Model::DescribeSecurityConfigurationOutcome DescribeSecurityConfiguration(const Model::DescribeSecurityConfigurationRequest& request) const; /** *

Provides the details of a security configuration by returning the * configuration JSON.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeSecurityConfigurationOutcomeCallable DescribeSecurityConfigurationCallable(const Model::DescribeSecurityConfigurationRequest& request) const; /** *

Provides the details of a security configuration by returning the * configuration JSON.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeSecurityConfigurationAsync(const Model::DescribeSecurityConfigurationRequest& request, const DescribeSecurityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides more detail about the cluster step.

See Also:

AWS * API Reference

*/ virtual Model::DescribeStepOutcome DescribeStep(const Model::DescribeStepRequest& request) const; /** *

Provides more detail about the cluster step.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeStepOutcomeCallable DescribeStepCallable(const Model::DescribeStepRequest& request) const; /** *

Provides more detail about the cluster step.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeStepAsync(const Model::DescribeStepRequest& request, const DescribeStepResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the Amazon EMR block public access configuration for your AWS account * in the current Region. For more information see Configure * Block Public Access for Amazon EMR in the Amazon EMR Management * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetBlockPublicAccessConfigurationOutcome GetBlockPublicAccessConfiguration(const Model::GetBlockPublicAccessConfigurationRequest& request) const; /** *

Returns the Amazon EMR block public access configuration for your AWS account * in the current Region. For more information see Configure * Block Public Access for Amazon EMR in the Amazon EMR Management * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetBlockPublicAccessConfigurationOutcomeCallable GetBlockPublicAccessConfigurationCallable(const Model::GetBlockPublicAccessConfigurationRequest& request) const; /** *

Returns the Amazon EMR block public access configuration for your AWS account * in the current Region. For more information see Configure * Block Public Access for Amazon EMR in the Amazon EMR Management * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetBlockPublicAccessConfigurationAsync(const Model::GetBlockPublicAccessConfigurationRequest& request, const GetBlockPublicAccessConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Fetches the attached managed scaling policy for an Amazon EMR cluster. *

See Also:

AWS * API Reference

*/ virtual Model::GetManagedScalingPolicyOutcome GetManagedScalingPolicy(const Model::GetManagedScalingPolicyRequest& request) const; /** *

Fetches the attached managed scaling policy for an Amazon EMR cluster. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetManagedScalingPolicyOutcomeCallable GetManagedScalingPolicyCallable(const Model::GetManagedScalingPolicyRequest& request) const; /** *

Fetches the attached managed scaling policy for an Amazon EMR cluster. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetManagedScalingPolicyAsync(const Model::GetManagedScalingPolicyRequest& request, const GetManagedScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides information about the bootstrap actions associated with a * cluster.

See Also:

AWS * API Reference

*/ virtual Model::ListBootstrapActionsOutcome ListBootstrapActions(const Model::ListBootstrapActionsRequest& request) const; /** *

Provides information about the bootstrap actions associated with a * cluster.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListBootstrapActionsOutcomeCallable ListBootstrapActionsCallable(const Model::ListBootstrapActionsRequest& request) const; /** *

Provides information about the bootstrap actions associated with a * cluster.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListBootstrapActionsAsync(const Model::ListBootstrapActionsRequest& request, const ListBootstrapActionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides the status of all clusters visible to this AWS account. Allows you * to filter the list of clusters based on certain criteria; for example, filtering * by cluster creation date and time or by status. This call returns a maximum of * 50 clusters per call, but returns a marker to track the paging of the cluster * list across multiple ListClusters calls.

See Also:

AWS * API Reference

*/ virtual Model::ListClustersOutcome ListClusters(const Model::ListClustersRequest& request) const; /** *

Provides the status of all clusters visible to this AWS account. Allows you * to filter the list of clusters based on certain criteria; for example, filtering * by cluster creation date and time or by status. This call returns a maximum of * 50 clusters per call, but returns a marker to track the paging of the cluster * list across multiple ListClusters calls.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListClustersOutcomeCallable ListClustersCallable(const Model::ListClustersRequest& request) const; /** *

Provides the status of all clusters visible to this AWS account. Allows you * to filter the list of clusters based on certain criteria; for example, filtering * by cluster creation date and time or by status. This call returns a maximum of * 50 clusters per call, but returns a marker to track the paging of the cluster * list across multiple ListClusters calls.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListClustersAsync(const Model::ListClustersRequest& request, const ListClustersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all available details about the instance fleets in a cluster.

*

The instance fleet configuration is available only in Amazon EMR * versions 4.8.0 and later, excluding 5.0.x versions.

See * Also:

AWS * API Reference

*/ virtual Model::ListInstanceFleetsOutcome ListInstanceFleets(const Model::ListInstanceFleetsRequest& request) const; /** *

Lists all available details about the instance fleets in a cluster.

*

The instance fleet configuration is available only in Amazon EMR * versions 4.8.0 and later, excluding 5.0.x versions.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListInstanceFleetsOutcomeCallable ListInstanceFleetsCallable(const Model::ListInstanceFleetsRequest& request) const; /** *

Lists all available details about the instance fleets in a cluster.

*

The instance fleet configuration is available only in Amazon EMR * versions 4.8.0 and later, excluding 5.0.x versions.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListInstanceFleetsAsync(const Model::ListInstanceFleetsRequest& request, const ListInstanceFleetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides all available details about the instance groups in a * cluster.

See Also:

AWS * API Reference

*/ virtual Model::ListInstanceGroupsOutcome ListInstanceGroups(const Model::ListInstanceGroupsRequest& request) const; /** *

Provides all available details about the instance groups in a * cluster.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListInstanceGroupsOutcomeCallable ListInstanceGroupsCallable(const Model::ListInstanceGroupsRequest& request) const; /** *

Provides all available details about the instance groups in a * cluster.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListInstanceGroupsAsync(const Model::ListInstanceGroupsRequest& request, const ListInstanceGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides information for all active EC2 instances and EC2 instances * terminated in the last 30 days, up to a maximum of 2,000. EC2 instances in any * of the following states are considered active: AWAITING_FULFILLMENT, * PROVISIONING, BOOTSTRAPPING, RUNNING.

See Also:

AWS * API Reference

*/ virtual Model::ListInstancesOutcome ListInstances(const Model::ListInstancesRequest& request) const; /** *

Provides information for all active EC2 instances and EC2 instances * terminated in the last 30 days, up to a maximum of 2,000. EC2 instances in any * of the following states are considered active: AWAITING_FULFILLMENT, * PROVISIONING, BOOTSTRAPPING, RUNNING.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListInstancesOutcomeCallable ListInstancesCallable(const Model::ListInstancesRequest& request) const; /** *

Provides information for all active EC2 instances and EC2 instances * terminated in the last 30 days, up to a maximum of 2,000. EC2 instances in any * of the following states are considered active: AWAITING_FULFILLMENT, * PROVISIONING, BOOTSTRAPPING, RUNNING.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListInstancesAsync(const Model::ListInstancesRequest& request, const ListInstancesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all the security configurations visible to this account, providing * their creation dates and times, and their names. This call returns a maximum of * 50 clusters per call, but returns a marker to track the paging of the cluster * list across multiple ListSecurityConfigurations calls.

See Also:

* AWS * API Reference

*/ virtual Model::ListSecurityConfigurationsOutcome ListSecurityConfigurations(const Model::ListSecurityConfigurationsRequest& request) const; /** *

Lists all the security configurations visible to this account, providing * their creation dates and times, and their names. This call returns a maximum of * 50 clusters per call, but returns a marker to track the paging of the cluster * list across multiple ListSecurityConfigurations calls.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSecurityConfigurationsOutcomeCallable ListSecurityConfigurationsCallable(const Model::ListSecurityConfigurationsRequest& request) const; /** *

Lists all the security configurations visible to this account, providing * their creation dates and times, and their names. This call returns a maximum of * 50 clusters per call, but returns a marker to track the paging of the cluster * list across multiple ListSecurityConfigurations calls.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSecurityConfigurationsAsync(const Model::ListSecurityConfigurationsRequest& request, const ListSecurityConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides a list of steps for the cluster in reverse order unless you specify * stepIds with the request of filter by StepStates. You * can specify a maximum of ten stepIDs.

See Also:

AWS * API Reference

*/ virtual Model::ListStepsOutcome ListSteps(const Model::ListStepsRequest& request) const; /** *

Provides a list of steps for the cluster in reverse order unless you specify * stepIds with the request of filter by StepStates. You * can specify a maximum of ten stepIDs.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListStepsOutcomeCallable ListStepsCallable(const Model::ListStepsRequest& request) const; /** *

Provides a list of steps for the cluster in reverse order unless you specify * stepIds with the request of filter by StepStates. You * can specify a maximum of ten stepIDs.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListStepsAsync(const Model::ListStepsRequest& request, const ListStepsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Modifies the number of steps that can be executed concurrently for the * cluster specified using ClusterID.

See Also:

AWS * API Reference

*/ virtual Model::ModifyClusterOutcome ModifyCluster(const Model::ModifyClusterRequest& request) const; /** *

Modifies the number of steps that can be executed concurrently for the * cluster specified using ClusterID.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ModifyClusterOutcomeCallable ModifyClusterCallable(const Model::ModifyClusterRequest& request) const; /** *

Modifies the number of steps that can be executed concurrently for the * cluster specified using ClusterID.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ModifyClusterAsync(const Model::ModifyClusterRequest& request, const ModifyClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Modifies the target On-Demand and target Spot capacities for the instance * fleet with the specified InstanceFleetID within the cluster specified using * ClusterID. The call either succeeds or fails atomically.

The * instance fleet configuration is available only in Amazon EMR versions 4.8.0 and * later, excluding 5.0.x versions.

See Also:

AWS * API Reference

*/ virtual Model::ModifyInstanceFleetOutcome ModifyInstanceFleet(const Model::ModifyInstanceFleetRequest& request) const; /** *

Modifies the target On-Demand and target Spot capacities for the instance * fleet with the specified InstanceFleetID within the cluster specified using * ClusterID. The call either succeeds or fails atomically.

The * instance fleet configuration is available only in Amazon EMR versions 4.8.0 and * later, excluding 5.0.x versions.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ModifyInstanceFleetOutcomeCallable ModifyInstanceFleetCallable(const Model::ModifyInstanceFleetRequest& request) const; /** *

Modifies the target On-Demand and target Spot capacities for the instance * fleet with the specified InstanceFleetID within the cluster specified using * ClusterID. The call either succeeds or fails atomically.

The * instance fleet configuration is available only in Amazon EMR versions 4.8.0 and * later, excluding 5.0.x versions.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ModifyInstanceFleetAsync(const Model::ModifyInstanceFleetRequest& request, const ModifyInstanceFleetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

ModifyInstanceGroups modifies the number of nodes and configuration settings * of an instance group. The input parameters include the new target instance count * for the group and the instance group ID. The call will either succeed or fail * atomically.

See Also:

AWS * API Reference

*/ virtual Model::ModifyInstanceGroupsOutcome ModifyInstanceGroups(const Model::ModifyInstanceGroupsRequest& request) const; /** *

ModifyInstanceGroups modifies the number of nodes and configuration settings * of an instance group. The input parameters include the new target instance count * for the group and the instance group ID. The call will either succeed or fail * atomically.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ModifyInstanceGroupsOutcomeCallable ModifyInstanceGroupsCallable(const Model::ModifyInstanceGroupsRequest& request) const; /** *

ModifyInstanceGroups modifies the number of nodes and configuration settings * of an instance group. The input parameters include the new target instance count * for the group and the instance group ID. The call will either succeed or fail * atomically.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ModifyInstanceGroupsAsync(const Model::ModifyInstanceGroupsRequest& request, const ModifyInstanceGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates an automatic scaling policy for a core instance group or * task instance group in an Amazon EMR cluster. The automatic scaling policy * defines how an instance group dynamically adds and terminates EC2 instances in * response to the value of a CloudWatch metric.

See Also:

AWS * API Reference

*/ virtual Model::PutAutoScalingPolicyOutcome PutAutoScalingPolicy(const Model::PutAutoScalingPolicyRequest& request) const; /** *

Creates or updates an automatic scaling policy for a core instance group or * task instance group in an Amazon EMR cluster. The automatic scaling policy * defines how an instance group dynamically adds and terminates EC2 instances in * response to the value of a CloudWatch metric.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutAutoScalingPolicyOutcomeCallable PutAutoScalingPolicyCallable(const Model::PutAutoScalingPolicyRequest& request) const; /** *

Creates or updates an automatic scaling policy for a core instance group or * task instance group in an Amazon EMR cluster. The automatic scaling policy * defines how an instance group dynamically adds and terminates EC2 instances in * response to the value of a CloudWatch metric.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutAutoScalingPolicyAsync(const Model::PutAutoScalingPolicyRequest& request, const PutAutoScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates an Amazon EMR block public access configuration for your * AWS account in the current Region. For more information see Configure * Block Public Access for Amazon EMR in the Amazon EMR Management * Guide.

See Also:

AWS * API Reference

*/ virtual Model::PutBlockPublicAccessConfigurationOutcome PutBlockPublicAccessConfiguration(const Model::PutBlockPublicAccessConfigurationRequest& request) const; /** *

Creates or updates an Amazon EMR block public access configuration for your * AWS account in the current Region. For more information see Configure * Block Public Access for Amazon EMR in the Amazon EMR Management * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutBlockPublicAccessConfigurationOutcomeCallable PutBlockPublicAccessConfigurationCallable(const Model::PutBlockPublicAccessConfigurationRequest& request) const; /** *

Creates or updates an Amazon EMR block public access configuration for your * AWS account in the current Region. For more information see Configure * Block Public Access for Amazon EMR in the Amazon EMR Management * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutBlockPublicAccessConfigurationAsync(const Model::PutBlockPublicAccessConfigurationRequest& request, const PutBlockPublicAccessConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates a managed scaling policy for an Amazon EMR cluster. The * managed scaling policy defines the limits for resources, such as EC2 instances * that can be added or terminated from a cluster. The policy only applies to the * core and task nodes. The master node cannot be scaled after initial * configuration.

See Also:

AWS * API Reference

*/ virtual Model::PutManagedScalingPolicyOutcome PutManagedScalingPolicy(const Model::PutManagedScalingPolicyRequest& request) const; /** *

Creates or updates a managed scaling policy for an Amazon EMR cluster. The * managed scaling policy defines the limits for resources, such as EC2 instances * that can be added or terminated from a cluster. The policy only applies to the * core and task nodes. The master node cannot be scaled after initial * configuration.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutManagedScalingPolicyOutcomeCallable PutManagedScalingPolicyCallable(const Model::PutManagedScalingPolicyRequest& request) const; /** *

Creates or updates a managed scaling policy for an Amazon EMR cluster. The * managed scaling policy defines the limits for resources, such as EC2 instances * that can be added or terminated from a cluster. The policy only applies to the * core and task nodes. The master node cannot be scaled after initial * configuration.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutManagedScalingPolicyAsync(const Model::PutManagedScalingPolicyRequest& request, const PutManagedScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes an automatic scaling policy from a specified instance group within an * EMR cluster.

See Also:

AWS * API Reference

*/ virtual Model::RemoveAutoScalingPolicyOutcome RemoveAutoScalingPolicy(const Model::RemoveAutoScalingPolicyRequest& request) const; /** *

Removes an automatic scaling policy from a specified instance group within an * EMR cluster.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveAutoScalingPolicyOutcomeCallable RemoveAutoScalingPolicyCallable(const Model::RemoveAutoScalingPolicyRequest& request) const; /** *

Removes an automatic scaling policy from a specified instance group within an * EMR cluster.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveAutoScalingPolicyAsync(const Model::RemoveAutoScalingPolicyRequest& request, const RemoveAutoScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes a managed scaling policy from a specified EMR cluster. *

See Also:

AWS * API Reference

*/ virtual Model::RemoveManagedScalingPolicyOutcome RemoveManagedScalingPolicy(const Model::RemoveManagedScalingPolicyRequest& request) const; /** *

Removes a managed scaling policy from a specified EMR cluster. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveManagedScalingPolicyOutcomeCallable RemoveManagedScalingPolicyCallable(const Model::RemoveManagedScalingPolicyRequest& request) const; /** *

Removes a managed scaling policy from a specified EMR cluster. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveManagedScalingPolicyAsync(const Model::RemoveManagedScalingPolicyRequest& request, const RemoveManagedScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes tags from an Amazon EMR resource. Tags make it easier to associate * clusters in various ways, such as grouping clusters to track your Amazon EMR * resource allocation costs. For more information, see Tag * Clusters.

The following example removes the stack tag with value * Prod from a cluster:

See Also:

AWS * API Reference

*/ virtual Model::RemoveTagsOutcome RemoveTags(const Model::RemoveTagsRequest& request) const; /** *

Removes tags from an Amazon EMR resource. Tags make it easier to associate * clusters in various ways, such as grouping clusters to track your Amazon EMR * resource allocation costs. For more information, see Tag * Clusters.

The following example removes the stack tag with value * Prod from a cluster:

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveTagsOutcomeCallable RemoveTagsCallable(const Model::RemoveTagsRequest& request) const; /** *

Removes tags from an Amazon EMR resource. Tags make it easier to associate * clusters in various ways, such as grouping clusters to track your Amazon EMR * resource allocation costs. For more information, see Tag * Clusters.

The following example removes the stack tag with value * Prod from a cluster:

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveTagsAsync(const Model::RemoveTagsRequest& request, const RemoveTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

RunJobFlow creates and starts running a new cluster (job flow). The cluster * runs the steps specified. After the steps complete, the cluster stops and the * HDFS partition is lost. To prevent loss of data, configure the last step of the * job flow to store results in Amazon S3. If the JobFlowInstancesConfig * KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, * the cluster transitions to the WAITING state rather than shutting down after the * steps have completed.

For additional protection, you can set the * JobFlowInstancesConfig TerminationProtected parameter to * TRUE to lock the cluster and prevent it from being terminated by * API call, user intervention, or in the event of a job flow error.

A * maximum of 256 steps are allowed in each job flow.

If your cluster is * long-running (such as a Hive data warehouse) or complex, you may require more * than 256 steps to process your data. You can bypass the 256-step limitation in * various ways, including using the SSH shell to connect to the master node and * submitting queries directly to the software running on the master node, such as * Hive and Hadoop. For more information on how to do this, see Add * More than 256 Steps to a Cluster in the Amazon EMR Management * Guide.

For long running clusters, we recommend that you periodically * store your results.

The instance fleets configuration is available * only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. The * RunJobFlow request can contain InstanceFleets parameters or InstanceGroups * parameters, but not both.

See Also:

AWS * API Reference

*/ virtual Model::RunJobFlowOutcome RunJobFlow(const Model::RunJobFlowRequest& request) const; /** *

RunJobFlow creates and starts running a new cluster (job flow). The cluster * runs the steps specified. After the steps complete, the cluster stops and the * HDFS partition is lost. To prevent loss of data, configure the last step of the * job flow to store results in Amazon S3. If the JobFlowInstancesConfig * KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, * the cluster transitions to the WAITING state rather than shutting down after the * steps have completed.

For additional protection, you can set the * JobFlowInstancesConfig TerminationProtected parameter to * TRUE to lock the cluster and prevent it from being terminated by * API call, user intervention, or in the event of a job flow error.

A * maximum of 256 steps are allowed in each job flow.

If your cluster is * long-running (such as a Hive data warehouse) or complex, you may require more * than 256 steps to process your data. You can bypass the 256-step limitation in * various ways, including using the SSH shell to connect to the master node and * submitting queries directly to the software running on the master node, such as * Hive and Hadoop. For more information on how to do this, see Add * More than 256 Steps to a Cluster in the Amazon EMR Management * Guide.

For long running clusters, we recommend that you periodically * store your results.

The instance fleets configuration is available * only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. The * RunJobFlow request can contain InstanceFleets parameters or InstanceGroups * parameters, but not both.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RunJobFlowOutcomeCallable RunJobFlowCallable(const Model::RunJobFlowRequest& request) const; /** *

RunJobFlow creates and starts running a new cluster (job flow). The cluster * runs the steps specified. After the steps complete, the cluster stops and the * HDFS partition is lost. To prevent loss of data, configure the last step of the * job flow to store results in Amazon S3. If the JobFlowInstancesConfig * KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, * the cluster transitions to the WAITING state rather than shutting down after the * steps have completed.

For additional protection, you can set the * JobFlowInstancesConfig TerminationProtected parameter to * TRUE to lock the cluster and prevent it from being terminated by * API call, user intervention, or in the event of a job flow error.

A * maximum of 256 steps are allowed in each job flow.

If your cluster is * long-running (such as a Hive data warehouse) or complex, you may require more * than 256 steps to process your data. You can bypass the 256-step limitation in * various ways, including using the SSH shell to connect to the master node and * submitting queries directly to the software running on the master node, such as * Hive and Hadoop. For more information on how to do this, see Add * More than 256 Steps to a Cluster in the Amazon EMR Management * Guide.

For long running clusters, we recommend that you periodically * store your results.

The instance fleets configuration is available * only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. The * RunJobFlow request can contain InstanceFleets parameters or InstanceGroups * parameters, but not both.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RunJobFlowAsync(const Model::RunJobFlowRequest& request, const RunJobFlowResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

SetTerminationProtection locks a cluster (job flow) so the EC2 instances in * the cluster cannot be terminated by user intervention, an API call, or in the * event of a job-flow error. The cluster still terminates upon successful * completion of the job flow. Calling SetTerminationProtection on a * cluster is similar to calling the Amazon EC2 DisableAPITermination * API on all EC2 instances in a cluster.

* SetTerminationProtection is used to prevent accidental termination * of a cluster and to ensure that in the event of an error, the instances persist * so that you can recover any data stored in their ephemeral instance storage.

*

To terminate a cluster that has been locked by setting * SetTerminationProtection to true, you must first * unlock the job flow by a subsequent call to * SetTerminationProtection in which you set the value to * false.

For more information, seeManaging * Cluster Termination in the Amazon EMR Management Guide. *

See Also:

AWS * API Reference

*/ virtual Model::SetTerminationProtectionOutcome SetTerminationProtection(const Model::SetTerminationProtectionRequest& request) const; /** *

SetTerminationProtection locks a cluster (job flow) so the EC2 instances in * the cluster cannot be terminated by user intervention, an API call, or in the * event of a job-flow error. The cluster still terminates upon successful * completion of the job flow. Calling SetTerminationProtection on a * cluster is similar to calling the Amazon EC2 DisableAPITermination * API on all EC2 instances in a cluster.

* SetTerminationProtection is used to prevent accidental termination * of a cluster and to ensure that in the event of an error, the instances persist * so that you can recover any data stored in their ephemeral instance storage.

*

To terminate a cluster that has been locked by setting * SetTerminationProtection to true, you must first * unlock the job flow by a subsequent call to * SetTerminationProtection in which you set the value to * false.

For more information, seeManaging * Cluster Termination in the Amazon EMR Management Guide. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetTerminationProtectionOutcomeCallable SetTerminationProtectionCallable(const Model::SetTerminationProtectionRequest& request) const; /** *

SetTerminationProtection locks a cluster (job flow) so the EC2 instances in * the cluster cannot be terminated by user intervention, an API call, or in the * event of a job-flow error. The cluster still terminates upon successful * completion of the job flow. Calling SetTerminationProtection on a * cluster is similar to calling the Amazon EC2 DisableAPITermination * API on all EC2 instances in a cluster.

* SetTerminationProtection is used to prevent accidental termination * of a cluster and to ensure that in the event of an error, the instances persist * so that you can recover any data stored in their ephemeral instance storage.

*

To terminate a cluster that has been locked by setting * SetTerminationProtection to true, you must first * unlock the job flow by a subsequent call to * SetTerminationProtection in which you set the value to * false.

For more information, seeManaging * Cluster Termination in the Amazon EMR Management Guide. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetTerminationProtectionAsync(const Model::SetTerminationProtectionRequest& request, const SetTerminationProtectionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the Cluster$VisibleToAllUsers value, which determines whether the * cluster is visible to all IAM users of the AWS account associated with the * cluster. Only the IAM user who created the cluster or the AWS account root user * can call this action. The default value, true, indicates that all * IAM users in the AWS account can perform cluster actions if they have the proper * IAM policy permissions. If set to false, only the IAM user that * created the cluster can perform actions. This action works on running clusters. * You can override the default true setting when you create a cluster * by using the VisibleToAllUsers parameter with * RunJobFlow.

See Also:

AWS * API Reference

*/ virtual Model::SetVisibleToAllUsersOutcome SetVisibleToAllUsers(const Model::SetVisibleToAllUsersRequest& request) const; /** *

Sets the Cluster$VisibleToAllUsers value, which determines whether the * cluster is visible to all IAM users of the AWS account associated with the * cluster. Only the IAM user who created the cluster or the AWS account root user * can call this action. The default value, true, indicates that all * IAM users in the AWS account can perform cluster actions if they have the proper * IAM policy permissions. If set to false, only the IAM user that * created the cluster can perform actions. This action works on running clusters. * You can override the default true setting when you create a cluster * by using the VisibleToAllUsers parameter with * RunJobFlow.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetVisibleToAllUsersOutcomeCallable SetVisibleToAllUsersCallable(const Model::SetVisibleToAllUsersRequest& request) const; /** *

Sets the Cluster$VisibleToAllUsers value, which determines whether the * cluster is visible to all IAM users of the AWS account associated with the * cluster. Only the IAM user who created the cluster or the AWS account root user * can call this action. The default value, true, indicates that all * IAM users in the AWS account can perform cluster actions if they have the proper * IAM policy permissions. If set to false, only the IAM user that * created the cluster can perform actions. This action works on running clusters. * You can override the default true setting when you create a cluster * by using the VisibleToAllUsers parameter with * RunJobFlow.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetVisibleToAllUsersAsync(const Model::SetVisibleToAllUsersRequest& request, const SetVisibleToAllUsersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow * is shut down, any step not yet completed is canceled and the EC2 instances on * which the cluster is running are stopped. Any log files not already saved are * uploaded to Amazon S3 if a LogUri was specified when the cluster was * created.

The maximum number of clusters allowed is 10. The call to * TerminateJobFlows is asynchronous. Depending on the configuration * of the cluster, it may take up to 1-5 minutes for the cluster to completely * terminate and release allocated resources, such as Amazon EC2 * instances.

See Also:

AWS * API Reference

*/ virtual Model::TerminateJobFlowsOutcome TerminateJobFlows(const Model::TerminateJobFlowsRequest& request) const; /** *

TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow * is shut down, any step not yet completed is canceled and the EC2 instances on * which the cluster is running are stopped. Any log files not already saved are * uploaded to Amazon S3 if a LogUri was specified when the cluster was * created.

The maximum number of clusters allowed is 10. The call to * TerminateJobFlows is asynchronous. Depending on the configuration * of the cluster, it may take up to 1-5 minutes for the cluster to completely * terminate and release allocated resources, such as Amazon EC2 * instances.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TerminateJobFlowsOutcomeCallable TerminateJobFlowsCallable(const Model::TerminateJobFlowsRequest& request) const; /** *

TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow * is shut down, any step not yet completed is canceled and the EC2 instances on * which the cluster is running are stopped. Any log files not already saved are * uploaded to Amazon S3 if a LogUri was specified when the cluster was * created.

The maximum number of clusters allowed is 10. The call to * TerminateJobFlows is asynchronous. Depending on the configuration * of the cluster, it may take up to 1-5 minutes for the cluster to completely * terminate and release allocated resources, such as Amazon EC2 * instances.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TerminateJobFlowsAsync(const Model::TerminateJobFlowsRequest& request, const TerminateJobFlowsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AddInstanceFleetAsyncHelper(const Model::AddInstanceFleetRequest& request, const AddInstanceFleetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AddInstanceGroupsAsyncHelper(const Model::AddInstanceGroupsRequest& request, const AddInstanceGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AddJobFlowStepsAsyncHelper(const Model::AddJobFlowStepsRequest& request, const AddJobFlowStepsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AddTagsAsyncHelper(const Model::AddTagsRequest& request, const AddTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CancelStepsAsyncHelper(const Model::CancelStepsRequest& request, const CancelStepsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateSecurityConfigurationAsyncHelper(const Model::CreateSecurityConfigurationRequest& request, const CreateSecurityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteSecurityConfigurationAsyncHelper(const Model::DeleteSecurityConfigurationRequest& request, const DeleteSecurityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeClusterAsyncHelper(const Model::DescribeClusterRequest& request, const DescribeClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeSecurityConfigurationAsyncHelper(const Model::DescribeSecurityConfigurationRequest& request, const DescribeSecurityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeStepAsyncHelper(const Model::DescribeStepRequest& request, const DescribeStepResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetBlockPublicAccessConfigurationAsyncHelper(const Model::GetBlockPublicAccessConfigurationRequest& request, const GetBlockPublicAccessConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetManagedScalingPolicyAsyncHelper(const Model::GetManagedScalingPolicyRequest& request, const GetManagedScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListBootstrapActionsAsyncHelper(const Model::ListBootstrapActionsRequest& request, const ListBootstrapActionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListClustersAsyncHelper(const Model::ListClustersRequest& request, const ListClustersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListInstanceFleetsAsyncHelper(const Model::ListInstanceFleetsRequest& request, const ListInstanceFleetsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListInstanceGroupsAsyncHelper(const Model::ListInstanceGroupsRequest& request, const ListInstanceGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListInstancesAsyncHelper(const Model::ListInstancesRequest& request, const ListInstancesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSecurityConfigurationsAsyncHelper(const Model::ListSecurityConfigurationsRequest& request, const ListSecurityConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListStepsAsyncHelper(const Model::ListStepsRequest& request, const ListStepsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ModifyClusterAsyncHelper(const Model::ModifyClusterRequest& request, const ModifyClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ModifyInstanceFleetAsyncHelper(const Model::ModifyInstanceFleetRequest& request, const ModifyInstanceFleetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ModifyInstanceGroupsAsyncHelper(const Model::ModifyInstanceGroupsRequest& request, const ModifyInstanceGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutAutoScalingPolicyAsyncHelper(const Model::PutAutoScalingPolicyRequest& request, const PutAutoScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutBlockPublicAccessConfigurationAsyncHelper(const Model::PutBlockPublicAccessConfigurationRequest& request, const PutBlockPublicAccessConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutManagedScalingPolicyAsyncHelper(const Model::PutManagedScalingPolicyRequest& request, const PutManagedScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveAutoScalingPolicyAsyncHelper(const Model::RemoveAutoScalingPolicyRequest& request, const RemoveAutoScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveManagedScalingPolicyAsyncHelper(const Model::RemoveManagedScalingPolicyRequest& request, const RemoveManagedScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveTagsAsyncHelper(const Model::RemoveTagsRequest& request, const RemoveTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RunJobFlowAsyncHelper(const Model::RunJobFlowRequest& request, const RunJobFlowResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetTerminationProtectionAsyncHelper(const Model::SetTerminationProtectionRequest& request, const SetTerminationProtectionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetVisibleToAllUsersAsyncHelper(const Model::SetVisibleToAllUsersRequest& request, const SetVisibleToAllUsersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TerminateJobFlowsAsyncHelper(const Model::TerminateJobFlowsRequest& request, const TerminateJobFlowsResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace EMR } // namespace Aws