/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include A description of a cluster (job flow).See Also:
AWS
* API Reference
The job flow identifier.
*/ inline const Aws::String& GetJobFlowId() const{ return m_jobFlowId; } /** *The job flow identifier.
*/ inline bool JobFlowIdHasBeenSet() const { return m_jobFlowIdHasBeenSet; } /** *The job flow identifier.
*/ inline void SetJobFlowId(const Aws::String& value) { m_jobFlowIdHasBeenSet = true; m_jobFlowId = value; } /** *The job flow identifier.
*/ inline void SetJobFlowId(Aws::String&& value) { m_jobFlowIdHasBeenSet = true; m_jobFlowId = std::move(value); } /** *The job flow identifier.
*/ inline void SetJobFlowId(const char* value) { m_jobFlowIdHasBeenSet = true; m_jobFlowId.assign(value); } /** *The job flow identifier.
*/ inline JobFlowDetail& WithJobFlowId(const Aws::String& value) { SetJobFlowId(value); return *this;} /** *The job flow identifier.
*/ inline JobFlowDetail& WithJobFlowId(Aws::String&& value) { SetJobFlowId(std::move(value)); return *this;} /** *The job flow identifier.
*/ inline JobFlowDetail& WithJobFlowId(const char* value) { SetJobFlowId(value); return *this;} /** *The name of the job flow.
*/ inline const Aws::String& GetName() const{ return m_name; } /** *The name of the job flow.
*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *The name of the job flow.
*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *The name of the job flow.
*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *The name of the job flow.
*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *The name of the job flow.
*/ inline JobFlowDetail& WithName(const Aws::String& value) { SetName(value); return *this;} /** *The name of the job flow.
*/ inline JobFlowDetail& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *The name of the job flow.
*/ inline JobFlowDetail& WithName(const char* value) { SetName(value); return *this;} /** *The location in Amazon S3 where log files for the job are stored.
*/ inline const Aws::String& GetLogUri() const{ return m_logUri; } /** *The location in Amazon S3 where log files for the job are stored.
*/ inline bool LogUriHasBeenSet() const { return m_logUriHasBeenSet; } /** *The location in Amazon S3 where log files for the job are stored.
*/ inline void SetLogUri(const Aws::String& value) { m_logUriHasBeenSet = true; m_logUri = value; } /** *The location in Amazon S3 where log files for the job are stored.
*/ inline void SetLogUri(Aws::String&& value) { m_logUriHasBeenSet = true; m_logUri = std::move(value); } /** *The location in Amazon S3 where log files for the job are stored.
*/ inline void SetLogUri(const char* value) { m_logUriHasBeenSet = true; m_logUri.assign(value); } /** *The location in Amazon S3 where log files for the job are stored.
*/ inline JobFlowDetail& WithLogUri(const Aws::String& value) { SetLogUri(value); return *this;} /** *The location in Amazon S3 where log files for the job are stored.
*/ inline JobFlowDetail& WithLogUri(Aws::String&& value) { SetLogUri(std::move(value)); return *this;} /** *The location in Amazon S3 where log files for the job are stored.
*/ inline JobFlowDetail& WithLogUri(const char* value) { SetLogUri(value); return *this;} /** *The KMS key used for encrypting log files. This attribute is only available * with Amazon EMR 5.30.0 and later, excluding 6.0.0.
*/ inline const Aws::String& GetLogEncryptionKmsKeyId() const{ return m_logEncryptionKmsKeyId; } /** *The KMS key used for encrypting log files. This attribute is only available * with Amazon EMR 5.30.0 and later, excluding 6.0.0.
*/ inline bool LogEncryptionKmsKeyIdHasBeenSet() const { return m_logEncryptionKmsKeyIdHasBeenSet; } /** *The KMS key used for encrypting log files. This attribute is only available * with Amazon EMR 5.30.0 and later, excluding 6.0.0.
*/ inline void SetLogEncryptionKmsKeyId(const Aws::String& value) { m_logEncryptionKmsKeyIdHasBeenSet = true; m_logEncryptionKmsKeyId = value; } /** *The KMS key used for encrypting log files. This attribute is only available * with Amazon EMR 5.30.0 and later, excluding 6.0.0.
*/ inline void SetLogEncryptionKmsKeyId(Aws::String&& value) { m_logEncryptionKmsKeyIdHasBeenSet = true; m_logEncryptionKmsKeyId = std::move(value); } /** *The KMS key used for encrypting log files. This attribute is only available * with Amazon EMR 5.30.0 and later, excluding 6.0.0.
*/ inline void SetLogEncryptionKmsKeyId(const char* value) { m_logEncryptionKmsKeyIdHasBeenSet = true; m_logEncryptionKmsKeyId.assign(value); } /** *The KMS key used for encrypting log files. This attribute is only available * with Amazon EMR 5.30.0 and later, excluding 6.0.0.
*/ inline JobFlowDetail& WithLogEncryptionKmsKeyId(const Aws::String& value) { SetLogEncryptionKmsKeyId(value); return *this;} /** *The KMS key used for encrypting log files. This attribute is only available * with Amazon EMR 5.30.0 and later, excluding 6.0.0.
*/ inline JobFlowDetail& WithLogEncryptionKmsKeyId(Aws::String&& value) { SetLogEncryptionKmsKeyId(std::move(value)); return *this;} /** *The KMS key used for encrypting log files. This attribute is only available * with Amazon EMR 5.30.0 and later, excluding 6.0.0.
*/ inline JobFlowDetail& WithLogEncryptionKmsKeyId(const char* value) { SetLogEncryptionKmsKeyId(value); return *this;} /** *Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
* 4.0 and later, ReleaseLabel
is used. To specify a custom AMI, use
* CustomAmiID
.
Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
* 4.0 and later, ReleaseLabel
is used. To specify a custom AMI, use
* CustomAmiID
.
Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
* 4.0 and later, ReleaseLabel
is used. To specify a custom AMI, use
* CustomAmiID
.
Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
* 4.0 and later, ReleaseLabel
is used. To specify a custom AMI, use
* CustomAmiID
.
Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
* 4.0 and later, ReleaseLabel
is used. To specify a custom AMI, use
* CustomAmiID
.
Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
* 4.0 and later, ReleaseLabel
is used. To specify a custom AMI, use
* CustomAmiID
.
Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
* 4.0 and later, ReleaseLabel
is used. To specify a custom AMI, use
* CustomAmiID
.
Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
* 4.0 and later, ReleaseLabel
is used. To specify a custom AMI, use
* CustomAmiID
.
Describes the execution status of the job flow.
*/ inline const JobFlowExecutionStatusDetail& GetExecutionStatusDetail() const{ return m_executionStatusDetail; } /** *Describes the execution status of the job flow.
*/ inline bool ExecutionStatusDetailHasBeenSet() const { return m_executionStatusDetailHasBeenSet; } /** *Describes the execution status of the job flow.
*/ inline void SetExecutionStatusDetail(const JobFlowExecutionStatusDetail& value) { m_executionStatusDetailHasBeenSet = true; m_executionStatusDetail = value; } /** *Describes the execution status of the job flow.
*/ inline void SetExecutionStatusDetail(JobFlowExecutionStatusDetail&& value) { m_executionStatusDetailHasBeenSet = true; m_executionStatusDetail = std::move(value); } /** *Describes the execution status of the job flow.
*/ inline JobFlowDetail& WithExecutionStatusDetail(const JobFlowExecutionStatusDetail& value) { SetExecutionStatusDetail(value); return *this;} /** *Describes the execution status of the job flow.
*/ inline JobFlowDetail& WithExecutionStatusDetail(JobFlowExecutionStatusDetail&& value) { SetExecutionStatusDetail(std::move(value)); return *this;} /** *Describes the Amazon EC2 instances of the job flow.
*/ inline const JobFlowInstancesDetail& GetInstances() const{ return m_instances; } /** *Describes the Amazon EC2 instances of the job flow.
*/ inline bool InstancesHasBeenSet() const { return m_instancesHasBeenSet; } /** *Describes the Amazon EC2 instances of the job flow.
*/ inline void SetInstances(const JobFlowInstancesDetail& value) { m_instancesHasBeenSet = true; m_instances = value; } /** *Describes the Amazon EC2 instances of the job flow.
*/ inline void SetInstances(JobFlowInstancesDetail&& value) { m_instancesHasBeenSet = true; m_instances = std::move(value); } /** *Describes the Amazon EC2 instances of the job flow.
*/ inline JobFlowDetail& WithInstances(const JobFlowInstancesDetail& value) { SetInstances(value); return *this;} /** *Describes the Amazon EC2 instances of the job flow.
*/ inline JobFlowDetail& WithInstances(JobFlowInstancesDetail&& value) { SetInstances(std::move(value)); return *this;} /** *A list of steps run by the job flow.
*/ inline const Aws::VectorA list of steps run by the job flow.
*/ inline bool StepsHasBeenSet() const { return m_stepsHasBeenSet; } /** *A list of steps run by the job flow.
*/ inline void SetSteps(const Aws::VectorA list of steps run by the job flow.
*/ inline void SetSteps(Aws::VectorA list of steps run by the job flow.
*/ inline JobFlowDetail& WithSteps(const Aws::VectorA list of steps run by the job flow.
*/ inline JobFlowDetail& WithSteps(Aws::VectorA list of steps run by the job flow.
*/ inline JobFlowDetail& AddSteps(const StepDetail& value) { m_stepsHasBeenSet = true; m_steps.push_back(value); return *this; } /** *A list of steps run by the job flow.
*/ inline JobFlowDetail& AddSteps(StepDetail&& value) { m_stepsHasBeenSet = true; m_steps.push_back(std::move(value)); return *this; } /** *A list of the bootstrap actions run by the job flow.
*/ inline const Aws::VectorA list of the bootstrap actions run by the job flow.
*/ inline bool BootstrapActionsHasBeenSet() const { return m_bootstrapActionsHasBeenSet; } /** *A list of the bootstrap actions run by the job flow.
*/ inline void SetBootstrapActions(const Aws::VectorA list of the bootstrap actions run by the job flow.
*/ inline void SetBootstrapActions(Aws::VectorA list of the bootstrap actions run by the job flow.
*/ inline JobFlowDetail& WithBootstrapActions(const Aws::VectorA list of the bootstrap actions run by the job flow.
*/ inline JobFlowDetail& WithBootstrapActions(Aws::VectorA list of the bootstrap actions run by the job flow.
*/ inline JobFlowDetail& AddBootstrapActions(const BootstrapActionDetail& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions.push_back(value); return *this; } /** *A list of the bootstrap actions run by the job flow.
*/ inline JobFlowDetail& AddBootstrapActions(BootstrapActionDetail&& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions.push_back(std::move(value)); return *this; } /** *A list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline const Aws::VectorA list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline bool SupportedProductsHasBeenSet() const { return m_supportedProductsHasBeenSet; } /** *A list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline void SetSupportedProducts(const Aws::VectorA list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline void SetSupportedProducts(Aws::VectorA list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline JobFlowDetail& WithSupportedProducts(const Aws::VectorA list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline JobFlowDetail& WithSupportedProducts(Aws::VectorA list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline JobFlowDetail& AddSupportedProducts(const Aws::String& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(value); return *this; } /** *A list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline JobFlowDetail& AddSupportedProducts(Aws::String&& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(std::move(value)); return *this; } /** *A list of strings set by third-party software when the job flow is launched. * If you are not using third-party software to manage the job flow, this value is * empty.
*/ inline JobFlowDetail& AddSupportedProducts(const char* value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(value); return *this; } /** *Indicates whether the cluster is visible to IAM principals in the Amazon Web
* Services account associated with the cluster. When true
, IAM
* principals in the Amazon Web Services account can perform Amazon EMR cluster
* actions that their IAM policies allow. When false
, only the IAM
* principal that created the cluster and the Amazon Web Services account root user
* can perform Amazon EMR actions, regardless of IAM permissions policies attached
* to other IAM principals.
The default value is true
if a
* value is not provided when creating a cluster using the Amazon EMR API
* RunJobFlow command, the CLI create-cluster
* command, or the Amazon Web Services Management Console.
Indicates whether the cluster is visible to IAM principals in the Amazon Web
* Services account associated with the cluster. When true
, IAM
* principals in the Amazon Web Services account can perform Amazon EMR cluster
* actions that their IAM policies allow. When false
, only the IAM
* principal that created the cluster and the Amazon Web Services account root user
* can perform Amazon EMR actions, regardless of IAM permissions policies attached
* to other IAM principals.
The default value is true
if a
* value is not provided when creating a cluster using the Amazon EMR API
* RunJobFlow command, the CLI create-cluster
* command, or the Amazon Web Services Management Console.
Indicates whether the cluster is visible to IAM principals in the Amazon Web
* Services account associated with the cluster. When true
, IAM
* principals in the Amazon Web Services account can perform Amazon EMR cluster
* actions that their IAM policies allow. When false
, only the IAM
* principal that created the cluster and the Amazon Web Services account root user
* can perform Amazon EMR actions, regardless of IAM permissions policies attached
* to other IAM principals.
The default value is true
if a
* value is not provided when creating a cluster using the Amazon EMR API
* RunJobFlow command, the CLI create-cluster
* command, or the Amazon Web Services Management Console.
Indicates whether the cluster is visible to IAM principals in the Amazon Web
* Services account associated with the cluster. When true
, IAM
* principals in the Amazon Web Services account can perform Amazon EMR cluster
* actions that their IAM policies allow. When false
, only the IAM
* principal that created the cluster and the Amazon Web Services account root user
* can perform Amazon EMR actions, regardless of IAM permissions policies attached
* to other IAM principals.
The default value is true
if a
* value is not provided when creating a cluster using the Amazon EMR API
* RunJobFlow command, the CLI create-cluster
* command, or the Amazon Web Services Management Console.
The IAM role that was specified when the job flow was launched. The Amazon * EC2 instances of the job flow assume this role.
*/ inline const Aws::String& GetJobFlowRole() const{ return m_jobFlowRole; } /** *The IAM role that was specified when the job flow was launched. The Amazon * EC2 instances of the job flow assume this role.
*/ inline bool JobFlowRoleHasBeenSet() const { return m_jobFlowRoleHasBeenSet; } /** *The IAM role that was specified when the job flow was launched. The Amazon * EC2 instances of the job flow assume this role.
*/ inline void SetJobFlowRole(const Aws::String& value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole = value; } /** *The IAM role that was specified when the job flow was launched. The Amazon * EC2 instances of the job flow assume this role.
*/ inline void SetJobFlowRole(Aws::String&& value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole = std::move(value); } /** *The IAM role that was specified when the job flow was launched. The Amazon * EC2 instances of the job flow assume this role.
*/ inline void SetJobFlowRole(const char* value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole.assign(value); } /** *The IAM role that was specified when the job flow was launched. The Amazon * EC2 instances of the job flow assume this role.
*/ inline JobFlowDetail& WithJobFlowRole(const Aws::String& value) { SetJobFlowRole(value); return *this;} /** *The IAM role that was specified when the job flow was launched. The Amazon * EC2 instances of the job flow assume this role.
*/ inline JobFlowDetail& WithJobFlowRole(Aws::String&& value) { SetJobFlowRole(std::move(value)); return *this;} /** *The IAM role that was specified when the job flow was launched. The Amazon * EC2 instances of the job flow assume this role.
*/ inline JobFlowDetail& WithJobFlowRole(const char* value) { SetJobFlowRole(value); return *this;} /** *The IAM role that is assumed by the Amazon EMR service to access Amazon Web * Services resources on your behalf.
*/ inline const Aws::String& GetServiceRole() const{ return m_serviceRole; } /** *The IAM role that is assumed by the Amazon EMR service to access Amazon Web * Services resources on your behalf.
*/ inline bool ServiceRoleHasBeenSet() const { return m_serviceRoleHasBeenSet; } /** *The IAM role that is assumed by the Amazon EMR service to access Amazon Web * Services resources on your behalf.
*/ inline void SetServiceRole(const Aws::String& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = value; } /** *The IAM role that is assumed by the Amazon EMR service to access Amazon Web * Services resources on your behalf.
*/ inline void SetServiceRole(Aws::String&& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = std::move(value); } /** *The IAM role that is assumed by the Amazon EMR service to access Amazon Web * Services resources on your behalf.
*/ inline void SetServiceRole(const char* value) { m_serviceRoleHasBeenSet = true; m_serviceRole.assign(value); } /** *The IAM role that is assumed by the Amazon EMR service to access Amazon Web * Services resources on your behalf.
*/ inline JobFlowDetail& WithServiceRole(const Aws::String& value) { SetServiceRole(value); return *this;} /** *The IAM role that is assumed by the Amazon EMR service to access Amazon Web * Services resources on your behalf.
*/ inline JobFlowDetail& WithServiceRole(Aws::String&& value) { SetServiceRole(std::move(value)); return *this;} /** *The IAM role that is assumed by the Amazon EMR service to access Amazon Web * Services resources on your behalf.
*/ inline JobFlowDetail& WithServiceRole(const char* value) { SetServiceRole(value); return *this;} /** *An IAM role for automatic scaling policies. The default role is
* EMR_AutoScaling_DefaultRole
. The IAM role provides a way for the
* automatic scaling feature to get the required permissions it needs to launch and
* terminate Amazon EC2 instances in an instance group.
An IAM role for automatic scaling policies. The default role is
* EMR_AutoScaling_DefaultRole
. The IAM role provides a way for the
* automatic scaling feature to get the required permissions it needs to launch and
* terminate Amazon EC2 instances in an instance group.
An IAM role for automatic scaling policies. The default role is
* EMR_AutoScaling_DefaultRole
. The IAM role provides a way for the
* automatic scaling feature to get the required permissions it needs to launch and
* terminate Amazon EC2 instances in an instance group.
An IAM role for automatic scaling policies. The default role is
* EMR_AutoScaling_DefaultRole
. The IAM role provides a way for the
* automatic scaling feature to get the required permissions it needs to launch and
* terminate Amazon EC2 instances in an instance group.
An IAM role for automatic scaling policies. The default role is
* EMR_AutoScaling_DefaultRole
. The IAM role provides a way for the
* automatic scaling feature to get the required permissions it needs to launch and
* terminate Amazon EC2 instances in an instance group.
An IAM role for automatic scaling policies. The default role is
* EMR_AutoScaling_DefaultRole
. The IAM role provides a way for the
* automatic scaling feature to get the required permissions it needs to launch and
* terminate Amazon EC2 instances in an instance group.
An IAM role for automatic scaling policies. The default role is
* EMR_AutoScaling_DefaultRole
. The IAM role provides a way for the
* automatic scaling feature to get the required permissions it needs to launch and
* terminate Amazon EC2 instances in an instance group.
An IAM role for automatic scaling policies. The default role is
* EMR_AutoScaling_DefaultRole
. The IAM role provides a way for the
* automatic scaling feature to get the required permissions it needs to launch and
* terminate Amazon EC2 instances in an instance group.
The way that individual Amazon EC2 instances terminate when an automatic
* scale-in activity occurs or an instance group is resized.
* TERMINATE_AT_INSTANCE_HOUR
indicates that Amazon EMR terminates
* nodes at the instance-hour boundary, regardless of when the request to terminate
* the instance was submitted. This option is only available with Amazon EMR 5.1.0
* and later and is the default for clusters created using that version.
* TERMINATE_AT_TASK_COMPLETION
indicates that Amazon EMR adds nodes
* to a deny list and drains tasks from nodes before terminating the Amazon EC2
* instances, regardless of the instance-hour boundary. With either behavior,
* Amazon EMR removes the least active nodes first and blocks instance termination
* if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
* available only in Amazon EMR releases 4.1.0 and later, and is the default for
* releases of Amazon EMR earlier than 5.1.0.
The way that individual Amazon EC2 instances terminate when an automatic
* scale-in activity occurs or an instance group is resized.
* TERMINATE_AT_INSTANCE_HOUR
indicates that Amazon EMR terminates
* nodes at the instance-hour boundary, regardless of when the request to terminate
* the instance was submitted. This option is only available with Amazon EMR 5.1.0
* and later and is the default for clusters created using that version.
* TERMINATE_AT_TASK_COMPLETION
indicates that Amazon EMR adds nodes
* to a deny list and drains tasks from nodes before terminating the Amazon EC2
* instances, regardless of the instance-hour boundary. With either behavior,
* Amazon EMR removes the least active nodes first and blocks instance termination
* if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
* available only in Amazon EMR releases 4.1.0 and later, and is the default for
* releases of Amazon EMR earlier than 5.1.0.
The way that individual Amazon EC2 instances terminate when an automatic
* scale-in activity occurs or an instance group is resized.
* TERMINATE_AT_INSTANCE_HOUR
indicates that Amazon EMR terminates
* nodes at the instance-hour boundary, regardless of when the request to terminate
* the instance was submitted. This option is only available with Amazon EMR 5.1.0
* and later and is the default for clusters created using that version.
* TERMINATE_AT_TASK_COMPLETION
indicates that Amazon EMR adds nodes
* to a deny list and drains tasks from nodes before terminating the Amazon EC2
* instances, regardless of the instance-hour boundary. With either behavior,
* Amazon EMR removes the least active nodes first and blocks instance termination
* if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
* available only in Amazon EMR releases 4.1.0 and later, and is the default for
* releases of Amazon EMR earlier than 5.1.0.
The way that individual Amazon EC2 instances terminate when an automatic
* scale-in activity occurs or an instance group is resized.
* TERMINATE_AT_INSTANCE_HOUR
indicates that Amazon EMR terminates
* nodes at the instance-hour boundary, regardless of when the request to terminate
* the instance was submitted. This option is only available with Amazon EMR 5.1.0
* and later and is the default for clusters created using that version.
* TERMINATE_AT_TASK_COMPLETION
indicates that Amazon EMR adds nodes
* to a deny list and drains tasks from nodes before terminating the Amazon EC2
* instances, regardless of the instance-hour boundary. With either behavior,
* Amazon EMR removes the least active nodes first and blocks instance termination
* if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
* available only in Amazon EMR releases 4.1.0 and later, and is the default for
* releases of Amazon EMR earlier than 5.1.0.
The way that individual Amazon EC2 instances terminate when an automatic
* scale-in activity occurs or an instance group is resized.
* TERMINATE_AT_INSTANCE_HOUR
indicates that Amazon EMR terminates
* nodes at the instance-hour boundary, regardless of when the request to terminate
* the instance was submitted. This option is only available with Amazon EMR 5.1.0
* and later and is the default for clusters created using that version.
* TERMINATE_AT_TASK_COMPLETION
indicates that Amazon EMR adds nodes
* to a deny list and drains tasks from nodes before terminating the Amazon EC2
* instances, regardless of the instance-hour boundary. With either behavior,
* Amazon EMR removes the least active nodes first and blocks instance termination
* if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
* available only in Amazon EMR releases 4.1.0 and later, and is the default for
* releases of Amazon EMR earlier than 5.1.0.
The way that individual Amazon EC2 instances terminate when an automatic
* scale-in activity occurs or an instance group is resized.
* TERMINATE_AT_INSTANCE_HOUR
indicates that Amazon EMR terminates
* nodes at the instance-hour boundary, regardless of when the request to terminate
* the instance was submitted. This option is only available with Amazon EMR 5.1.0
* and later and is the default for clusters created using that version.
* TERMINATE_AT_TASK_COMPLETION
indicates that Amazon EMR adds nodes
* to a deny list and drains tasks from nodes before terminating the Amazon EC2
* instances, regardless of the instance-hour boundary. With either behavior,
* Amazon EMR removes the least active nodes first and blocks instance termination
* if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
* available only in Amazon EMR releases 4.1.0 and later, and is the default for
* releases of Amazon EMR earlier than 5.1.0.