/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace EMR { namespace Model { /** *

Provides information about the Amazon EC2 instances in a cluster grouped by * category. For example, key name, subnet ID, IAM instance profile, and so * on.

See Also:

AWS * API Reference

*/ class Ec2InstanceAttributes { public: AWS_EMR_API Ec2InstanceAttributes(); AWS_EMR_API Ec2InstanceAttributes(Aws::Utils::Json::JsonView jsonValue); AWS_EMR_API Ec2InstanceAttributes& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_EMR_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the Amazon EC2 key pair to use when connecting with SSH into the * master node as a user named "hadoop".

*/ inline const Aws::String& GetEc2KeyName() const{ return m_ec2KeyName; } /** *

The name of the Amazon EC2 key pair to use when connecting with SSH into the * master node as a user named "hadoop".

*/ inline bool Ec2KeyNameHasBeenSet() const { return m_ec2KeyNameHasBeenSet; } /** *

The name of the Amazon EC2 key pair to use when connecting with SSH into the * master node as a user named "hadoop".

*/ inline void SetEc2KeyName(const Aws::String& value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName = value; } /** *

The name of the Amazon EC2 key pair to use when connecting with SSH into the * master node as a user named "hadoop".

*/ inline void SetEc2KeyName(Aws::String&& value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName = std::move(value); } /** *

The name of the Amazon EC2 key pair to use when connecting with SSH into the * master node as a user named "hadoop".

*/ inline void SetEc2KeyName(const char* value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName.assign(value); } /** *

The name of the Amazon EC2 key pair to use when connecting with SSH into the * master node as a user named "hadoop".

*/ inline Ec2InstanceAttributes& WithEc2KeyName(const Aws::String& value) { SetEc2KeyName(value); return *this;} /** *

The name of the Amazon EC2 key pair to use when connecting with SSH into the * master node as a user named "hadoop".

*/ inline Ec2InstanceAttributes& WithEc2KeyName(Aws::String&& value) { SetEc2KeyName(std::move(value)); return *this;} /** *

The name of the Amazon EC2 key pair to use when connecting with SSH into the * master node as a user named "hadoop".

*/ inline Ec2InstanceAttributes& WithEc2KeyName(const char* value) { SetEc2KeyName(value); return *this;} /** *

Set this parameter to the identifier of the Amazon VPC subnet where you want * the cluster to launch. If you do not specify this value, and your account * supports EC2-Classic, the cluster launches in EC2-Classic.

*/ inline const Aws::String& GetEc2SubnetId() const{ return m_ec2SubnetId; } /** *

Set this parameter to the identifier of the Amazon VPC subnet where you want * the cluster to launch. If you do not specify this value, and your account * supports EC2-Classic, the cluster launches in EC2-Classic.

*/ inline bool Ec2SubnetIdHasBeenSet() const { return m_ec2SubnetIdHasBeenSet; } /** *

Set this parameter to the identifier of the Amazon VPC subnet where you want * the cluster to launch. If you do not specify this value, and your account * supports EC2-Classic, the cluster launches in EC2-Classic.

*/ inline void SetEc2SubnetId(const Aws::String& value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId = value; } /** *

Set this parameter to the identifier of the Amazon VPC subnet where you want * the cluster to launch. If you do not specify this value, and your account * supports EC2-Classic, the cluster launches in EC2-Classic.

*/ inline void SetEc2SubnetId(Aws::String&& value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId = std::move(value); } /** *

Set this parameter to the identifier of the Amazon VPC subnet where you want * the cluster to launch. If you do not specify this value, and your account * supports EC2-Classic, the cluster launches in EC2-Classic.

*/ inline void SetEc2SubnetId(const char* value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId.assign(value); } /** *

Set this parameter to the identifier of the Amazon VPC subnet where you want * the cluster to launch. If you do not specify this value, and your account * supports EC2-Classic, the cluster launches in EC2-Classic.

*/ inline Ec2InstanceAttributes& WithEc2SubnetId(const Aws::String& value) { SetEc2SubnetId(value); return *this;} /** *

Set this parameter to the identifier of the Amazon VPC subnet where you want * the cluster to launch. If you do not specify this value, and your account * supports EC2-Classic, the cluster launches in EC2-Classic.

*/ inline Ec2InstanceAttributes& WithEc2SubnetId(Aws::String&& value) { SetEc2SubnetId(std::move(value)); return *this;} /** *

Set this parameter to the identifier of the Amazon VPC subnet where you want * the cluster to launch. If you do not specify this value, and your account * supports EC2-Classic, the cluster launches in EC2-Classic.

*/ inline Ec2InstanceAttributes& WithEc2SubnetId(const char* value) { SetEc2SubnetId(value); return *this;} /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline const Aws::Vector& GetRequestedEc2SubnetIds() const{ return m_requestedEc2SubnetIds; } /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline bool RequestedEc2SubnetIdsHasBeenSet() const { return m_requestedEc2SubnetIdsHasBeenSet; } /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline void SetRequestedEc2SubnetIds(const Aws::Vector& value) { m_requestedEc2SubnetIdsHasBeenSet = true; m_requestedEc2SubnetIds = value; } /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline void SetRequestedEc2SubnetIds(Aws::Vector&& value) { m_requestedEc2SubnetIdsHasBeenSet = true; m_requestedEc2SubnetIds = std::move(value); } /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& WithRequestedEc2SubnetIds(const Aws::Vector& value) { SetRequestedEc2SubnetIds(value); return *this;} /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& WithRequestedEc2SubnetIds(Aws::Vector&& value) { SetRequestedEc2SubnetIds(std::move(value)); return *this;} /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& AddRequestedEc2SubnetIds(const Aws::String& value) { m_requestedEc2SubnetIdsHasBeenSet = true; m_requestedEc2SubnetIds.push_back(value); return *this; } /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& AddRequestedEc2SubnetIds(Aws::String&& value) { m_requestedEc2SubnetIdsHasBeenSet = true; m_requestedEc2SubnetIds.push_back(std::move(value)); return *this; } /** *

Applies to clusters configured with the instance fleets option. Specifies the * unique identifier of one or more Amazon EC2 subnets in which to launch Amazon * EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR * chooses the Amazon EC2 subnet with the best fit from among the list of * RequestedEc2SubnetIds, and then launches all cluster instances * within that Subnet. If this value is not specified, and the account and Region * support EC2-Classic networks, the cluster launches instances in the EC2-Classic * network and uses RequestedEc2AvailabilityZones instead of this * setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR * chooses the subnet for you. RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& AddRequestedEc2SubnetIds(const char* value) { m_requestedEc2SubnetIdsHasBeenSet = true; m_requestedEc2SubnetIds.push_back(value); return *this; } /** *

The Availability Zone in which the cluster will run.

*/ inline const Aws::String& GetEc2AvailabilityZone() const{ return m_ec2AvailabilityZone; } /** *

The Availability Zone in which the cluster will run.

*/ inline bool Ec2AvailabilityZoneHasBeenSet() const { return m_ec2AvailabilityZoneHasBeenSet; } /** *

The Availability Zone in which the cluster will run.

*/ inline void SetEc2AvailabilityZone(const Aws::String& value) { m_ec2AvailabilityZoneHasBeenSet = true; m_ec2AvailabilityZone = value; } /** *

The Availability Zone in which the cluster will run.

*/ inline void SetEc2AvailabilityZone(Aws::String&& value) { m_ec2AvailabilityZoneHasBeenSet = true; m_ec2AvailabilityZone = std::move(value); } /** *

The Availability Zone in which the cluster will run.

*/ inline void SetEc2AvailabilityZone(const char* value) { m_ec2AvailabilityZoneHasBeenSet = true; m_ec2AvailabilityZone.assign(value); } /** *

The Availability Zone in which the cluster will run.

*/ inline Ec2InstanceAttributes& WithEc2AvailabilityZone(const Aws::String& value) { SetEc2AvailabilityZone(value); return *this;} /** *

The Availability Zone in which the cluster will run.

*/ inline Ec2InstanceAttributes& WithEc2AvailabilityZone(Aws::String&& value) { SetEc2AvailabilityZone(std::move(value)); return *this;} /** *

The Availability Zone in which the cluster will run.

*/ inline Ec2InstanceAttributes& WithEc2AvailabilityZone(const char* value) { SetEc2AvailabilityZone(value); return *this;} /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline const Aws::Vector& GetRequestedEc2AvailabilityZones() const{ return m_requestedEc2AvailabilityZones; } /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline bool RequestedEc2AvailabilityZonesHasBeenSet() const { return m_requestedEc2AvailabilityZonesHasBeenSet; } /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline void SetRequestedEc2AvailabilityZones(const Aws::Vector& value) { m_requestedEc2AvailabilityZonesHasBeenSet = true; m_requestedEc2AvailabilityZones = value; } /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline void SetRequestedEc2AvailabilityZones(Aws::Vector&& value) { m_requestedEc2AvailabilityZonesHasBeenSet = true; m_requestedEc2AvailabilityZones = std::move(value); } /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& WithRequestedEc2AvailabilityZones(const Aws::Vector& value) { SetRequestedEc2AvailabilityZones(value); return *this;} /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& WithRequestedEc2AvailabilityZones(Aws::Vector&& value) { SetRequestedEc2AvailabilityZones(std::move(value)); return *this;} /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& AddRequestedEc2AvailabilityZones(const Aws::String& value) { m_requestedEc2AvailabilityZonesHasBeenSet = true; m_requestedEc2AvailabilityZones.push_back(value); return *this; } /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& AddRequestedEc2AvailabilityZones(Aws::String&& value) { m_requestedEc2AvailabilityZonesHasBeenSet = true; m_requestedEc2AvailabilityZones.push_back(std::move(value)); return *this; } /** *

Applies to clusters configured with the instance fleets option. Specifies one * or more Availability Zones in which to launch Amazon EC2 cluster instances when * the EC2-Classic network configuration is supported. Amazon EMR chooses the * Availability Zone with the best fit from among the list of * RequestedEc2AvailabilityZones, and then launches all cluster * instances within that Availability Zone. If you do not specify this value, * Amazon EMR chooses the Availability Zone for you. * RequestedEc2SubnetIDs and * RequestedEc2AvailabilityZones cannot be specified together.

*/ inline Ec2InstanceAttributes& AddRequestedEc2AvailabilityZones(const char* value) { m_requestedEc2AvailabilityZonesHasBeenSet = true; m_requestedEc2AvailabilityZones.push_back(value); return *this; } /** *

The IAM role that was specified when the cluster was launched. The Amazon EC2 * instances of the cluster assume this role.

*/ inline const Aws::String& GetIamInstanceProfile() const{ return m_iamInstanceProfile; } /** *

The IAM role that was specified when the cluster was launched. The Amazon EC2 * instances of the cluster assume this role.

*/ inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; } /** *

The IAM role that was specified when the cluster was launched. The Amazon EC2 * instances of the cluster assume this role.

*/ inline void SetIamInstanceProfile(const Aws::String& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = value; } /** *

The IAM role that was specified when the cluster was launched. The Amazon EC2 * instances of the cluster assume this role.

*/ inline void SetIamInstanceProfile(Aws::String&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::move(value); } /** *

The IAM role that was specified when the cluster was launched. The Amazon EC2 * instances of the cluster assume this role.

*/ inline void SetIamInstanceProfile(const char* value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile.assign(value); } /** *

The IAM role that was specified when the cluster was launched. The Amazon EC2 * instances of the cluster assume this role.

*/ inline Ec2InstanceAttributes& WithIamInstanceProfile(const Aws::String& value) { SetIamInstanceProfile(value); return *this;} /** *

The IAM role that was specified when the cluster was launched. The Amazon EC2 * instances of the cluster assume this role.

*/ inline Ec2InstanceAttributes& WithIamInstanceProfile(Aws::String&& value) { SetIamInstanceProfile(std::move(value)); return *this;} /** *

The IAM role that was specified when the cluster was launched. The Amazon EC2 * instances of the cluster assume this role.

*/ inline Ec2InstanceAttributes& WithIamInstanceProfile(const char* value) { SetIamInstanceProfile(value); return *this;} /** *

The identifier of the Amazon EC2 security group for the master node.

*/ inline const Aws::String& GetEmrManagedMasterSecurityGroup() const{ return m_emrManagedMasterSecurityGroup; } /** *

The identifier of the Amazon EC2 security group for the master node.

*/ inline bool EmrManagedMasterSecurityGroupHasBeenSet() const { return m_emrManagedMasterSecurityGroupHasBeenSet; } /** *

The identifier of the Amazon EC2 security group for the master node.

*/ inline void SetEmrManagedMasterSecurityGroup(const Aws::String& value) { m_emrManagedMasterSecurityGroupHasBeenSet = true; m_emrManagedMasterSecurityGroup = value; } /** *

The identifier of the Amazon EC2 security group for the master node.

*/ inline void SetEmrManagedMasterSecurityGroup(Aws::String&& value) { m_emrManagedMasterSecurityGroupHasBeenSet = true; m_emrManagedMasterSecurityGroup = std::move(value); } /** *

The identifier of the Amazon EC2 security group for the master node.

*/ inline void SetEmrManagedMasterSecurityGroup(const char* value) { m_emrManagedMasterSecurityGroupHasBeenSet = true; m_emrManagedMasterSecurityGroup.assign(value); } /** *

The identifier of the Amazon EC2 security group for the master node.

*/ inline Ec2InstanceAttributes& WithEmrManagedMasterSecurityGroup(const Aws::String& value) { SetEmrManagedMasterSecurityGroup(value); return *this;} /** *

The identifier of the Amazon EC2 security group for the master node.

*/ inline Ec2InstanceAttributes& WithEmrManagedMasterSecurityGroup(Aws::String&& value) { SetEmrManagedMasterSecurityGroup(std::move(value)); return *this;} /** *

The identifier of the Amazon EC2 security group for the master node.

*/ inline Ec2InstanceAttributes& WithEmrManagedMasterSecurityGroup(const char* value) { SetEmrManagedMasterSecurityGroup(value); return *this;} /** *

The identifier of the Amazon EC2 security group for the core and task * nodes.

*/ inline const Aws::String& GetEmrManagedSlaveSecurityGroup() const{ return m_emrManagedSlaveSecurityGroup; } /** *

The identifier of the Amazon EC2 security group for the core and task * nodes.

*/ inline bool EmrManagedSlaveSecurityGroupHasBeenSet() const { return m_emrManagedSlaveSecurityGroupHasBeenSet; } /** *

The identifier of the Amazon EC2 security group for the core and task * nodes.

*/ inline void SetEmrManagedSlaveSecurityGroup(const Aws::String& value) { m_emrManagedSlaveSecurityGroupHasBeenSet = true; m_emrManagedSlaveSecurityGroup = value; } /** *

The identifier of the Amazon EC2 security group for the core and task * nodes.

*/ inline void SetEmrManagedSlaveSecurityGroup(Aws::String&& value) { m_emrManagedSlaveSecurityGroupHasBeenSet = true; m_emrManagedSlaveSecurityGroup = std::move(value); } /** *

The identifier of the Amazon EC2 security group for the core and task * nodes.

*/ inline void SetEmrManagedSlaveSecurityGroup(const char* value) { m_emrManagedSlaveSecurityGroupHasBeenSet = true; m_emrManagedSlaveSecurityGroup.assign(value); } /** *

The identifier of the Amazon EC2 security group for the core and task * nodes.

*/ inline Ec2InstanceAttributes& WithEmrManagedSlaveSecurityGroup(const Aws::String& value) { SetEmrManagedSlaveSecurityGroup(value); return *this;} /** *

The identifier of the Amazon EC2 security group for the core and task * nodes.

*/ inline Ec2InstanceAttributes& WithEmrManagedSlaveSecurityGroup(Aws::String&& value) { SetEmrManagedSlaveSecurityGroup(std::move(value)); return *this;} /** *

The identifier of the Amazon EC2 security group for the core and task * nodes.

*/ inline Ec2InstanceAttributes& WithEmrManagedSlaveSecurityGroup(const char* value) { SetEmrManagedSlaveSecurityGroup(value); return *this;} /** *

The identifier of the Amazon EC2 security group for the Amazon EMR service to * access clusters in VPC private subnets.

*/ inline const Aws::String& GetServiceAccessSecurityGroup() const{ return m_serviceAccessSecurityGroup; } /** *

The identifier of the Amazon EC2 security group for the Amazon EMR service to * access clusters in VPC private subnets.

*/ inline bool ServiceAccessSecurityGroupHasBeenSet() const { return m_serviceAccessSecurityGroupHasBeenSet; } /** *

The identifier of the Amazon EC2 security group for the Amazon EMR service to * access clusters in VPC private subnets.

*/ inline void SetServiceAccessSecurityGroup(const Aws::String& value) { m_serviceAccessSecurityGroupHasBeenSet = true; m_serviceAccessSecurityGroup = value; } /** *

The identifier of the Amazon EC2 security group for the Amazon EMR service to * access clusters in VPC private subnets.

*/ inline void SetServiceAccessSecurityGroup(Aws::String&& value) { m_serviceAccessSecurityGroupHasBeenSet = true; m_serviceAccessSecurityGroup = std::move(value); } /** *

The identifier of the Amazon EC2 security group for the Amazon EMR service to * access clusters in VPC private subnets.

*/ inline void SetServiceAccessSecurityGroup(const char* value) { m_serviceAccessSecurityGroupHasBeenSet = true; m_serviceAccessSecurityGroup.assign(value); } /** *

The identifier of the Amazon EC2 security group for the Amazon EMR service to * access clusters in VPC private subnets.

*/ inline Ec2InstanceAttributes& WithServiceAccessSecurityGroup(const Aws::String& value) { SetServiceAccessSecurityGroup(value); return *this;} /** *

The identifier of the Amazon EC2 security group for the Amazon EMR service to * access clusters in VPC private subnets.

*/ inline Ec2InstanceAttributes& WithServiceAccessSecurityGroup(Aws::String&& value) { SetServiceAccessSecurityGroup(std::move(value)); return *this;} /** *

The identifier of the Amazon EC2 security group for the Amazon EMR service to * access clusters in VPC private subnets.

*/ inline Ec2InstanceAttributes& WithServiceAccessSecurityGroup(const char* value) { SetServiceAccessSecurityGroup(value); return *this;} /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline const Aws::Vector& GetAdditionalMasterSecurityGroups() const{ return m_additionalMasterSecurityGroups; } /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline bool AdditionalMasterSecurityGroupsHasBeenSet() const { return m_additionalMasterSecurityGroupsHasBeenSet; } /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline void SetAdditionalMasterSecurityGroups(const Aws::Vector& value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups = value; } /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline void SetAdditionalMasterSecurityGroups(Aws::Vector&& value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups = std::move(value); } /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline Ec2InstanceAttributes& WithAdditionalMasterSecurityGroups(const Aws::Vector& value) { SetAdditionalMasterSecurityGroups(value); return *this;} /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline Ec2InstanceAttributes& WithAdditionalMasterSecurityGroups(Aws::Vector&& value) { SetAdditionalMasterSecurityGroups(std::move(value)); return *this;} /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline Ec2InstanceAttributes& AddAdditionalMasterSecurityGroups(const Aws::String& value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups.push_back(value); return *this; } /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline Ec2InstanceAttributes& AddAdditionalMasterSecurityGroups(Aws::String&& value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups.push_back(std::move(value)); return *this; } /** *

A list of additional Amazon EC2 security group IDs for the master node.

*/ inline Ec2InstanceAttributes& AddAdditionalMasterSecurityGroups(const char* value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups.push_back(value); return *this; } /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline const Aws::Vector& GetAdditionalSlaveSecurityGroups() const{ return m_additionalSlaveSecurityGroups; } /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline bool AdditionalSlaveSecurityGroupsHasBeenSet() const { return m_additionalSlaveSecurityGroupsHasBeenSet; } /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline void SetAdditionalSlaveSecurityGroups(const Aws::Vector& value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups = value; } /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline void SetAdditionalSlaveSecurityGroups(Aws::Vector&& value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups = std::move(value); } /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline Ec2InstanceAttributes& WithAdditionalSlaveSecurityGroups(const Aws::Vector& value) { SetAdditionalSlaveSecurityGroups(value); return *this;} /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline Ec2InstanceAttributes& WithAdditionalSlaveSecurityGroups(Aws::Vector&& value) { SetAdditionalSlaveSecurityGroups(std::move(value)); return *this;} /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline Ec2InstanceAttributes& AddAdditionalSlaveSecurityGroups(const Aws::String& value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups.push_back(value); return *this; } /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline Ec2InstanceAttributes& AddAdditionalSlaveSecurityGroups(Aws::String&& value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups.push_back(std::move(value)); return *this; } /** *

A list of additional Amazon EC2 security group IDs for the core and task * nodes.

*/ inline Ec2InstanceAttributes& AddAdditionalSlaveSecurityGroups(const char* value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups.push_back(value); return *this; } private: Aws::String m_ec2KeyName; bool m_ec2KeyNameHasBeenSet = false; Aws::String m_ec2SubnetId; bool m_ec2SubnetIdHasBeenSet = false; Aws::Vector m_requestedEc2SubnetIds; bool m_requestedEc2SubnetIdsHasBeenSet = false; Aws::String m_ec2AvailabilityZone; bool m_ec2AvailabilityZoneHasBeenSet = false; Aws::Vector m_requestedEc2AvailabilityZones; bool m_requestedEc2AvailabilityZonesHasBeenSet = false; Aws::String m_iamInstanceProfile; bool m_iamInstanceProfileHasBeenSet = false; Aws::String m_emrManagedMasterSecurityGroup; bool m_emrManagedMasterSecurityGroupHasBeenSet = false; Aws::String m_emrManagedSlaveSecurityGroup; bool m_emrManagedSlaveSecurityGroupHasBeenSet = false; Aws::String m_serviceAccessSecurityGroup; bool m_serviceAccessSecurityGroupHasBeenSet = false; Aws::Vector m_additionalMasterSecurityGroups; bool m_additionalMasterSecurityGroupsHasBeenSet = false; Aws::Vector m_additionalSlaveSecurityGroups; bool m_additionalSlaveSecurityGroupsHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws