/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Specify the type of Amazon EC2 instances that the cluster (job flow) runs
* on.See Also:
AWS
* API Reference
The Amazon EC2 master node instance type.
*/ inline const Aws::String& GetMasterInstanceType() const{ return m_masterInstanceType; } /** *The Amazon EC2 master node instance type.
*/ inline bool MasterInstanceTypeHasBeenSet() const { return m_masterInstanceTypeHasBeenSet; } /** *The Amazon EC2 master node instance type.
*/ inline void SetMasterInstanceType(const Aws::String& value) { m_masterInstanceTypeHasBeenSet = true; m_masterInstanceType = value; } /** *The Amazon EC2 master node instance type.
*/ inline void SetMasterInstanceType(Aws::String&& value) { m_masterInstanceTypeHasBeenSet = true; m_masterInstanceType = std::move(value); } /** *The Amazon EC2 master node instance type.
*/ inline void SetMasterInstanceType(const char* value) { m_masterInstanceTypeHasBeenSet = true; m_masterInstanceType.assign(value); } /** *The Amazon EC2 master node instance type.
*/ inline JobFlowInstancesDetail& WithMasterInstanceType(const Aws::String& value) { SetMasterInstanceType(value); return *this;} /** *The Amazon EC2 master node instance type.
*/ inline JobFlowInstancesDetail& WithMasterInstanceType(Aws::String&& value) { SetMasterInstanceType(std::move(value)); return *this;} /** *The Amazon EC2 master node instance type.
*/ inline JobFlowInstancesDetail& WithMasterInstanceType(const char* value) { SetMasterInstanceType(value); return *this;} /** *The DNS name of the master node. If the cluster is on a private subnet, this * is the private DNS name. On a public subnet, this is the public DNS name.
*/ inline const Aws::String& GetMasterPublicDnsName() const{ return m_masterPublicDnsName; } /** *The DNS name of the master node. If the cluster is on a private subnet, this * is the private DNS name. On a public subnet, this is the public DNS name.
*/ inline bool MasterPublicDnsNameHasBeenSet() const { return m_masterPublicDnsNameHasBeenSet; } /** *The DNS name of the master node. If the cluster is on a private subnet, this * is the private DNS name. On a public subnet, this is the public DNS name.
*/ inline void SetMasterPublicDnsName(const Aws::String& value) { m_masterPublicDnsNameHasBeenSet = true; m_masterPublicDnsName = value; } /** *The DNS name of the master node. If the cluster is on a private subnet, this * is the private DNS name. On a public subnet, this is the public DNS name.
*/ inline void SetMasterPublicDnsName(Aws::String&& value) { m_masterPublicDnsNameHasBeenSet = true; m_masterPublicDnsName = std::move(value); } /** *The DNS name of the master node. If the cluster is on a private subnet, this * is the private DNS name. On a public subnet, this is the public DNS name.
*/ inline void SetMasterPublicDnsName(const char* value) { m_masterPublicDnsNameHasBeenSet = true; m_masterPublicDnsName.assign(value); } /** *The DNS name of the master node. If the cluster is on a private subnet, this * is the private DNS name. On a public subnet, this is the public DNS name.
*/ inline JobFlowInstancesDetail& WithMasterPublicDnsName(const Aws::String& value) { SetMasterPublicDnsName(value); return *this;} /** *The DNS name of the master node. If the cluster is on a private subnet, this * is the private DNS name. On a public subnet, this is the public DNS name.
*/ inline JobFlowInstancesDetail& WithMasterPublicDnsName(Aws::String&& value) { SetMasterPublicDnsName(std::move(value)); return *this;} /** *The DNS name of the master node. If the cluster is on a private subnet, this * is the private DNS name. On a public subnet, this is the public DNS name.
*/ inline JobFlowInstancesDetail& WithMasterPublicDnsName(const char* value) { SetMasterPublicDnsName(value); return *this;} /** *The Amazon EC2 instance identifier of the master node.
*/ inline const Aws::String& GetMasterInstanceId() const{ return m_masterInstanceId; } /** *The Amazon EC2 instance identifier of the master node.
*/ inline bool MasterInstanceIdHasBeenSet() const { return m_masterInstanceIdHasBeenSet; } /** *The Amazon EC2 instance identifier of the master node.
*/ inline void SetMasterInstanceId(const Aws::String& value) { m_masterInstanceIdHasBeenSet = true; m_masterInstanceId = value; } /** *The Amazon EC2 instance identifier of the master node.
*/ inline void SetMasterInstanceId(Aws::String&& value) { m_masterInstanceIdHasBeenSet = true; m_masterInstanceId = std::move(value); } /** *The Amazon EC2 instance identifier of the master node.
*/ inline void SetMasterInstanceId(const char* value) { m_masterInstanceIdHasBeenSet = true; m_masterInstanceId.assign(value); } /** *The Amazon EC2 instance identifier of the master node.
*/ inline JobFlowInstancesDetail& WithMasterInstanceId(const Aws::String& value) { SetMasterInstanceId(value); return *this;} /** *The Amazon EC2 instance identifier of the master node.
*/ inline JobFlowInstancesDetail& WithMasterInstanceId(Aws::String&& value) { SetMasterInstanceId(std::move(value)); return *this;} /** *The Amazon EC2 instance identifier of the master node.
*/ inline JobFlowInstancesDetail& WithMasterInstanceId(const char* value) { SetMasterInstanceId(value); return *this;} /** *The Amazon EC2 core and task node instance type.
*/ inline const Aws::String& GetSlaveInstanceType() const{ return m_slaveInstanceType; } /** *The Amazon EC2 core and task node instance type.
*/ inline bool SlaveInstanceTypeHasBeenSet() const { return m_slaveInstanceTypeHasBeenSet; } /** *The Amazon EC2 core and task node instance type.
*/ inline void SetSlaveInstanceType(const Aws::String& value) { m_slaveInstanceTypeHasBeenSet = true; m_slaveInstanceType = value; } /** *The Amazon EC2 core and task node instance type.
*/ inline void SetSlaveInstanceType(Aws::String&& value) { m_slaveInstanceTypeHasBeenSet = true; m_slaveInstanceType = std::move(value); } /** *The Amazon EC2 core and task node instance type.
*/ inline void SetSlaveInstanceType(const char* value) { m_slaveInstanceTypeHasBeenSet = true; m_slaveInstanceType.assign(value); } /** *The Amazon EC2 core and task node instance type.
*/ inline JobFlowInstancesDetail& WithSlaveInstanceType(const Aws::String& value) { SetSlaveInstanceType(value); return *this;} /** *The Amazon EC2 core and task node instance type.
*/ inline JobFlowInstancesDetail& WithSlaveInstanceType(Aws::String&& value) { SetSlaveInstanceType(std::move(value)); return *this;} /** *The Amazon EC2 core and task node instance type.
*/ inline JobFlowInstancesDetail& WithSlaveInstanceType(const char* value) { SetSlaveInstanceType(value); return *this;} /** *The number of Amazon EC2 instances in the cluster. If the value is 1, the * same instance serves as both the master and core and task node. If the value is * greater than 1, one instance is the master node and all others are core and task * nodes.
*/ inline int GetInstanceCount() const{ return m_instanceCount; } /** *The number of Amazon EC2 instances in the cluster. If the value is 1, the * same instance serves as both the master and core and task node. If the value is * greater than 1, one instance is the master node and all others are core and task * nodes.
*/ inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; } /** *The number of Amazon EC2 instances in the cluster. If the value is 1, the * same instance serves as both the master and core and task node. If the value is * greater than 1, one instance is the master node and all others are core and task * nodes.
*/ inline void SetInstanceCount(int value) { m_instanceCountHasBeenSet = true; m_instanceCount = value; } /** *The number of Amazon EC2 instances in the cluster. If the value is 1, the * same instance serves as both the master and core and task node. If the value is * greater than 1, one instance is the master node and all others are core and task * nodes.
*/ inline JobFlowInstancesDetail& WithInstanceCount(int value) { SetInstanceCount(value); return *this;} /** *Details about the instance groups in a cluster.
*/ inline const Aws::VectorDetails about the instance groups in a cluster.
*/ inline bool InstanceGroupsHasBeenSet() const { return m_instanceGroupsHasBeenSet; } /** *Details about the instance groups in a cluster.
*/ inline void SetInstanceGroups(const Aws::VectorDetails about the instance groups in a cluster.
*/ inline void SetInstanceGroups(Aws::VectorDetails about the instance groups in a cluster.
*/ inline JobFlowInstancesDetail& WithInstanceGroups(const Aws::VectorDetails about the instance groups in a cluster.
*/ inline JobFlowInstancesDetail& WithInstanceGroups(Aws::VectorDetails about the instance groups in a cluster.
*/ inline JobFlowInstancesDetail& AddInstanceGroups(const InstanceGroupDetail& value) { m_instanceGroupsHasBeenSet = true; m_instanceGroups.push_back(value); return *this; } /** *Details about the instance groups in a cluster.
*/ inline JobFlowInstancesDetail& AddInstanceGroups(InstanceGroupDetail&& value) { m_instanceGroupsHasBeenSet = true; m_instanceGroups.push_back(std::move(value)); return *this; } /** *An approximation of the cost of the cluster, represented in m1.small/hours. * This value is increased one time for every hour that an m1.small instance runs. * Larger instances are weighted more heavily, so an Amazon EC2 instance that is * roughly four times more expensive would result in the normalized instance hours * being increased incrementally four times. This result is only an approximation * and does not reflect the actual billing rate.
*/ inline int GetNormalizedInstanceHours() const{ return m_normalizedInstanceHours; } /** *An approximation of the cost of the cluster, represented in m1.small/hours. * This value is increased one time for every hour that an m1.small instance runs. * Larger instances are weighted more heavily, so an Amazon EC2 instance that is * roughly four times more expensive would result in the normalized instance hours * being increased incrementally four times. This result is only an approximation * and does not reflect the actual billing rate.
*/ inline bool NormalizedInstanceHoursHasBeenSet() const { return m_normalizedInstanceHoursHasBeenSet; } /** *An approximation of the cost of the cluster, represented in m1.small/hours. * This value is increased one time for every hour that an m1.small instance runs. * Larger instances are weighted more heavily, so an Amazon EC2 instance that is * roughly four times more expensive would result in the normalized instance hours * being increased incrementally four times. This result is only an approximation * and does not reflect the actual billing rate.
*/ inline void SetNormalizedInstanceHours(int value) { m_normalizedInstanceHoursHasBeenSet = true; m_normalizedInstanceHours = value; } /** *An approximation of the cost of the cluster, represented in m1.small/hours. * This value is increased one time for every hour that an m1.small instance runs. * Larger instances are weighted more heavily, so an Amazon EC2 instance that is * roughly four times more expensive would result in the normalized instance hours * being increased incrementally four times. This result is only an approximation * and does not reflect the actual billing rate.
*/ inline JobFlowInstancesDetail& WithNormalizedInstanceHours(int value) { SetNormalizedInstanceHours(value); return *this;} /** *The name of an Amazon EC2 key pair that can be used to connect to the master * node using SSH.
*/ inline const Aws::String& GetEc2KeyName() const{ return m_ec2KeyName; } /** *The name of an Amazon EC2 key pair that can be used to connect to the master * node using SSH.
*/ inline bool Ec2KeyNameHasBeenSet() const { return m_ec2KeyNameHasBeenSet; } /** *The name of an Amazon EC2 key pair that can be used to connect to the master * node using SSH.
*/ inline void SetEc2KeyName(const Aws::String& value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName = value; } /** *The name of an Amazon EC2 key pair that can be used to connect to the master * node using SSH.
*/ inline void SetEc2KeyName(Aws::String&& value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName = std::move(value); } /** *The name of an Amazon EC2 key pair that can be used to connect to the master * node using SSH.
*/ inline void SetEc2KeyName(const char* value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName.assign(value); } /** *The name of an Amazon EC2 key pair that can be used to connect to the master * node using SSH.
*/ inline JobFlowInstancesDetail& WithEc2KeyName(const Aws::String& value) { SetEc2KeyName(value); return *this;} /** *The name of an Amazon EC2 key pair that can be used to connect to the master * node using SSH.
*/ inline JobFlowInstancesDetail& WithEc2KeyName(Aws::String&& value) { SetEc2KeyName(std::move(value)); return *this;} /** *The name of an Amazon EC2 key pair that can be used to connect to the master * node using SSH.
*/ inline JobFlowInstancesDetail& WithEc2KeyName(const char* value) { SetEc2KeyName(value); return *this;} /** *For clusters launched within Amazon Virtual Private Cloud, this is the * identifier of the subnet where the cluster was launched.
*/ inline const Aws::String& GetEc2SubnetId() const{ return m_ec2SubnetId; } /** *For clusters launched within Amazon Virtual Private Cloud, this is the * identifier of the subnet where the cluster was launched.
*/ inline bool Ec2SubnetIdHasBeenSet() const { return m_ec2SubnetIdHasBeenSet; } /** *For clusters launched within Amazon Virtual Private Cloud, this is the * identifier of the subnet where the cluster was launched.
*/ inline void SetEc2SubnetId(const Aws::String& value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId = value; } /** *For clusters launched within Amazon Virtual Private Cloud, this is the * identifier of the subnet where the cluster was launched.
*/ inline void SetEc2SubnetId(Aws::String&& value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId = std::move(value); } /** *For clusters launched within Amazon Virtual Private Cloud, this is the * identifier of the subnet where the cluster was launched.
*/ inline void SetEc2SubnetId(const char* value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId.assign(value); } /** *For clusters launched within Amazon Virtual Private Cloud, this is the * identifier of the subnet where the cluster was launched.
*/ inline JobFlowInstancesDetail& WithEc2SubnetId(const Aws::String& value) { SetEc2SubnetId(value); return *this;} /** *For clusters launched within Amazon Virtual Private Cloud, this is the * identifier of the subnet where the cluster was launched.
*/ inline JobFlowInstancesDetail& WithEc2SubnetId(Aws::String&& value) { SetEc2SubnetId(std::move(value)); return *this;} /** *For clusters launched within Amazon Virtual Private Cloud, this is the * identifier of the subnet where the cluster was launched.
*/ inline JobFlowInstancesDetail& WithEc2SubnetId(const char* value) { SetEc2SubnetId(value); return *this;} /** *The Amazon EC2 Availability Zone for the cluster.
*/ inline const PlacementType& GetPlacement() const{ return m_placement; } /** *The Amazon EC2 Availability Zone for the cluster.
*/ inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; } /** *The Amazon EC2 Availability Zone for the cluster.
*/ inline void SetPlacement(const PlacementType& value) { m_placementHasBeenSet = true; m_placement = value; } /** *The Amazon EC2 Availability Zone for the cluster.
*/ inline void SetPlacement(PlacementType&& value) { m_placementHasBeenSet = true; m_placement = std::move(value); } /** *The Amazon EC2 Availability Zone for the cluster.
*/ inline JobFlowInstancesDetail& WithPlacement(const PlacementType& value) { SetPlacement(value); return *this;} /** *The Amazon EC2 Availability Zone for the cluster.
*/ inline JobFlowInstancesDetail& WithPlacement(PlacementType&& value) { SetPlacement(std::move(value)); return *this;} /** *Specifies whether the cluster should remain available after completing all * steps.
*/ inline bool GetKeepJobFlowAliveWhenNoSteps() const{ return m_keepJobFlowAliveWhenNoSteps; } /** *Specifies whether the cluster should remain available after completing all * steps.
*/ inline bool KeepJobFlowAliveWhenNoStepsHasBeenSet() const { return m_keepJobFlowAliveWhenNoStepsHasBeenSet; } /** *Specifies whether the cluster should remain available after completing all * steps.
*/ inline void SetKeepJobFlowAliveWhenNoSteps(bool value) { m_keepJobFlowAliveWhenNoStepsHasBeenSet = true; m_keepJobFlowAliveWhenNoSteps = value; } /** *Specifies whether the cluster should remain available after completing all * steps.
*/ inline JobFlowInstancesDetail& WithKeepJobFlowAliveWhenNoSteps(bool value) { SetKeepJobFlowAliveWhenNoSteps(value); return *this;} /** *Specifies whether the Amazon EC2 instances in the cluster are protected from * termination by API calls, user intervention, or in the event of a job-flow * error.
*/ inline bool GetTerminationProtected() const{ return m_terminationProtected; } /** *Specifies whether the Amazon EC2 instances in the cluster are protected from * termination by API calls, user intervention, or in the event of a job-flow * error.
*/ inline bool TerminationProtectedHasBeenSet() const { return m_terminationProtectedHasBeenSet; } /** *Specifies whether the Amazon EC2 instances in the cluster are protected from * termination by API calls, user intervention, or in the event of a job-flow * error.
*/ inline void SetTerminationProtected(bool value) { m_terminationProtectedHasBeenSet = true; m_terminationProtected = value; } /** *Specifies whether the Amazon EC2 instances in the cluster are protected from * termination by API calls, user intervention, or in the event of a job-flow * error.
*/ inline JobFlowInstancesDetail& WithTerminationProtected(bool value) { SetTerminationProtected(value); return *this;} /** *The Hadoop version for the cluster.
*/ inline const Aws::String& GetHadoopVersion() const{ return m_hadoopVersion; } /** *The Hadoop version for the cluster.
*/ inline bool HadoopVersionHasBeenSet() const { return m_hadoopVersionHasBeenSet; } /** *The Hadoop version for the cluster.
*/ inline void SetHadoopVersion(const Aws::String& value) { m_hadoopVersionHasBeenSet = true; m_hadoopVersion = value; } /** *The Hadoop version for the cluster.
*/ inline void SetHadoopVersion(Aws::String&& value) { m_hadoopVersionHasBeenSet = true; m_hadoopVersion = std::move(value); } /** *The Hadoop version for the cluster.
*/ inline void SetHadoopVersion(const char* value) { m_hadoopVersionHasBeenSet = true; m_hadoopVersion.assign(value); } /** *The Hadoop version for the cluster.
*/ inline JobFlowInstancesDetail& WithHadoopVersion(const Aws::String& value) { SetHadoopVersion(value); return *this;} /** *The Hadoop version for the cluster.
*/ inline JobFlowInstancesDetail& WithHadoopVersion(Aws::String&& value) { SetHadoopVersion(std::move(value)); return *this;} /** *The Hadoop version for the cluster.
*/ inline JobFlowInstancesDetail& WithHadoopVersion(const char* value) { SetHadoopVersion(value); return *this;} private: Aws::String m_masterInstanceType; bool m_masterInstanceTypeHasBeenSet = false; Aws::String m_masterPublicDnsName; bool m_masterPublicDnsNameHasBeenSet = false; Aws::String m_masterInstanceId; bool m_masterInstanceIdHasBeenSet = false; Aws::String m_slaveInstanceType; bool m_slaveInstanceTypeHasBeenSet = false; int m_instanceCount; bool m_instanceCountHasBeenSet = false; Aws::Vector