/** * 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 namespace Aws { namespace EMR { namespace Model { /** *

Input to the RunJobFlow operation.

See Also:

AWS * API Reference

*/ class RunJobFlowRequest : public EMRRequest { public: AWS_EMR_API RunJobFlowRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "RunJobFlow"; } AWS_EMR_API Aws::String SerializePayload() const override; AWS_EMR_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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 RunJobFlowRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the job flow.

*/ inline RunJobFlowRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the job flow.

*/ inline RunJobFlowRequest& WithName(const char* value) { SetName(value); return *this;} /** *

The location in Amazon S3 to write the log files of the job flow. If a value * is not provided, logs are not created.

*/ inline const Aws::String& GetLogUri() const{ return m_logUri; } /** *

The location in Amazon S3 to write the log files of the job flow. If a value * is not provided, logs are not created.

*/ inline bool LogUriHasBeenSet() const { return m_logUriHasBeenSet; } /** *

The location in Amazon S3 to write the log files of the job flow. If a value * is not provided, logs are not created.

*/ inline void SetLogUri(const Aws::String& value) { m_logUriHasBeenSet = true; m_logUri = value; } /** *

The location in Amazon S3 to write the log files of the job flow. If a value * is not provided, logs are not created.

*/ inline void SetLogUri(Aws::String&& value) { m_logUriHasBeenSet = true; m_logUri = std::move(value); } /** *

The location in Amazon S3 to write the log files of the job flow. If a value * is not provided, logs are not created.

*/ inline void SetLogUri(const char* value) { m_logUriHasBeenSet = true; m_logUri.assign(value); } /** *

The location in Amazon S3 to write the log files of the job flow. If a value * is not provided, logs are not created.

*/ inline RunJobFlowRequest& WithLogUri(const Aws::String& value) { SetLogUri(value); return *this;} /** *

The location in Amazon S3 to write the log files of the job flow. If a value * is not provided, logs are not created.

*/ inline RunJobFlowRequest& WithLogUri(Aws::String&& value) { SetLogUri(std::move(value)); return *this;} /** *

The location in Amazon S3 to write the log files of the job flow. If a value * is not provided, logs are not created.

*/ inline RunJobFlowRequest& WithLogUri(const char* value) { SetLogUri(value); return *this;} /** *

The KMS key used for encrypting log files. If a value is not provided, the * logs remain encrypted by AES-256. This attribute is only available with Amazon * EMR releases 5.30.0 and later, excluding Amazon EMR 6.0.0.

*/ inline const Aws::String& GetLogEncryptionKmsKeyId() const{ return m_logEncryptionKmsKeyId; } /** *

The KMS key used for encrypting log files. If a value is not provided, the * logs remain encrypted by AES-256. This attribute is only available with Amazon * EMR releases 5.30.0 and later, excluding Amazon EMR 6.0.0.

*/ inline bool LogEncryptionKmsKeyIdHasBeenSet() const { return m_logEncryptionKmsKeyIdHasBeenSet; } /** *

The KMS key used for encrypting log files. If a value is not provided, the * logs remain encrypted by AES-256. This attribute is only available with Amazon * EMR releases 5.30.0 and later, excluding Amazon EMR 6.0.0.

*/ inline void SetLogEncryptionKmsKeyId(const Aws::String& value) { m_logEncryptionKmsKeyIdHasBeenSet = true; m_logEncryptionKmsKeyId = value; } /** *

The KMS key used for encrypting log files. If a value is not provided, the * logs remain encrypted by AES-256. This attribute is only available with Amazon * EMR releases 5.30.0 and later, excluding Amazon EMR 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. If a value is not provided, the * logs remain encrypted by AES-256. This attribute is only available with Amazon * EMR releases 5.30.0 and later, excluding Amazon EMR 6.0.0.

*/ inline void SetLogEncryptionKmsKeyId(const char* value) { m_logEncryptionKmsKeyIdHasBeenSet = true; m_logEncryptionKmsKeyId.assign(value); } /** *

The KMS key used for encrypting log files. If a value is not provided, the * logs remain encrypted by AES-256. This attribute is only available with Amazon * EMR releases 5.30.0 and later, excluding Amazon EMR 6.0.0.

*/ inline RunJobFlowRequest& WithLogEncryptionKmsKeyId(const Aws::String& value) { SetLogEncryptionKmsKeyId(value); return *this;} /** *

The KMS key used for encrypting log files. If a value is not provided, the * logs remain encrypted by AES-256. This attribute is only available with Amazon * EMR releases 5.30.0 and later, excluding Amazon EMR 6.0.0.

*/ inline RunJobFlowRequest& WithLogEncryptionKmsKeyId(Aws::String&& value) { SetLogEncryptionKmsKeyId(std::move(value)); return *this;} /** *

The KMS key used for encrypting log files. If a value is not provided, the * logs remain encrypted by AES-256. This attribute is only available with Amazon * EMR releases 5.30.0 and later, excluding Amazon EMR 6.0.0.

*/ inline RunJobFlowRequest& WithLogEncryptionKmsKeyId(const char* value) { SetLogEncryptionKmsKeyId(value); return *this;} /** *

A JSON string for selecting additional features.

*/ inline const Aws::String& GetAdditionalInfo() const{ return m_additionalInfo; } /** *

A JSON string for selecting additional features.

*/ inline bool AdditionalInfoHasBeenSet() const { return m_additionalInfoHasBeenSet; } /** *

A JSON string for selecting additional features.

*/ inline void SetAdditionalInfo(const Aws::String& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = value; } /** *

A JSON string for selecting additional features.

*/ inline void SetAdditionalInfo(Aws::String&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = std::move(value); } /** *

A JSON string for selecting additional features.

*/ inline void SetAdditionalInfo(const char* value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.assign(value); } /** *

A JSON string for selecting additional features.

*/ inline RunJobFlowRequest& WithAdditionalInfo(const Aws::String& value) { SetAdditionalInfo(value); return *this;} /** *

A JSON string for selecting additional features.

*/ inline RunJobFlowRequest& WithAdditionalInfo(Aws::String&& value) { SetAdditionalInfo(std::move(value)); return *this;} /** *

A JSON string for selecting additional features.

*/ inline RunJobFlowRequest& WithAdditionalInfo(const char* value) { SetAdditionalInfo(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.

*/ inline const Aws::String& GetAmiVersion() const{ return m_amiVersion; } /** *

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.

*/ inline bool AmiVersionHasBeenSet() const { return m_amiVersionHasBeenSet; } /** *

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.

*/ inline void SetAmiVersion(const Aws::String& value) { m_amiVersionHasBeenSet = true; m_amiVersion = value; } /** *

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.

*/ inline void SetAmiVersion(Aws::String&& value) { m_amiVersionHasBeenSet = true; m_amiVersion = std::move(value); } /** *

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.

*/ inline void SetAmiVersion(const char* value) { m_amiVersionHasBeenSet = true; m_amiVersion.assign(value); } /** *

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.

*/ inline RunJobFlowRequest& WithAmiVersion(const Aws::String& value) { SetAmiVersion(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.

*/ inline RunJobFlowRequest& WithAmiVersion(Aws::String&& value) { SetAmiVersion(std::move(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.

*/ inline RunJobFlowRequest& WithAmiVersion(const char* value) { SetAmiVersion(value); return *this;} /** *

The Amazon EMR release label, which determines the version of open-source * application packages installed on the cluster. Release labels are in the form * emr-x.x.x, where x.x.x is an Amazon EMR release version such as * emr-5.14.0. For more information about Amazon EMR release versions * and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. * The release label applies only to Amazon EMR releases version 4.0 and later. * Earlier versions use AmiVersion.

*/ inline const Aws::String& GetReleaseLabel() const{ return m_releaseLabel; } /** *

The Amazon EMR release label, which determines the version of open-source * application packages installed on the cluster. Release labels are in the form * emr-x.x.x, where x.x.x is an Amazon EMR release version such as * emr-5.14.0. For more information about Amazon EMR release versions * and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. * The release label applies only to Amazon EMR releases version 4.0 and later. * Earlier versions use AmiVersion.

*/ inline bool ReleaseLabelHasBeenSet() const { return m_releaseLabelHasBeenSet; } /** *

The Amazon EMR release label, which determines the version of open-source * application packages installed on the cluster. Release labels are in the form * emr-x.x.x, where x.x.x is an Amazon EMR release version such as * emr-5.14.0. For more information about Amazon EMR release versions * and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. * The release label applies only to Amazon EMR releases version 4.0 and later. * Earlier versions use AmiVersion.

*/ inline void SetReleaseLabel(const Aws::String& value) { m_releaseLabelHasBeenSet = true; m_releaseLabel = value; } /** *

The Amazon EMR release label, which determines the version of open-source * application packages installed on the cluster. Release labels are in the form * emr-x.x.x, where x.x.x is an Amazon EMR release version such as * emr-5.14.0. For more information about Amazon EMR release versions * and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. * The release label applies only to Amazon EMR releases version 4.0 and later. * Earlier versions use AmiVersion.

*/ inline void SetReleaseLabel(Aws::String&& value) { m_releaseLabelHasBeenSet = true; m_releaseLabel = std::move(value); } /** *

The Amazon EMR release label, which determines the version of open-source * application packages installed on the cluster. Release labels are in the form * emr-x.x.x, where x.x.x is an Amazon EMR release version such as * emr-5.14.0. For more information about Amazon EMR release versions * and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. * The release label applies only to Amazon EMR releases version 4.0 and later. * Earlier versions use AmiVersion.

*/ inline void SetReleaseLabel(const char* value) { m_releaseLabelHasBeenSet = true; m_releaseLabel.assign(value); } /** *

The Amazon EMR release label, which determines the version of open-source * application packages installed on the cluster. Release labels are in the form * emr-x.x.x, where x.x.x is an Amazon EMR release version such as * emr-5.14.0. For more information about Amazon EMR release versions * and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. * The release label applies only to Amazon EMR releases version 4.0 and later. * Earlier versions use AmiVersion.

*/ inline RunJobFlowRequest& WithReleaseLabel(const Aws::String& value) { SetReleaseLabel(value); return *this;} /** *

The Amazon EMR release label, which determines the version of open-source * application packages installed on the cluster. Release labels are in the form * emr-x.x.x, where x.x.x is an Amazon EMR release version such as * emr-5.14.0. For more information about Amazon EMR release versions * and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. * The release label applies only to Amazon EMR releases version 4.0 and later. * Earlier versions use AmiVersion.

*/ inline RunJobFlowRequest& WithReleaseLabel(Aws::String&& value) { SetReleaseLabel(std::move(value)); return *this;} /** *

The Amazon EMR release label, which determines the version of open-source * application packages installed on the cluster. Release labels are in the form * emr-x.x.x, where x.x.x is an Amazon EMR release version such as * emr-5.14.0. For more information about Amazon EMR release versions * and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. * The release label applies only to Amazon EMR releases version 4.0 and later. * Earlier versions use AmiVersion.

*/ inline RunJobFlowRequest& WithReleaseLabel(const char* value) { SetReleaseLabel(value); return *this;} /** *

A specification of the number and type of Amazon EC2 instances.

*/ inline const JobFlowInstancesConfig& GetInstances() const{ return m_instances; } /** *

A specification of the number and type of Amazon EC2 instances.

*/ inline bool InstancesHasBeenSet() const { return m_instancesHasBeenSet; } /** *

A specification of the number and type of Amazon EC2 instances.

*/ inline void SetInstances(const JobFlowInstancesConfig& value) { m_instancesHasBeenSet = true; m_instances = value; } /** *

A specification of the number and type of Amazon EC2 instances.

*/ inline void SetInstances(JobFlowInstancesConfig&& value) { m_instancesHasBeenSet = true; m_instances = std::move(value); } /** *

A specification of the number and type of Amazon EC2 instances.

*/ inline RunJobFlowRequest& WithInstances(const JobFlowInstancesConfig& value) { SetInstances(value); return *this;} /** *

A specification of the number and type of Amazon EC2 instances.

*/ inline RunJobFlowRequest& WithInstances(JobFlowInstancesConfig&& value) { SetInstances(std::move(value)); return *this;} /** *

A list of steps to run.

*/ inline const Aws::Vector& GetSteps() const{ return m_steps; } /** *

A list of steps to run.

*/ inline bool StepsHasBeenSet() const { return m_stepsHasBeenSet; } /** *

A list of steps to run.

*/ inline void SetSteps(const Aws::Vector& value) { m_stepsHasBeenSet = true; m_steps = value; } /** *

A list of steps to run.

*/ inline void SetSteps(Aws::Vector&& value) { m_stepsHasBeenSet = true; m_steps = std::move(value); } /** *

A list of steps to run.

*/ inline RunJobFlowRequest& WithSteps(const Aws::Vector& value) { SetSteps(value); return *this;} /** *

A list of steps to run.

*/ inline RunJobFlowRequest& WithSteps(Aws::Vector&& value) { SetSteps(std::move(value)); return *this;} /** *

A list of steps to run.

*/ inline RunJobFlowRequest& AddSteps(const StepConfig& value) { m_stepsHasBeenSet = true; m_steps.push_back(value); return *this; } /** *

A list of steps to run.

*/ inline RunJobFlowRequest& AddSteps(StepConfig&& value) { m_stepsHasBeenSet = true; m_steps.push_back(std::move(value)); return *this; } /** *

A list of bootstrap actions to run before Hadoop starts on the cluster * nodes.

*/ inline const Aws::Vector& GetBootstrapActions() const{ return m_bootstrapActions; } /** *

A list of bootstrap actions to run before Hadoop starts on the cluster * nodes.

*/ inline bool BootstrapActionsHasBeenSet() const { return m_bootstrapActionsHasBeenSet; } /** *

A list of bootstrap actions to run before Hadoop starts on the cluster * nodes.

*/ inline void SetBootstrapActions(const Aws::Vector& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions = value; } /** *

A list of bootstrap actions to run before Hadoop starts on the cluster * nodes.

*/ inline void SetBootstrapActions(Aws::Vector&& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions = std::move(value); } /** *

A list of bootstrap actions to run before Hadoop starts on the cluster * nodes.

*/ inline RunJobFlowRequest& WithBootstrapActions(const Aws::Vector& value) { SetBootstrapActions(value); return *this;} /** *

A list of bootstrap actions to run before Hadoop starts on the cluster * nodes.

*/ inline RunJobFlowRequest& WithBootstrapActions(Aws::Vector&& value) { SetBootstrapActions(std::move(value)); return *this;} /** *

A list of bootstrap actions to run before Hadoop starts on the cluster * nodes.

*/ inline RunJobFlowRequest& AddBootstrapActions(const BootstrapActionConfig& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions.push_back(value); return *this; } /** *

A list of bootstrap actions to run before Hadoop starts on the cluster * nodes.

*/ inline RunJobFlowRequest& AddBootstrapActions(BootstrapActionConfig&& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions.push_back(std::move(value)); return *this; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline const Aws::Vector& GetSupportedProducts() const{ return m_supportedProducts; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline bool SupportedProductsHasBeenSet() const { return m_supportedProductsHasBeenSet; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline void SetSupportedProducts(const Aws::Vector& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts = value; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline void SetSupportedProducts(Aws::Vector&& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts = std::move(value); } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline RunJobFlowRequest& WithSupportedProducts(const Aws::Vector& value) { SetSupportedProducts(value); return *this;} /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline RunJobFlowRequest& WithSupportedProducts(Aws::Vector&& value) { SetSupportedProducts(std::move(value)); return *this;} /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline RunJobFlowRequest& AddSupportedProducts(const Aws::String& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(value); return *this; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline RunJobFlowRequest& AddSupportedProducts(Aws::String&& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(std::move(value)); return *this; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use. For more information, see the Amazon * EMR Developer Guide. Currently supported values are:

  • *

    "mapr-m3" - launch the job flow using MapR M3 Edition.

  • *

    "mapr-m5" - launch the job flow using MapR M5 Edition.

*/ inline RunJobFlowRequest& AddSupportedProducts(const char* value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(value); return *this; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use with the job flow that accepts a user argument list. * Amazon EMR accepts and forwards the argument list to the corresponding * installation script as bootstrap action arguments. For more information, see * "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon * EMR Developer Guide. Supported values are:

  • "mapr-m3" - * launch the cluster using MapR M3 Edition.

  • "mapr-m5" - launch * the cluster using MapR M5 Edition.

  • "mapr" with the user * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow * using MapR M3 or M5 Edition respectively.

  • "mapr-m7" - launch * the cluster using MapR M7 Edition.

  • "hunk" - launch the cluster * with the Hunk Big Data Analytics Platform.

  • "hue"- launch the * cluster with Hue installed.

  • "spark" - launch the cluster with * Apache Spark installed.

  • "ganglia" - launch the cluster with * the Ganglia Monitoring System installed.

*/ inline const Aws::Vector& GetNewSupportedProducts() const{ return m_newSupportedProducts; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use with the job flow that accepts a user argument list. * Amazon EMR accepts and forwards the argument list to the corresponding * installation script as bootstrap action arguments. For more information, see * "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon * EMR Developer Guide. Supported values are:

  • "mapr-m3" - * launch the cluster using MapR M3 Edition.

  • "mapr-m5" - launch * the cluster using MapR M5 Edition.

  • "mapr" with the user * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow * using MapR M3 or M5 Edition respectively.

  • "mapr-m7" - launch * the cluster using MapR M7 Edition.

  • "hunk" - launch the cluster * with the Hunk Big Data Analytics Platform.

  • "hue"- launch the * cluster with Hue installed.

  • "spark" - launch the cluster with * Apache Spark installed.

  • "ganglia" - launch the cluster with * the Ganglia Monitoring System installed.

*/ inline bool NewSupportedProductsHasBeenSet() const { return m_newSupportedProductsHasBeenSet; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use with the job flow that accepts a user argument list. * Amazon EMR accepts and forwards the argument list to the corresponding * installation script as bootstrap action arguments. For more information, see * "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon * EMR Developer Guide. Supported values are:

  • "mapr-m3" - * launch the cluster using MapR M3 Edition.

  • "mapr-m5" - launch * the cluster using MapR M5 Edition.

  • "mapr" with the user * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow * using MapR M3 or M5 Edition respectively.

  • "mapr-m7" - launch * the cluster using MapR M7 Edition.

  • "hunk" - launch the cluster * with the Hunk Big Data Analytics Platform.

  • "hue"- launch the * cluster with Hue installed.

  • "spark" - launch the cluster with * Apache Spark installed.

  • "ganglia" - launch the cluster with * the Ganglia Monitoring System installed.

*/ inline void SetNewSupportedProducts(const Aws::Vector& value) { m_newSupportedProductsHasBeenSet = true; m_newSupportedProducts = value; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use with the job flow that accepts a user argument list. * Amazon EMR accepts and forwards the argument list to the corresponding * installation script as bootstrap action arguments. For more information, see * "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon * EMR Developer Guide. Supported values are:

  • "mapr-m3" - * launch the cluster using MapR M3 Edition.

  • "mapr-m5" - launch * the cluster using MapR M5 Edition.

  • "mapr" with the user * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow * using MapR M3 or M5 Edition respectively.

  • "mapr-m7" - launch * the cluster using MapR M7 Edition.

  • "hunk" - launch the cluster * with the Hunk Big Data Analytics Platform.

  • "hue"- launch the * cluster with Hue installed.

  • "spark" - launch the cluster with * Apache Spark installed.

  • "ganglia" - launch the cluster with * the Ganglia Monitoring System installed.

*/ inline void SetNewSupportedProducts(Aws::Vector&& value) { m_newSupportedProductsHasBeenSet = true; m_newSupportedProducts = std::move(value); } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use with the job flow that accepts a user argument list. * Amazon EMR accepts and forwards the argument list to the corresponding * installation script as bootstrap action arguments. For more information, see * "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon * EMR Developer Guide. Supported values are:

  • "mapr-m3" - * launch the cluster using MapR M3 Edition.

  • "mapr-m5" - launch * the cluster using MapR M5 Edition.

  • "mapr" with the user * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow * using MapR M3 or M5 Edition respectively.

  • "mapr-m7" - launch * the cluster using MapR M7 Edition.

  • "hunk" - launch the cluster * with the Hunk Big Data Analytics Platform.

  • "hue"- launch the * cluster with Hue installed.

  • "spark" - launch the cluster with * Apache Spark installed.

  • "ganglia" - launch the cluster with * the Ganglia Monitoring System installed.

*/ inline RunJobFlowRequest& WithNewSupportedProducts(const Aws::Vector& value) { SetNewSupportedProducts(value); return *this;} /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use with the job flow that accepts a user argument list. * Amazon EMR accepts and forwards the argument list to the corresponding * installation script as bootstrap action arguments. For more information, see * "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon * EMR Developer Guide. Supported values are:

  • "mapr-m3" - * launch the cluster using MapR M3 Edition.

  • "mapr-m5" - launch * the cluster using MapR M5 Edition.

  • "mapr" with the user * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow * using MapR M3 or M5 Edition respectively.

  • "mapr-m7" - launch * the cluster using MapR M7 Edition.

  • "hunk" - launch the cluster * with the Hunk Big Data Analytics Platform.

  • "hue"- launch the * cluster with Hue installed.

  • "spark" - launch the cluster with * Apache Spark installed.

  • "ganglia" - launch the cluster with * the Ganglia Monitoring System installed.

*/ inline RunJobFlowRequest& WithNewSupportedProducts(Aws::Vector&& value) { SetNewSupportedProducts(std::move(value)); return *this;} /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use with the job flow that accepts a user argument list. * Amazon EMR accepts and forwards the argument list to the corresponding * installation script as bootstrap action arguments. For more information, see * "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon * EMR Developer Guide. Supported values are:

  • "mapr-m3" - * launch the cluster using MapR M3 Edition.

  • "mapr-m5" - launch * the cluster using MapR M5 Edition.

  • "mapr" with the user * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow * using MapR M3 or M5 Edition respectively.

  • "mapr-m7" - launch * the cluster using MapR M7 Edition.

  • "hunk" - launch the cluster * with the Hunk Big Data Analytics Platform.

  • "hue"- launch the * cluster with Hue installed.

  • "spark" - launch the cluster with * Apache Spark installed.

  • "ganglia" - launch the cluster with * the Ganglia Monitoring System installed.

*/ inline RunJobFlowRequest& AddNewSupportedProducts(const SupportedProductConfig& value) { m_newSupportedProductsHasBeenSet = true; m_newSupportedProducts.push_back(value); return *this; } /** *

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and * later, use Applications.

A list of strings that indicates * third-party software to use with the job flow that accepts a user argument list. * Amazon EMR accepts and forwards the argument list to the corresponding * installation script as bootstrap action arguments. For more information, see * "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon * EMR Developer Guide. Supported values are:

  • "mapr-m3" - * launch the cluster using MapR M3 Edition.

  • "mapr-m5" - launch * the cluster using MapR M5 Edition.

  • "mapr" with the user * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow * using MapR M3 or M5 Edition respectively.

  • "mapr-m7" - launch * the cluster using MapR M7 Edition.

  • "hunk" - launch the cluster * with the Hunk Big Data Analytics Platform.

  • "hue"- launch the * cluster with Hue installed.

  • "spark" - launch the cluster with * Apache Spark installed.

  • "ganglia" - launch the cluster with * the Ganglia Monitoring System installed.

*/ inline RunJobFlowRequest& AddNewSupportedProducts(SupportedProductConfig&& value) { m_newSupportedProductsHasBeenSet = true; m_newSupportedProducts.push_back(std::move(value)); return *this; } /** *

Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of * applications for Amazon EMR to install and configure when launching the cluster. * For a list of applications available for each Amazon EMR release version, see * the Amazon * EMRRelease Guide.

*/ inline const Aws::Vector& GetApplications() const{ return m_applications; } /** *

Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of * applications for Amazon EMR to install and configure when launching the cluster. * For a list of applications available for each Amazon EMR release version, see * the Amazon * EMRRelease Guide.

*/ inline bool ApplicationsHasBeenSet() const { return m_applicationsHasBeenSet; } /** *

Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of * applications for Amazon EMR to install and configure when launching the cluster. * For a list of applications available for each Amazon EMR release version, see * the Amazon * EMRRelease Guide.

*/ inline void SetApplications(const Aws::Vector& value) { m_applicationsHasBeenSet = true; m_applications = value; } /** *

Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of * applications for Amazon EMR to install and configure when launching the cluster. * For a list of applications available for each Amazon EMR release version, see * the Amazon * EMRRelease Guide.

*/ inline void SetApplications(Aws::Vector&& value) { m_applicationsHasBeenSet = true; m_applications = std::move(value); } /** *

Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of * applications for Amazon EMR to install and configure when launching the cluster. * For a list of applications available for each Amazon EMR release version, see * the Amazon * EMRRelease Guide.

*/ inline RunJobFlowRequest& WithApplications(const Aws::Vector& value) { SetApplications(value); return *this;} /** *

Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of * applications for Amazon EMR to install and configure when launching the cluster. * For a list of applications available for each Amazon EMR release version, see * the Amazon * EMRRelease Guide.

*/ inline RunJobFlowRequest& WithApplications(Aws::Vector&& value) { SetApplications(std::move(value)); return *this;} /** *

Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of * applications for Amazon EMR to install and configure when launching the cluster. * For a list of applications available for each Amazon EMR release version, see * the Amazon * EMRRelease Guide.

*/ inline RunJobFlowRequest& AddApplications(const Application& value) { m_applicationsHasBeenSet = true; m_applications.push_back(value); return *this; } /** *

Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of * applications for Amazon EMR to install and configure when launching the cluster. * For a list of applications available for each Amazon EMR release version, see * the Amazon * EMRRelease Guide.

*/ inline RunJobFlowRequest& AddApplications(Application&& value) { m_applicationsHasBeenSet = true; m_applications.push_back(std::move(value)); return *this; } /** *

For Amazon EMR releases 4.0 and later. The list of configurations supplied * for the Amazon EMR cluster that you are creating.

*/ inline const Aws::Vector& GetConfigurations() const{ return m_configurations; } /** *

For Amazon EMR releases 4.0 and later. The list of configurations supplied * for the Amazon EMR cluster that you are creating.

*/ inline bool ConfigurationsHasBeenSet() const { return m_configurationsHasBeenSet; } /** *

For Amazon EMR releases 4.0 and later. The list of configurations supplied * for the Amazon EMR cluster that you are creating.

*/ inline void SetConfigurations(const Aws::Vector& value) { m_configurationsHasBeenSet = true; m_configurations = value; } /** *

For Amazon EMR releases 4.0 and later. The list of configurations supplied * for the Amazon EMR cluster that you are creating.

*/ inline void SetConfigurations(Aws::Vector&& value) { m_configurationsHasBeenSet = true; m_configurations = std::move(value); } /** *

For Amazon EMR releases 4.0 and later. The list of configurations supplied * for the Amazon EMR cluster that you are creating.

*/ inline RunJobFlowRequest& WithConfigurations(const Aws::Vector& value) { SetConfigurations(value); return *this;} /** *

For Amazon EMR releases 4.0 and later. The list of configurations supplied * for the Amazon EMR cluster that you are creating.

*/ inline RunJobFlowRequest& WithConfigurations(Aws::Vector&& value) { SetConfigurations(std::move(value)); return *this;} /** *

For Amazon EMR releases 4.0 and later. The list of configurations supplied * for the Amazon EMR cluster that you are creating.

*/ inline RunJobFlowRequest& AddConfigurations(const Configuration& value) { m_configurationsHasBeenSet = true; m_configurations.push_back(value); return *this; } /** *

For Amazon EMR releases 4.0 and later. The list of configurations supplied * for the Amazon EMR cluster that you are creating.

*/ inline RunJobFlowRequest& AddConfigurations(Configuration&& value) { m_configurationsHasBeenSet = true; m_configurations.push_back(std::move(value)); return *this; } /** *

The VisibleToAllUsers parameter is no longer supported. By * default, the value is set to true. Setting it to false * now has no effect.

Set this value to true so * that IAM principals in the Amazon Web Services account associated with the * cluster can perform Amazon EMR actions on the cluster that their IAM policies * allow. This value defaults to true for clusters created using the * Amazon EMR API or the CLI create-cluster * command.

When set to false, only the IAM principal that * created the cluster and the Amazon Web Services account root user can perform * Amazon EMR actions for the cluster, regardless of the IAM permissions policies * attached to other IAM principals. For more information, see Understanding * the Amazon EMR cluster VisibleToAllUsers setting in the Amazon EMR * Management Guide.

*/ inline bool GetVisibleToAllUsers() const{ return m_visibleToAllUsers; } /** *

The VisibleToAllUsers parameter is no longer supported. By * default, the value is set to true. Setting it to false * now has no effect.

Set this value to true so * that IAM principals in the Amazon Web Services account associated with the * cluster can perform Amazon EMR actions on the cluster that their IAM policies * allow. This value defaults to true for clusters created using the * Amazon EMR API or the CLI create-cluster * command.

When set to false, only the IAM principal that * created the cluster and the Amazon Web Services account root user can perform * Amazon EMR actions for the cluster, regardless of the IAM permissions policies * attached to other IAM principals. For more information, see Understanding * the Amazon EMR cluster VisibleToAllUsers setting in the Amazon EMR * Management Guide.

*/ inline bool VisibleToAllUsersHasBeenSet() const { return m_visibleToAllUsersHasBeenSet; } /** *

The VisibleToAllUsers parameter is no longer supported. By * default, the value is set to true. Setting it to false * now has no effect.

Set this value to true so * that IAM principals in the Amazon Web Services account associated with the * cluster can perform Amazon EMR actions on the cluster that their IAM policies * allow. This value defaults to true for clusters created using the * Amazon EMR API or the CLI create-cluster * command.

When set to false, only the IAM principal that * created the cluster and the Amazon Web Services account root user can perform * Amazon EMR actions for the cluster, regardless of the IAM permissions policies * attached to other IAM principals. For more information, see Understanding * the Amazon EMR cluster VisibleToAllUsers setting in the Amazon EMR * Management Guide.

*/ inline void SetVisibleToAllUsers(bool value) { m_visibleToAllUsersHasBeenSet = true; m_visibleToAllUsers = value; } /** *

The VisibleToAllUsers parameter is no longer supported. By * default, the value is set to true. Setting it to false * now has no effect.

Set this value to true so * that IAM principals in the Amazon Web Services account associated with the * cluster can perform Amazon EMR actions on the cluster that their IAM policies * allow. This value defaults to true for clusters created using the * Amazon EMR API or the CLI create-cluster * command.

When set to false, only the IAM principal that * created the cluster and the Amazon Web Services account root user can perform * Amazon EMR actions for the cluster, regardless of the IAM permissions policies * attached to other IAM principals. For more information, see Understanding * the Amazon EMR cluster VisibleToAllUsers setting in the Amazon EMR * Management Guide.

*/ inline RunJobFlowRequest& WithVisibleToAllUsers(bool value) { SetVisibleToAllUsers(value); return *this;} /** *

Also called instance profile and Amazon EC2 role. An IAM role for an Amazon * EMR cluster. The Amazon EC2 instances of the cluster assume this role. The * default role is EMR_EC2_DefaultRole. In order to use the default * role, you must have already created it using the CLI or console.

*/ inline const Aws::String& GetJobFlowRole() const{ return m_jobFlowRole; } /** *

Also called instance profile and Amazon EC2 role. An IAM role for an Amazon * EMR cluster. The Amazon EC2 instances of the cluster assume this role. The * default role is EMR_EC2_DefaultRole. In order to use the default * role, you must have already created it using the CLI or console.

*/ inline bool JobFlowRoleHasBeenSet() const { return m_jobFlowRoleHasBeenSet; } /** *

Also called instance profile and Amazon EC2 role. An IAM role for an Amazon * EMR cluster. The Amazon EC2 instances of the cluster assume this role. The * default role is EMR_EC2_DefaultRole. In order to use the default * role, you must have already created it using the CLI or console.

*/ inline void SetJobFlowRole(const Aws::String& value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole = value; } /** *

Also called instance profile and Amazon EC2 role. An IAM role for an Amazon * EMR cluster. The Amazon EC2 instances of the cluster assume this role. The * default role is EMR_EC2_DefaultRole. In order to use the default * role, you must have already created it using the CLI or console.

*/ inline void SetJobFlowRole(Aws::String&& value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole = std::move(value); } /** *

Also called instance profile and Amazon EC2 role. An IAM role for an Amazon * EMR cluster. The Amazon EC2 instances of the cluster assume this role. The * default role is EMR_EC2_DefaultRole. In order to use the default * role, you must have already created it using the CLI or console.

*/ inline void SetJobFlowRole(const char* value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole.assign(value); } /** *

Also called instance profile and Amazon EC2 role. An IAM role for an Amazon * EMR cluster. The Amazon EC2 instances of the cluster assume this role. The * default role is EMR_EC2_DefaultRole. In order to use the default * role, you must have already created it using the CLI or console.

*/ inline RunJobFlowRequest& WithJobFlowRole(const Aws::String& value) { SetJobFlowRole(value); return *this;} /** *

Also called instance profile and Amazon EC2 role. An IAM role for an Amazon * EMR cluster. The Amazon EC2 instances of the cluster assume this role. The * default role is EMR_EC2_DefaultRole. In order to use the default * role, you must have already created it using the CLI or console.

*/ inline RunJobFlowRequest& WithJobFlowRole(Aws::String&& value) { SetJobFlowRole(std::move(value)); return *this;} /** *

Also called instance profile and Amazon EC2 role. An IAM role for an Amazon * EMR cluster. The Amazon EC2 instances of the cluster assume this role. The * default role is EMR_EC2_DefaultRole. In order to use the default * role, you must have already created it using the CLI or console.

*/ inline RunJobFlowRequest& WithJobFlowRole(const char* value) { SetJobFlowRole(value); return *this;} /** *

The IAM role that Amazon EMR assumes in order to access Amazon Web Services * resources on your behalf. If you've created a custom service role path, you must * specify it for the service role when you launch your cluster.

*/ inline const Aws::String& GetServiceRole() const{ return m_serviceRole; } /** *

The IAM role that Amazon EMR assumes in order to access Amazon Web Services * resources on your behalf. If you've created a custom service role path, you must * specify it for the service role when you launch your cluster.

*/ inline bool ServiceRoleHasBeenSet() const { return m_serviceRoleHasBeenSet; } /** *

The IAM role that Amazon EMR assumes in order to access Amazon Web Services * resources on your behalf. If you've created a custom service role path, you must * specify it for the service role when you launch your cluster.

*/ inline void SetServiceRole(const Aws::String& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = value; } /** *

The IAM role that Amazon EMR assumes in order to access Amazon Web Services * resources on your behalf. If you've created a custom service role path, you must * specify it for the service role when you launch your cluster.

*/ inline void SetServiceRole(Aws::String&& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = std::move(value); } /** *

The IAM role that Amazon EMR assumes in order to access Amazon Web Services * resources on your behalf. If you've created a custom service role path, you must * specify it for the service role when you launch your cluster.

*/ inline void SetServiceRole(const char* value) { m_serviceRoleHasBeenSet = true; m_serviceRole.assign(value); } /** *

The IAM role that Amazon EMR assumes in order to access Amazon Web Services * resources on your behalf. If you've created a custom service role path, you must * specify it for the service role when you launch your cluster.

*/ inline RunJobFlowRequest& WithServiceRole(const Aws::String& value) { SetServiceRole(value); return *this;} /** *

The IAM role that Amazon EMR assumes in order to access Amazon Web Services * resources on your behalf. If you've created a custom service role path, you must * specify it for the service role when you launch your cluster.

*/ inline RunJobFlowRequest& WithServiceRole(Aws::String&& value) { SetServiceRole(std::move(value)); return *this;} /** *

The IAM role that Amazon EMR assumes in order to access Amazon Web Services * resources on your behalf. If you've created a custom service role path, you must * specify it for the service role when you launch your cluster.

*/ inline RunJobFlowRequest& WithServiceRole(const char* value) { SetServiceRole(value); return *this;} /** *

A list of tags to associate with a cluster and propagate to Amazon EC2 * instances.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of tags to associate with a cluster and propagate to Amazon EC2 * instances.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of tags to associate with a cluster and propagate to Amazon EC2 * instances.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of tags to associate with a cluster and propagate to Amazon EC2 * instances.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of tags to associate with a cluster and propagate to Amazon EC2 * instances.

*/ inline RunJobFlowRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of tags to associate with a cluster and propagate to Amazon EC2 * instances.

*/ inline RunJobFlowRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of tags to associate with a cluster and propagate to Amazon EC2 * instances.

*/ inline RunJobFlowRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of tags to associate with a cluster and propagate to Amazon EC2 * instances.

*/ inline RunJobFlowRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The name of a security configuration to apply to the cluster.

*/ inline const Aws::String& GetSecurityConfiguration() const{ return m_securityConfiguration; } /** *

The name of a security configuration to apply to the cluster.

*/ inline bool SecurityConfigurationHasBeenSet() const { return m_securityConfigurationHasBeenSet; } /** *

The name of a security configuration to apply to the cluster.

*/ inline void SetSecurityConfiguration(const Aws::String& value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration = value; } /** *

The name of a security configuration to apply to the cluster.

*/ inline void SetSecurityConfiguration(Aws::String&& value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration = std::move(value); } /** *

The name of a security configuration to apply to the cluster.

*/ inline void SetSecurityConfiguration(const char* value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration.assign(value); } /** *

The name of a security configuration to apply to the cluster.

*/ inline RunJobFlowRequest& WithSecurityConfiguration(const Aws::String& value) { SetSecurityConfiguration(value); return *this;} /** *

The name of a security configuration to apply to the cluster.

*/ inline RunJobFlowRequest& WithSecurityConfiguration(Aws::String&& value) { SetSecurityConfiguration(std::move(value)); return *this;} /** *

The name of a security configuration to apply to the cluster.

*/ inline RunJobFlowRequest& WithSecurityConfiguration(const char* value) { SetSecurityConfiguration(value); return *this;} /** *

An IAM role for automatic scaling policies. The default role is * EMR_AutoScaling_DefaultRole. The IAM role provides permissions that * the automatic scaling feature requires to launch and terminate Amazon EC2 * instances in an instance group.

*/ inline const Aws::String& GetAutoScalingRole() const{ return m_autoScalingRole; } /** *

An IAM role for automatic scaling policies. The default role is * EMR_AutoScaling_DefaultRole. The IAM role provides permissions that * the automatic scaling feature requires to launch and terminate Amazon EC2 * instances in an instance group.

*/ inline bool AutoScalingRoleHasBeenSet() const { return m_autoScalingRoleHasBeenSet; } /** *

An IAM role for automatic scaling policies. The default role is * EMR_AutoScaling_DefaultRole. The IAM role provides permissions that * the automatic scaling feature requires to launch and terminate Amazon EC2 * instances in an instance group.

*/ inline void SetAutoScalingRole(const Aws::String& value) { m_autoScalingRoleHasBeenSet = true; m_autoScalingRole = value; } /** *

An IAM role for automatic scaling policies. The default role is * EMR_AutoScaling_DefaultRole. The IAM role provides permissions that * the automatic scaling feature requires to launch and terminate Amazon EC2 * instances in an instance group.

*/ inline void SetAutoScalingRole(Aws::String&& value) { m_autoScalingRoleHasBeenSet = true; m_autoScalingRole = std::move(value); } /** *

An IAM role for automatic scaling policies. The default role is * EMR_AutoScaling_DefaultRole. The IAM role provides permissions that * the automatic scaling feature requires to launch and terminate Amazon EC2 * instances in an instance group.

*/ inline void SetAutoScalingRole(const char* value) { m_autoScalingRoleHasBeenSet = true; m_autoScalingRole.assign(value); } /** *

An IAM role for automatic scaling policies. The default role is * EMR_AutoScaling_DefaultRole. The IAM role provides permissions that * the automatic scaling feature requires to launch and terminate Amazon EC2 * instances in an instance group.

*/ inline RunJobFlowRequest& WithAutoScalingRole(const Aws::String& value) { SetAutoScalingRole(value); return *this;} /** *

An IAM role for automatic scaling policies. The default role is * EMR_AutoScaling_DefaultRole. The IAM role provides permissions that * the automatic scaling feature requires to launch and terminate Amazon EC2 * instances in an instance group.

*/ inline RunJobFlowRequest& WithAutoScalingRole(Aws::String&& value) { SetAutoScalingRole(std::move(value)); return *this;} /** *

An IAM role for automatic scaling policies. The default role is * EMR_AutoScaling_DefaultRole. The IAM role provides permissions that * the automatic scaling feature requires to launch and terminate Amazon EC2 * instances in an instance group.

*/ inline RunJobFlowRequest& WithAutoScalingRole(const char* value) { SetAutoScalingRole(value); return *this;} /** *

Specifies 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.

*/ inline const ScaleDownBehavior& GetScaleDownBehavior() const{ return m_scaleDownBehavior; } /** *

Specifies 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.

*/ inline bool ScaleDownBehaviorHasBeenSet() const { return m_scaleDownBehaviorHasBeenSet; } /** *

Specifies 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.

*/ inline void SetScaleDownBehavior(const ScaleDownBehavior& value) { m_scaleDownBehaviorHasBeenSet = true; m_scaleDownBehavior = value; } /** *

Specifies 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.

*/ inline void SetScaleDownBehavior(ScaleDownBehavior&& value) { m_scaleDownBehaviorHasBeenSet = true; m_scaleDownBehavior = std::move(value); } /** *

Specifies 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.

*/ inline RunJobFlowRequest& WithScaleDownBehavior(const ScaleDownBehavior& value) { SetScaleDownBehavior(value); return *this;} /** *

Specifies 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.

*/ inline RunJobFlowRequest& WithScaleDownBehavior(ScaleDownBehavior&& value) { SetScaleDownBehavior(std::move(value)); return *this;} /** *

Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it * launches cluster Amazon EC2 instances. For more information about custom AMIs in * Amazon EMR, see Using * a Custom AMI in the Amazon EMR Management Guide. If omitted, the * cluster uses the base Linux AMI for the ReleaseLabel specified. For * Amazon EMR releases 2.x and 3.x, use AmiVersion instead.

For * information about creating a custom AMI, see Creating * an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User * Guide for Linux Instances. For information about finding an AMI ID, see Finding * a Linux AMI.

*/ inline const Aws::String& GetCustomAmiId() const{ return m_customAmiId; } /** *

Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it * launches cluster Amazon EC2 instances. For more information about custom AMIs in * Amazon EMR, see Using * a Custom AMI in the Amazon EMR Management Guide. If omitted, the * cluster uses the base Linux AMI for the ReleaseLabel specified. For * Amazon EMR releases 2.x and 3.x, use AmiVersion instead.

For * information about creating a custom AMI, see Creating * an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User * Guide for Linux Instances. For information about finding an AMI ID, see Finding * a Linux AMI.

*/ inline bool CustomAmiIdHasBeenSet() const { return m_customAmiIdHasBeenSet; } /** *

Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it * launches cluster Amazon EC2 instances. For more information about custom AMIs in * Amazon EMR, see Using * a Custom AMI in the Amazon EMR Management Guide. If omitted, the * cluster uses the base Linux AMI for the ReleaseLabel specified. For * Amazon EMR releases 2.x and 3.x, use AmiVersion instead.

For * information about creating a custom AMI, see Creating * an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User * Guide for Linux Instances. For information about finding an AMI ID, see Finding * a Linux AMI.

*/ inline void SetCustomAmiId(const Aws::String& value) { m_customAmiIdHasBeenSet = true; m_customAmiId = value; } /** *

Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it * launches cluster Amazon EC2 instances. For more information about custom AMIs in * Amazon EMR, see Using * a Custom AMI in the Amazon EMR Management Guide. If omitted, the * cluster uses the base Linux AMI for the ReleaseLabel specified. For * Amazon EMR releases 2.x and 3.x, use AmiVersion instead.

For * information about creating a custom AMI, see Creating * an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User * Guide for Linux Instances. For information about finding an AMI ID, see Finding * a Linux AMI.

*/ inline void SetCustomAmiId(Aws::String&& value) { m_customAmiIdHasBeenSet = true; m_customAmiId = std::move(value); } /** *

Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it * launches cluster Amazon EC2 instances. For more information about custom AMIs in * Amazon EMR, see Using * a Custom AMI in the Amazon EMR Management Guide. If omitted, the * cluster uses the base Linux AMI for the ReleaseLabel specified. For * Amazon EMR releases 2.x and 3.x, use AmiVersion instead.

For * information about creating a custom AMI, see Creating * an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User * Guide for Linux Instances. For information about finding an AMI ID, see Finding * a Linux AMI.

*/ inline void SetCustomAmiId(const char* value) { m_customAmiIdHasBeenSet = true; m_customAmiId.assign(value); } /** *

Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it * launches cluster Amazon EC2 instances. For more information about custom AMIs in * Amazon EMR, see Using * a Custom AMI in the Amazon EMR Management Guide. If omitted, the * cluster uses the base Linux AMI for the ReleaseLabel specified. For * Amazon EMR releases 2.x and 3.x, use AmiVersion instead.

For * information about creating a custom AMI, see Creating * an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User * Guide for Linux Instances. For information about finding an AMI ID, see Finding * a Linux AMI.

*/ inline RunJobFlowRequest& WithCustomAmiId(const Aws::String& value) { SetCustomAmiId(value); return *this;} /** *

Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it * launches cluster Amazon EC2 instances. For more information about custom AMIs in * Amazon EMR, see Using * a Custom AMI in the Amazon EMR Management Guide. If omitted, the * cluster uses the base Linux AMI for the ReleaseLabel specified. For * Amazon EMR releases 2.x and 3.x, use AmiVersion instead.

For * information about creating a custom AMI, see Creating * an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User * Guide for Linux Instances. For information about finding an AMI ID, see Finding * a Linux AMI.

*/ inline RunJobFlowRequest& WithCustomAmiId(Aws::String&& value) { SetCustomAmiId(std::move(value)); return *this;} /** *

Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it * launches cluster Amazon EC2 instances. For more information about custom AMIs in * Amazon EMR, see Using * a Custom AMI in the Amazon EMR Management Guide. If omitted, the * cluster uses the base Linux AMI for the ReleaseLabel specified. For * Amazon EMR releases 2.x and 3.x, use AmiVersion instead.

For * information about creating a custom AMI, see Creating * an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User * Guide for Linux Instances. For information about finding an AMI ID, see Finding * a Linux AMI.

*/ inline RunJobFlowRequest& WithCustomAmiId(const char* value) { SetCustomAmiId(value); return *this;} /** *

The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that * is used for each Amazon EC2 instance. Available in Amazon EMR releases 4.x and * later.

*/ inline int GetEbsRootVolumeSize() const{ return m_ebsRootVolumeSize; } /** *

The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that * is used for each Amazon EC2 instance. Available in Amazon EMR releases 4.x and * later.

*/ inline bool EbsRootVolumeSizeHasBeenSet() const { return m_ebsRootVolumeSizeHasBeenSet; } /** *

The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that * is used for each Amazon EC2 instance. Available in Amazon EMR releases 4.x and * later.

*/ inline void SetEbsRootVolumeSize(int value) { m_ebsRootVolumeSizeHasBeenSet = true; m_ebsRootVolumeSize = value; } /** *

The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that * is used for each Amazon EC2 instance. Available in Amazon EMR releases 4.x and * later.

*/ inline RunJobFlowRequest& WithEbsRootVolumeSize(int value) { SetEbsRootVolumeSize(value); return *this;} /** *

Applies only when CustomAmiID is used. Specifies which updates * from the Amazon Linux AMI package repositories to apply automatically when the * instance boots using the AMI. If omitted, the default is SECURITY, * which indicates that only security updates are applied. If NONE is * specified, no updates are applied, and all updates must be applied manually.

*/ inline const RepoUpgradeOnBoot& GetRepoUpgradeOnBoot() const{ return m_repoUpgradeOnBoot; } /** *

Applies only when CustomAmiID is used. Specifies which updates * from the Amazon Linux AMI package repositories to apply automatically when the * instance boots using the AMI. If omitted, the default is SECURITY, * which indicates that only security updates are applied. If NONE is * specified, no updates are applied, and all updates must be applied manually.

*/ inline bool RepoUpgradeOnBootHasBeenSet() const { return m_repoUpgradeOnBootHasBeenSet; } /** *

Applies only when CustomAmiID is used. Specifies which updates * from the Amazon Linux AMI package repositories to apply automatically when the * instance boots using the AMI. If omitted, the default is SECURITY, * which indicates that only security updates are applied. If NONE is * specified, no updates are applied, and all updates must be applied manually.

*/ inline void SetRepoUpgradeOnBoot(const RepoUpgradeOnBoot& value) { m_repoUpgradeOnBootHasBeenSet = true; m_repoUpgradeOnBoot = value; } /** *

Applies only when CustomAmiID is used. Specifies which updates * from the Amazon Linux AMI package repositories to apply automatically when the * instance boots using the AMI. If omitted, the default is SECURITY, * which indicates that only security updates are applied. If NONE is * specified, no updates are applied, and all updates must be applied manually.

*/ inline void SetRepoUpgradeOnBoot(RepoUpgradeOnBoot&& value) { m_repoUpgradeOnBootHasBeenSet = true; m_repoUpgradeOnBoot = std::move(value); } /** *

Applies only when CustomAmiID is used. Specifies which updates * from the Amazon Linux AMI package repositories to apply automatically when the * instance boots using the AMI. If omitted, the default is SECURITY, * which indicates that only security updates are applied. If NONE is * specified, no updates are applied, and all updates must be applied manually.

*/ inline RunJobFlowRequest& WithRepoUpgradeOnBoot(const RepoUpgradeOnBoot& value) { SetRepoUpgradeOnBoot(value); return *this;} /** *

Applies only when CustomAmiID is used. Specifies which updates * from the Amazon Linux AMI package repositories to apply automatically when the * instance boots using the AMI. If omitted, the default is SECURITY, * which indicates that only security updates are applied. If NONE is * specified, no updates are applied, and all updates must be applied manually.

*/ inline RunJobFlowRequest& WithRepoUpgradeOnBoot(RepoUpgradeOnBoot&& value) { SetRepoUpgradeOnBoot(std::move(value)); return *this;} /** *

Attributes for Kerberos configuration when Kerberos authentication is enabled * using a security configuration. For more information see Use * Kerberos Authentication in the Amazon EMR Management Guide.

*/ inline const KerberosAttributes& GetKerberosAttributes() const{ return m_kerberosAttributes; } /** *

Attributes for Kerberos configuration when Kerberos authentication is enabled * using a security configuration. For more information see Use * Kerberos Authentication in the Amazon EMR Management Guide.

*/ inline bool KerberosAttributesHasBeenSet() const { return m_kerberosAttributesHasBeenSet; } /** *

Attributes for Kerberos configuration when Kerberos authentication is enabled * using a security configuration. For more information see Use * Kerberos Authentication in the Amazon EMR Management Guide.

*/ inline void SetKerberosAttributes(const KerberosAttributes& value) { m_kerberosAttributesHasBeenSet = true; m_kerberosAttributes = value; } /** *

Attributes for Kerberos configuration when Kerberos authentication is enabled * using a security configuration. For more information see Use * Kerberos Authentication in the Amazon EMR Management Guide.

*/ inline void SetKerberosAttributes(KerberosAttributes&& value) { m_kerberosAttributesHasBeenSet = true; m_kerberosAttributes = std::move(value); } /** *

Attributes for Kerberos configuration when Kerberos authentication is enabled * using a security configuration. For more information see Use * Kerberos Authentication in the Amazon EMR Management Guide.

*/ inline RunJobFlowRequest& WithKerberosAttributes(const KerberosAttributes& value) { SetKerberosAttributes(value); return *this;} /** *

Attributes for Kerberos configuration when Kerberos authentication is enabled * using a security configuration. For more information see Use * Kerberos Authentication in the Amazon EMR Management Guide.

*/ inline RunJobFlowRequest& WithKerberosAttributes(KerberosAttributes&& value) { SetKerberosAttributes(std::move(value)); return *this;} /** *

Specifies the number of steps that can be executed concurrently. The default * value is 1. The maximum value is 256.

*/ inline int GetStepConcurrencyLevel() const{ return m_stepConcurrencyLevel; } /** *

Specifies the number of steps that can be executed concurrently. The default * value is 1. The maximum value is 256.

*/ inline bool StepConcurrencyLevelHasBeenSet() const { return m_stepConcurrencyLevelHasBeenSet; } /** *

Specifies the number of steps that can be executed concurrently. The default * value is 1. The maximum value is 256.

*/ inline void SetStepConcurrencyLevel(int value) { m_stepConcurrencyLevelHasBeenSet = true; m_stepConcurrencyLevel = value; } /** *

Specifies the number of steps that can be executed concurrently. The default * value is 1. The maximum value is 256.

*/ inline RunJobFlowRequest& WithStepConcurrencyLevel(int value) { SetStepConcurrencyLevel(value); return *this;} /** *

The specified managed scaling policy for an Amazon EMR cluster.

*/ inline const ManagedScalingPolicy& GetManagedScalingPolicy() const{ return m_managedScalingPolicy; } /** *

The specified managed scaling policy for an Amazon EMR cluster.

*/ inline bool ManagedScalingPolicyHasBeenSet() const { return m_managedScalingPolicyHasBeenSet; } /** *

The specified managed scaling policy for an Amazon EMR cluster.

*/ inline void SetManagedScalingPolicy(const ManagedScalingPolicy& value) { m_managedScalingPolicyHasBeenSet = true; m_managedScalingPolicy = value; } /** *

The specified managed scaling policy for an Amazon EMR cluster.

*/ inline void SetManagedScalingPolicy(ManagedScalingPolicy&& value) { m_managedScalingPolicyHasBeenSet = true; m_managedScalingPolicy = std::move(value); } /** *

The specified managed scaling policy for an Amazon EMR cluster.

*/ inline RunJobFlowRequest& WithManagedScalingPolicy(const ManagedScalingPolicy& value) { SetManagedScalingPolicy(value); return *this;} /** *

The specified managed scaling policy for an Amazon EMR cluster.

*/ inline RunJobFlowRequest& WithManagedScalingPolicy(ManagedScalingPolicy&& value) { SetManagedScalingPolicy(std::move(value)); return *this;} /** *

The specified placement group configuration for an Amazon EMR cluster.

*/ inline const Aws::Vector& GetPlacementGroupConfigs() const{ return m_placementGroupConfigs; } /** *

The specified placement group configuration for an Amazon EMR cluster.

*/ inline bool PlacementGroupConfigsHasBeenSet() const { return m_placementGroupConfigsHasBeenSet; } /** *

The specified placement group configuration for an Amazon EMR cluster.

*/ inline void SetPlacementGroupConfigs(const Aws::Vector& value) { m_placementGroupConfigsHasBeenSet = true; m_placementGroupConfigs = value; } /** *

The specified placement group configuration for an Amazon EMR cluster.

*/ inline void SetPlacementGroupConfigs(Aws::Vector&& value) { m_placementGroupConfigsHasBeenSet = true; m_placementGroupConfigs = std::move(value); } /** *

The specified placement group configuration for an Amazon EMR cluster.

*/ inline RunJobFlowRequest& WithPlacementGroupConfigs(const Aws::Vector& value) { SetPlacementGroupConfigs(value); return *this;} /** *

The specified placement group configuration for an Amazon EMR cluster.

*/ inline RunJobFlowRequest& WithPlacementGroupConfigs(Aws::Vector&& value) { SetPlacementGroupConfigs(std::move(value)); return *this;} /** *

The specified placement group configuration for an Amazon EMR cluster.

*/ inline RunJobFlowRequest& AddPlacementGroupConfigs(const PlacementGroupConfig& value) { m_placementGroupConfigsHasBeenSet = true; m_placementGroupConfigs.push_back(value); return *this; } /** *

The specified placement group configuration for an Amazon EMR cluster.

*/ inline RunJobFlowRequest& AddPlacementGroupConfigs(PlacementGroupConfig&& value) { m_placementGroupConfigsHasBeenSet = true; m_placementGroupConfigs.push_back(std::move(value)); return *this; } inline const AutoTerminationPolicy& GetAutoTerminationPolicy() const{ return m_autoTerminationPolicy; } inline bool AutoTerminationPolicyHasBeenSet() const { return m_autoTerminationPolicyHasBeenSet; } inline void SetAutoTerminationPolicy(const AutoTerminationPolicy& value) { m_autoTerminationPolicyHasBeenSet = true; m_autoTerminationPolicy = value; } inline void SetAutoTerminationPolicy(AutoTerminationPolicy&& value) { m_autoTerminationPolicyHasBeenSet = true; m_autoTerminationPolicy = std::move(value); } inline RunJobFlowRequest& WithAutoTerminationPolicy(const AutoTerminationPolicy& value) { SetAutoTerminationPolicy(value); return *this;} inline RunJobFlowRequest& WithAutoTerminationPolicy(AutoTerminationPolicy&& value) { SetAutoTerminationPolicy(std::move(value)); return *this;} /** *

Specifies a particular Amazon Linux release for all nodes in a cluster launch * RunJobFlow request. If a release is not specified, Amazon EMR uses the latest * validated Amazon Linux release for cluster launch.

*/ inline const Aws::String& GetOSReleaseLabel() const{ return m_oSReleaseLabel; } /** *

Specifies a particular Amazon Linux release for all nodes in a cluster launch * RunJobFlow request. If a release is not specified, Amazon EMR uses the latest * validated Amazon Linux release for cluster launch.

*/ inline bool OSReleaseLabelHasBeenSet() const { return m_oSReleaseLabelHasBeenSet; } /** *

Specifies a particular Amazon Linux release for all nodes in a cluster launch * RunJobFlow request. If a release is not specified, Amazon EMR uses the latest * validated Amazon Linux release for cluster launch.

*/ inline void SetOSReleaseLabel(const Aws::String& value) { m_oSReleaseLabelHasBeenSet = true; m_oSReleaseLabel = value; } /** *

Specifies a particular Amazon Linux release for all nodes in a cluster launch * RunJobFlow request. If a release is not specified, Amazon EMR uses the latest * validated Amazon Linux release for cluster launch.

*/ inline void SetOSReleaseLabel(Aws::String&& value) { m_oSReleaseLabelHasBeenSet = true; m_oSReleaseLabel = std::move(value); } /** *

Specifies a particular Amazon Linux release for all nodes in a cluster launch * RunJobFlow request. If a release is not specified, Amazon EMR uses the latest * validated Amazon Linux release for cluster launch.

*/ inline void SetOSReleaseLabel(const char* value) { m_oSReleaseLabelHasBeenSet = true; m_oSReleaseLabel.assign(value); } /** *

Specifies a particular Amazon Linux release for all nodes in a cluster launch * RunJobFlow request. If a release is not specified, Amazon EMR uses the latest * validated Amazon Linux release for cluster launch.

*/ inline RunJobFlowRequest& WithOSReleaseLabel(const Aws::String& value) { SetOSReleaseLabel(value); return *this;} /** *

Specifies a particular Amazon Linux release for all nodes in a cluster launch * RunJobFlow request. If a release is not specified, Amazon EMR uses the latest * validated Amazon Linux release for cluster launch.

*/ inline RunJobFlowRequest& WithOSReleaseLabel(Aws::String&& value) { SetOSReleaseLabel(std::move(value)); return *this;} /** *

Specifies a particular Amazon Linux release for all nodes in a cluster launch * RunJobFlow request. If a release is not specified, Amazon EMR uses the latest * validated Amazon Linux release for cluster launch.

*/ inline RunJobFlowRequest& WithOSReleaseLabel(const char* value) { SetOSReleaseLabel(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_logUri; bool m_logUriHasBeenSet = false; Aws::String m_logEncryptionKmsKeyId; bool m_logEncryptionKmsKeyIdHasBeenSet = false; Aws::String m_additionalInfo; bool m_additionalInfoHasBeenSet = false; Aws::String m_amiVersion; bool m_amiVersionHasBeenSet = false; Aws::String m_releaseLabel; bool m_releaseLabelHasBeenSet = false; JobFlowInstancesConfig m_instances; bool m_instancesHasBeenSet = false; Aws::Vector m_steps; bool m_stepsHasBeenSet = false; Aws::Vector m_bootstrapActions; bool m_bootstrapActionsHasBeenSet = false; Aws::Vector m_supportedProducts; bool m_supportedProductsHasBeenSet = false; Aws::Vector m_newSupportedProducts; bool m_newSupportedProductsHasBeenSet = false; Aws::Vector m_applications; bool m_applicationsHasBeenSet = false; Aws::Vector m_configurations; bool m_configurationsHasBeenSet = false; bool m_visibleToAllUsers; bool m_visibleToAllUsersHasBeenSet = false; Aws::String m_jobFlowRole; bool m_jobFlowRoleHasBeenSet = false; Aws::String m_serviceRole; bool m_serviceRoleHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_securityConfiguration; bool m_securityConfigurationHasBeenSet = false; Aws::String m_autoScalingRole; bool m_autoScalingRoleHasBeenSet = false; ScaleDownBehavior m_scaleDownBehavior; bool m_scaleDownBehaviorHasBeenSet = false; Aws::String m_customAmiId; bool m_customAmiIdHasBeenSet = false; int m_ebsRootVolumeSize; bool m_ebsRootVolumeSizeHasBeenSet = false; RepoUpgradeOnBoot m_repoUpgradeOnBoot; bool m_repoUpgradeOnBootHasBeenSet = false; KerberosAttributes m_kerberosAttributes; bool m_kerberosAttributesHasBeenSet = false; int m_stepConcurrencyLevel; bool m_stepConcurrencyLevelHasBeenSet = false; ManagedScalingPolicy m_managedScalingPolicy; bool m_managedScalingPolicyHasBeenSet = false; Aws::Vector m_placementGroupConfigs; bool m_placementGroupConfigsHasBeenSet = false; AutoTerminationPolicy m_autoTerminationPolicy; bool m_autoTerminationPolicyHasBeenSet = false; Aws::String m_oSReleaseLabel; bool m_oSReleaseLabelHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws