/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents an Amazon EC2 instance provisioned as part of
* cluster.See Also:
AWS
* API Reference
The unique identifier for the instance in Amazon EMR.
*/ inline const Aws::String& GetId() const{ return m_id; } /** *The unique identifier for the instance in Amazon EMR.
*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *The unique identifier for the instance in Amazon EMR.
*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *The unique identifier for the instance in Amazon EMR.
*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *The unique identifier for the instance in Amazon EMR.
*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *The unique identifier for the instance in Amazon EMR.
*/ inline Instance& WithId(const Aws::String& value) { SetId(value); return *this;} /** *The unique identifier for the instance in Amazon EMR.
*/ inline Instance& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *The unique identifier for the instance in Amazon EMR.
*/ inline Instance& WithId(const char* value) { SetId(value); return *this;} /** *The unique identifier of the instance in Amazon EC2.
*/ inline const Aws::String& GetEc2InstanceId() const{ return m_ec2InstanceId; } /** *The unique identifier of the instance in Amazon EC2.
*/ inline bool Ec2InstanceIdHasBeenSet() const { return m_ec2InstanceIdHasBeenSet; } /** *The unique identifier of the instance in Amazon EC2.
*/ inline void SetEc2InstanceId(const Aws::String& value) { m_ec2InstanceIdHasBeenSet = true; m_ec2InstanceId = value; } /** *The unique identifier of the instance in Amazon EC2.
*/ inline void SetEc2InstanceId(Aws::String&& value) { m_ec2InstanceIdHasBeenSet = true; m_ec2InstanceId = std::move(value); } /** *The unique identifier of the instance in Amazon EC2.
*/ inline void SetEc2InstanceId(const char* value) { m_ec2InstanceIdHasBeenSet = true; m_ec2InstanceId.assign(value); } /** *The unique identifier of the instance in Amazon EC2.
*/ inline Instance& WithEc2InstanceId(const Aws::String& value) { SetEc2InstanceId(value); return *this;} /** *The unique identifier of the instance in Amazon EC2.
*/ inline Instance& WithEc2InstanceId(Aws::String&& value) { SetEc2InstanceId(std::move(value)); return *this;} /** *The unique identifier of the instance in Amazon EC2.
*/ inline Instance& WithEc2InstanceId(const char* value) { SetEc2InstanceId(value); return *this;} /** *The public DNS name of the instance.
*/ inline const Aws::String& GetPublicDnsName() const{ return m_publicDnsName; } /** *The public DNS name of the instance.
*/ inline bool PublicDnsNameHasBeenSet() const { return m_publicDnsNameHasBeenSet; } /** *The public DNS name of the instance.
*/ inline void SetPublicDnsName(const Aws::String& value) { m_publicDnsNameHasBeenSet = true; m_publicDnsName = value; } /** *The public DNS name of the instance.
*/ inline void SetPublicDnsName(Aws::String&& value) { m_publicDnsNameHasBeenSet = true; m_publicDnsName = std::move(value); } /** *The public DNS name of the instance.
*/ inline void SetPublicDnsName(const char* value) { m_publicDnsNameHasBeenSet = true; m_publicDnsName.assign(value); } /** *The public DNS name of the instance.
*/ inline Instance& WithPublicDnsName(const Aws::String& value) { SetPublicDnsName(value); return *this;} /** *The public DNS name of the instance.
*/ inline Instance& WithPublicDnsName(Aws::String&& value) { SetPublicDnsName(std::move(value)); return *this;} /** *The public DNS name of the instance.
*/ inline Instance& WithPublicDnsName(const char* value) { SetPublicDnsName(value); return *this;} /** *The public IP address of the instance.
*/ inline const Aws::String& GetPublicIpAddress() const{ return m_publicIpAddress; } /** *The public IP address of the instance.
*/ inline bool PublicIpAddressHasBeenSet() const { return m_publicIpAddressHasBeenSet; } /** *The public IP address of the instance.
*/ inline void SetPublicIpAddress(const Aws::String& value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress = value; } /** *The public IP address of the instance.
*/ inline void SetPublicIpAddress(Aws::String&& value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress = std::move(value); } /** *The public IP address of the instance.
*/ inline void SetPublicIpAddress(const char* value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress.assign(value); } /** *The public IP address of the instance.
*/ inline Instance& WithPublicIpAddress(const Aws::String& value) { SetPublicIpAddress(value); return *this;} /** *The public IP address of the instance.
*/ inline Instance& WithPublicIpAddress(Aws::String&& value) { SetPublicIpAddress(std::move(value)); return *this;} /** *The public IP address of the instance.
*/ inline Instance& WithPublicIpAddress(const char* value) { SetPublicIpAddress(value); return *this;} /** *The private DNS name of the instance.
*/ inline const Aws::String& GetPrivateDnsName() const{ return m_privateDnsName; } /** *The private DNS name of the instance.
*/ inline bool PrivateDnsNameHasBeenSet() const { return m_privateDnsNameHasBeenSet; } /** *The private DNS name of the instance.
*/ inline void SetPrivateDnsName(const Aws::String& value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName = value; } /** *The private DNS name of the instance.
*/ inline void SetPrivateDnsName(Aws::String&& value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName = std::move(value); } /** *The private DNS name of the instance.
*/ inline void SetPrivateDnsName(const char* value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName.assign(value); } /** *The private DNS name of the instance.
*/ inline Instance& WithPrivateDnsName(const Aws::String& value) { SetPrivateDnsName(value); return *this;} /** *The private DNS name of the instance.
*/ inline Instance& WithPrivateDnsName(Aws::String&& value) { SetPrivateDnsName(std::move(value)); return *this;} /** *The private DNS name of the instance.
*/ inline Instance& WithPrivateDnsName(const char* value) { SetPrivateDnsName(value); return *this;} /** *The private IP address of the instance.
*/ inline const Aws::String& GetPrivateIpAddress() const{ return m_privateIpAddress; } /** *The private IP address of the instance.
*/ inline bool PrivateIpAddressHasBeenSet() const { return m_privateIpAddressHasBeenSet; } /** *The private IP address of the instance.
*/ inline void SetPrivateIpAddress(const Aws::String& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = value; } /** *The private IP address of the instance.
*/ inline void SetPrivateIpAddress(Aws::String&& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = std::move(value); } /** *The private IP address of the instance.
*/ inline void SetPrivateIpAddress(const char* value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress.assign(value); } /** *The private IP address of the instance.
*/ inline Instance& WithPrivateIpAddress(const Aws::String& value) { SetPrivateIpAddress(value); return *this;} /** *The private IP address of the instance.
*/ inline Instance& WithPrivateIpAddress(Aws::String&& value) { SetPrivateIpAddress(std::move(value)); return *this;} /** *The private IP address of the instance.
*/ inline Instance& WithPrivateIpAddress(const char* value) { SetPrivateIpAddress(value); return *this;} /** *The current status of the instance.
*/ inline const InstanceStatus& GetStatus() const{ return m_status; } /** *The current status of the instance.
*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *The current status of the instance.
*/ inline void SetStatus(const InstanceStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *The current status of the instance.
*/ inline void SetStatus(InstanceStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *The current status of the instance.
*/ inline Instance& WithStatus(const InstanceStatus& value) { SetStatus(value); return *this;} /** *The current status of the instance.
*/ inline Instance& WithStatus(InstanceStatus&& value) { SetStatus(std::move(value)); return *this;} /** *The identifier of the instance group to which this instance belongs.
*/ inline const Aws::String& GetInstanceGroupId() const{ return m_instanceGroupId; } /** *The identifier of the instance group to which this instance belongs.
*/ inline bool InstanceGroupIdHasBeenSet() const { return m_instanceGroupIdHasBeenSet; } /** *The identifier of the instance group to which this instance belongs.
*/ inline void SetInstanceGroupId(const Aws::String& value) { m_instanceGroupIdHasBeenSet = true; m_instanceGroupId = value; } /** *The identifier of the instance group to which this instance belongs.
*/ inline void SetInstanceGroupId(Aws::String&& value) { m_instanceGroupIdHasBeenSet = true; m_instanceGroupId = std::move(value); } /** *The identifier of the instance group to which this instance belongs.
*/ inline void SetInstanceGroupId(const char* value) { m_instanceGroupIdHasBeenSet = true; m_instanceGroupId.assign(value); } /** *The identifier of the instance group to which this instance belongs.
*/ inline Instance& WithInstanceGroupId(const Aws::String& value) { SetInstanceGroupId(value); return *this;} /** *The identifier of the instance group to which this instance belongs.
*/ inline Instance& WithInstanceGroupId(Aws::String&& value) { SetInstanceGroupId(std::move(value)); return *this;} /** *The identifier of the instance group to which this instance belongs.
*/ inline Instance& WithInstanceGroupId(const char* value) { SetInstanceGroupId(value); return *this;} /** *The unique identifier of the instance fleet to which an Amazon EC2 instance * belongs.
*/ inline const Aws::String& GetInstanceFleetId() const{ return m_instanceFleetId; } /** *The unique identifier of the instance fleet to which an Amazon EC2 instance * belongs.
*/ inline bool InstanceFleetIdHasBeenSet() const { return m_instanceFleetIdHasBeenSet; } /** *The unique identifier of the instance fleet to which an Amazon EC2 instance * belongs.
*/ inline void SetInstanceFleetId(const Aws::String& value) { m_instanceFleetIdHasBeenSet = true; m_instanceFleetId = value; } /** *The unique identifier of the instance fleet to which an Amazon EC2 instance * belongs.
*/ inline void SetInstanceFleetId(Aws::String&& value) { m_instanceFleetIdHasBeenSet = true; m_instanceFleetId = std::move(value); } /** *The unique identifier of the instance fleet to which an Amazon EC2 instance * belongs.
*/ inline void SetInstanceFleetId(const char* value) { m_instanceFleetIdHasBeenSet = true; m_instanceFleetId.assign(value); } /** *The unique identifier of the instance fleet to which an Amazon EC2 instance * belongs.
*/ inline Instance& WithInstanceFleetId(const Aws::String& value) { SetInstanceFleetId(value); return *this;} /** *The unique identifier of the instance fleet to which an Amazon EC2 instance * belongs.
*/ inline Instance& WithInstanceFleetId(Aws::String&& value) { SetInstanceFleetId(std::move(value)); return *this;} /** *The unique identifier of the instance fleet to which an Amazon EC2 instance * belongs.
*/ inline Instance& WithInstanceFleetId(const char* value) { SetInstanceFleetId(value); return *this;} /** *The instance purchasing option. Valid values are ON_DEMAND or
* SPOT.
The instance purchasing option. Valid values are ON_DEMAND or
* SPOT.
The instance purchasing option. Valid values are ON_DEMAND or
* SPOT.
The instance purchasing option. Valid values are ON_DEMAND or
* SPOT.
The instance purchasing option. Valid values are ON_DEMAND or
* SPOT.
The instance purchasing option. Valid values are ON_DEMAND or
* SPOT.
The Amazon EC2 instance type, for example m3.xlarge.
The Amazon EC2 instance type, for example m3.xlarge.
The Amazon EC2 instance type, for example m3.xlarge.
The Amazon EC2 instance type, for example m3.xlarge.
The Amazon EC2 instance type, for example m3.xlarge.
The Amazon EC2 instance type, for example m3.xlarge.
The Amazon EC2 instance type, for example m3.xlarge.
The Amazon EC2 instance type, for example m3.xlarge.
The list of Amazon EBS volumes that are attached to this instance.
*/ inline const Aws::VectorThe list of Amazon EBS volumes that are attached to this instance.
*/ inline bool EbsVolumesHasBeenSet() const { return m_ebsVolumesHasBeenSet; } /** *The list of Amazon EBS volumes that are attached to this instance.
*/ inline void SetEbsVolumes(const Aws::VectorThe list of Amazon EBS volumes that are attached to this instance.
*/ inline void SetEbsVolumes(Aws::VectorThe list of Amazon EBS volumes that are attached to this instance.
*/ inline Instance& WithEbsVolumes(const Aws::VectorThe list of Amazon EBS volumes that are attached to this instance.
*/ inline Instance& WithEbsVolumes(Aws::VectorThe list of Amazon EBS volumes that are attached to this instance.
*/ inline Instance& AddEbsVolumes(const EbsVolume& value) { m_ebsVolumesHasBeenSet = true; m_ebsVolumes.push_back(value); return *this; } /** *The list of Amazon EBS volumes that are attached to this instance.
*/ inline Instance& AddEbsVolumes(EbsVolume&& value) { m_ebsVolumesHasBeenSet = true; m_ebsVolumes.push_back(std::move(value)); return *this; } private: Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_ec2InstanceId; bool m_ec2InstanceIdHasBeenSet = false; Aws::String m_publicDnsName; bool m_publicDnsNameHasBeenSet = false; Aws::String m_publicIpAddress; bool m_publicIpAddressHasBeenSet = false; Aws::String m_privateDnsName; bool m_privateDnsNameHasBeenSet = false; Aws::String m_privateIpAddress; bool m_privateIpAddressHasBeenSet = false; InstanceStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_instanceGroupId; bool m_instanceGroupIdHasBeenSet = false; Aws::String m_instanceFleetId; bool m_instanceFleetIdHasBeenSet = false; MarketType m_market; bool m_marketHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::Vector