/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include This entity represents an instance group, which is a group of instances that
* have common purpose. For example, CORE instance group is used for
* HDFS.See Also:
AWS
* API Reference
The identifier of the instance group.
*/ inline const Aws::String& GetId() const{ return m_id; } /** *The identifier of the instance group.
*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *The identifier of the instance group.
*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *The identifier of the instance group.
*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *The identifier of the instance group.
*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *The identifier of the instance group.
*/ inline InstanceGroup& WithId(const Aws::String& value) { SetId(value); return *this;} /** *The identifier of the instance group.
*/ inline InstanceGroup& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *The identifier of the instance group.
*/ inline InstanceGroup& WithId(const char* value) { SetId(value); return *this;} /** *The name of the instance group.
*/ inline const Aws::String& GetName() const{ return m_name; } /** *The name of the instance group.
*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *The name of the instance group.
*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *The name of the instance group.
*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *The name of the instance group.
*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *The name of the instance group.
*/ inline InstanceGroup& WithName(const Aws::String& value) { SetName(value); return *this;} /** *The name of the instance group.
*/ inline InstanceGroup& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *The name of the instance group.
*/ inline InstanceGroup& WithName(const char* value) { SetName(value); return *this;} /** *The marketplace to provision instances for this group. Valid values are * ON_DEMAND or SPOT.
*/ inline const MarketType& GetMarket() const{ return m_market; } /** *The marketplace to provision instances for this group. Valid values are * ON_DEMAND or SPOT.
*/ inline bool MarketHasBeenSet() const { return m_marketHasBeenSet; } /** *The marketplace to provision instances for this group. Valid values are * ON_DEMAND or SPOT.
*/ inline void SetMarket(const MarketType& value) { m_marketHasBeenSet = true; m_market = value; } /** *The marketplace to provision instances for this group. Valid values are * ON_DEMAND or SPOT.
*/ inline void SetMarket(MarketType&& value) { m_marketHasBeenSet = true; m_market = std::move(value); } /** *The marketplace to provision instances for this group. Valid values are * ON_DEMAND or SPOT.
*/ inline InstanceGroup& WithMarket(const MarketType& value) { SetMarket(value); return *this;} /** *The marketplace to provision instances for this group. Valid values are * ON_DEMAND or SPOT.
*/ inline InstanceGroup& WithMarket(MarketType&& value) { SetMarket(std::move(value)); return *this;} /** *The type of the instance group. Valid values are MASTER, CORE or TASK.
*/ inline const InstanceGroupType& GetInstanceGroupType() const{ return m_instanceGroupType; } /** *The type of the instance group. Valid values are MASTER, CORE or TASK.
*/ inline bool InstanceGroupTypeHasBeenSet() const { return m_instanceGroupTypeHasBeenSet; } /** *The type of the instance group. Valid values are MASTER, CORE or TASK.
*/ inline void SetInstanceGroupType(const InstanceGroupType& value) { m_instanceGroupTypeHasBeenSet = true; m_instanceGroupType = value; } /** *The type of the instance group. Valid values are MASTER, CORE or TASK.
*/ inline void SetInstanceGroupType(InstanceGroupType&& value) { m_instanceGroupTypeHasBeenSet = true; m_instanceGroupType = std::move(value); } /** *The type of the instance group. Valid values are MASTER, CORE or TASK.
*/ inline InstanceGroup& WithInstanceGroupType(const InstanceGroupType& value) { SetInstanceGroupType(value); return *this;} /** *The type of the instance group. Valid values are MASTER, CORE or TASK.
*/ inline InstanceGroup& WithInstanceGroupType(InstanceGroupType&& value) { SetInstanceGroupType(std::move(value)); return *this;} /** *If specified, indicates that the instance group uses Spot Instances. This is
* the maximum price you are willing to pay for Spot Instances. Specify
* OnDemandPrice
to set the amount equal to the On-Demand price, or
* specify an amount in USD.
If specified, indicates that the instance group uses Spot Instances. This is
* the maximum price you are willing to pay for Spot Instances. Specify
* OnDemandPrice
to set the amount equal to the On-Demand price, or
* specify an amount in USD.
If specified, indicates that the instance group uses Spot Instances. This is
* the maximum price you are willing to pay for Spot Instances. Specify
* OnDemandPrice
to set the amount equal to the On-Demand price, or
* specify an amount in USD.
If specified, indicates that the instance group uses Spot Instances. This is
* the maximum price you are willing to pay for Spot Instances. Specify
* OnDemandPrice
to set the amount equal to the On-Demand price, or
* specify an amount in USD.
If specified, indicates that the instance group uses Spot Instances. This is
* the maximum price you are willing to pay for Spot Instances. Specify
* OnDemandPrice
to set the amount equal to the On-Demand price, or
* specify an amount in USD.
If specified, indicates that the instance group uses Spot Instances. This is
* the maximum price you are willing to pay for Spot Instances. Specify
* OnDemandPrice
to set the amount equal to the On-Demand price, or
* specify an amount in USD.
If specified, indicates that the instance group uses Spot Instances. This is
* the maximum price you are willing to pay for Spot Instances. Specify
* OnDemandPrice
to set the amount equal to the On-Demand price, or
* specify an amount in USD.
If specified, indicates that the instance group uses Spot Instances. This is
* the maximum price you are willing to pay for Spot Instances. Specify
* OnDemandPrice
to set the amount equal to the On-Demand price, or
* specify an amount in USD.
The Amazon EC2 instance type for all instances in the instance group.
*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *The Amazon EC2 instance type for all instances in the instance group.
*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *The Amazon EC2 instance type for all instances in the instance group.
*/ inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *The Amazon EC2 instance type for all instances in the instance group.
*/ inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *The Amazon EC2 instance type for all instances in the instance group.
*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *The Amazon EC2 instance type for all instances in the instance group.
*/ inline InstanceGroup& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *The Amazon EC2 instance type for all instances in the instance group.
*/ inline InstanceGroup& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} /** *The Amazon EC2 instance type for all instances in the instance group.
*/ inline InstanceGroup& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *The target number of instances for the instance group.
*/ inline int GetRequestedInstanceCount() const{ return m_requestedInstanceCount; } /** *The target number of instances for the instance group.
*/ inline bool RequestedInstanceCountHasBeenSet() const { return m_requestedInstanceCountHasBeenSet; } /** *The target number of instances for the instance group.
*/ inline void SetRequestedInstanceCount(int value) { m_requestedInstanceCountHasBeenSet = true; m_requestedInstanceCount = value; } /** *The target number of instances for the instance group.
*/ inline InstanceGroup& WithRequestedInstanceCount(int value) { SetRequestedInstanceCount(value); return *this;} /** *The number of instances currently running in this instance group.
*/ inline int GetRunningInstanceCount() const{ return m_runningInstanceCount; } /** *The number of instances currently running in this instance group.
*/ inline bool RunningInstanceCountHasBeenSet() const { return m_runningInstanceCountHasBeenSet; } /** *The number of instances currently running in this instance group.
*/ inline void SetRunningInstanceCount(int value) { m_runningInstanceCountHasBeenSet = true; m_runningInstanceCount = value; } /** *The number of instances currently running in this instance group.
*/ inline InstanceGroup& WithRunningInstanceCount(int value) { SetRunningInstanceCount(value); return *this;} /** *The current status of the instance group.
*/ inline const InstanceGroupStatus& GetStatus() const{ return m_status; } /** *The current status of the instance group.
*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *The current status of the instance group.
*/ inline void SetStatus(const InstanceGroupStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *The current status of the instance group.
*/ inline void SetStatus(InstanceGroupStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *The current status of the instance group.
*/ inline InstanceGroup& WithStatus(const InstanceGroupStatus& value) { SetStatus(value); return *this;} /** *The current status of the instance group.
*/ inline InstanceGroup& WithStatus(InstanceGroupStatus&& value) { SetStatus(std::move(value)); return *this;} /** *Amazon EMR releases 4.x or later.
The list of * configurations supplied for an Amazon EMR cluster instance group. You can * specify a separate configuration for each instance group (master, core, and * task).
*/ inline const Aws::VectorAmazon EMR releases 4.x or later.
The list of * configurations supplied for an Amazon EMR cluster instance group. You can * specify a separate configuration for each instance group (master, core, and * task).
*/ inline bool ConfigurationsHasBeenSet() const { return m_configurationsHasBeenSet; } /** *Amazon EMR releases 4.x or later.
The list of * configurations supplied for an Amazon EMR cluster instance group. You can * specify a separate configuration for each instance group (master, core, and * task).
*/ inline void SetConfigurations(const Aws::VectorAmazon EMR releases 4.x or later.
The list of * configurations supplied for an Amazon EMR cluster instance group. You can * specify a separate configuration for each instance group (master, core, and * task).
*/ inline void SetConfigurations(Aws::VectorAmazon EMR releases 4.x or later.
The list of * configurations supplied for an Amazon EMR cluster instance group. You can * specify a separate configuration for each instance group (master, core, and * task).
*/ inline InstanceGroup& WithConfigurations(const Aws::VectorAmazon EMR releases 4.x or later.
The list of * configurations supplied for an Amazon EMR cluster instance group. You can * specify a separate configuration for each instance group (master, core, and * task).
*/ inline InstanceGroup& WithConfigurations(Aws::VectorAmazon EMR releases 4.x or later.
The list of * configurations supplied for an Amazon EMR cluster instance group. You can * specify a separate configuration for each instance group (master, core, and * task).
*/ inline InstanceGroup& AddConfigurations(const Configuration& value) { m_configurationsHasBeenSet = true; m_configurations.push_back(value); return *this; } /** *Amazon EMR releases 4.x or later.
The list of * configurations supplied for an Amazon EMR cluster instance group. You can * specify a separate configuration for each instance group (master, core, and * task).
*/ inline InstanceGroup& AddConfigurations(Configuration&& value) { m_configurationsHasBeenSet = true; m_configurations.push_back(std::move(value)); return *this; } /** *The version number of the requested configuration specification for this * instance group.
*/ inline long long GetConfigurationsVersion() const{ return m_configurationsVersion; } /** *The version number of the requested configuration specification for this * instance group.
*/ inline bool ConfigurationsVersionHasBeenSet() const { return m_configurationsVersionHasBeenSet; } /** *The version number of the requested configuration specification for this * instance group.
*/ inline void SetConfigurationsVersion(long long value) { m_configurationsVersionHasBeenSet = true; m_configurationsVersion = value; } /** *The version number of the requested configuration specification for this * instance group.
*/ inline InstanceGroup& WithConfigurationsVersion(long long value) { SetConfigurationsVersion(value); return *this;} /** *A list of configurations that were successfully applied for an instance group * last time.
*/ inline const Aws::VectorA list of configurations that were successfully applied for an instance group * last time.
*/ inline bool LastSuccessfullyAppliedConfigurationsHasBeenSet() const { return m_lastSuccessfullyAppliedConfigurationsHasBeenSet; } /** *A list of configurations that were successfully applied for an instance group * last time.
*/ inline void SetLastSuccessfullyAppliedConfigurations(const Aws::VectorA list of configurations that were successfully applied for an instance group * last time.
*/ inline void SetLastSuccessfullyAppliedConfigurations(Aws::VectorA list of configurations that were successfully applied for an instance group * last time.
*/ inline InstanceGroup& WithLastSuccessfullyAppliedConfigurations(const Aws::VectorA list of configurations that were successfully applied for an instance group * last time.
*/ inline InstanceGroup& WithLastSuccessfullyAppliedConfigurations(Aws::VectorA list of configurations that were successfully applied for an instance group * last time.
*/ inline InstanceGroup& AddLastSuccessfullyAppliedConfigurations(const Configuration& value) { m_lastSuccessfullyAppliedConfigurationsHasBeenSet = true; m_lastSuccessfullyAppliedConfigurations.push_back(value); return *this; } /** *A list of configurations that were successfully applied for an instance group * last time.
*/ inline InstanceGroup& AddLastSuccessfullyAppliedConfigurations(Configuration&& value) { m_lastSuccessfullyAppliedConfigurationsHasBeenSet = true; m_lastSuccessfullyAppliedConfigurations.push_back(std::move(value)); return *this; } /** *The version number of a configuration specification that was successfully * applied for an instance group last time.
*/ inline long long GetLastSuccessfullyAppliedConfigurationsVersion() const{ return m_lastSuccessfullyAppliedConfigurationsVersion; } /** *The version number of a configuration specification that was successfully * applied for an instance group last time.
*/ inline bool LastSuccessfullyAppliedConfigurationsVersionHasBeenSet() const { return m_lastSuccessfullyAppliedConfigurationsVersionHasBeenSet; } /** *The version number of a configuration specification that was successfully * applied for an instance group last time.
*/ inline void SetLastSuccessfullyAppliedConfigurationsVersion(long long value) { m_lastSuccessfullyAppliedConfigurationsVersionHasBeenSet = true; m_lastSuccessfullyAppliedConfigurationsVersion = value; } /** *The version number of a configuration specification that was successfully * applied for an instance group last time.
*/ inline InstanceGroup& WithLastSuccessfullyAppliedConfigurationsVersion(long long value) { SetLastSuccessfullyAppliedConfigurationsVersion(value); return *this;} /** *The EBS block devices that are mapped to this instance group.
*/ inline const Aws::VectorThe EBS block devices that are mapped to this instance group.
*/ inline bool EbsBlockDevicesHasBeenSet() const { return m_ebsBlockDevicesHasBeenSet; } /** *The EBS block devices that are mapped to this instance group.
*/ inline void SetEbsBlockDevices(const Aws::VectorThe EBS block devices that are mapped to this instance group.
*/ inline void SetEbsBlockDevices(Aws::VectorThe EBS block devices that are mapped to this instance group.
*/ inline InstanceGroup& WithEbsBlockDevices(const Aws::VectorThe EBS block devices that are mapped to this instance group.
*/ inline InstanceGroup& WithEbsBlockDevices(Aws::VectorThe EBS block devices that are mapped to this instance group.
*/ inline InstanceGroup& AddEbsBlockDevices(const EbsBlockDevice& value) { m_ebsBlockDevicesHasBeenSet = true; m_ebsBlockDevices.push_back(value); return *this; } /** *The EBS block devices that are mapped to this instance group.
*/ inline InstanceGroup& AddEbsBlockDevices(EbsBlockDevice&& value) { m_ebsBlockDevicesHasBeenSet = true; m_ebsBlockDevices.push_back(std::move(value)); return *this; } /** *If the instance group is EBS-optimized. An Amazon EBS-optimized instance uses * an optimized configuration stack and provides additional, dedicated capacity for * Amazon EBS I/O.
*/ inline bool GetEbsOptimized() const{ return m_ebsOptimized; } /** *If the instance group is EBS-optimized. An Amazon EBS-optimized instance uses * an optimized configuration stack and provides additional, dedicated capacity for * Amazon EBS I/O.
*/ inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; } /** *If the instance group is EBS-optimized. An Amazon EBS-optimized instance uses * an optimized configuration stack and provides additional, dedicated capacity for * Amazon EBS I/O.
*/ inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; } /** *If the instance group is EBS-optimized. An Amazon EBS-optimized instance uses * an optimized configuration stack and provides additional, dedicated capacity for * Amazon EBS I/O.
*/ inline InstanceGroup& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;} /** *Policy for customizing shrink operations.
*/ inline const ShrinkPolicy& GetShrinkPolicy() const{ return m_shrinkPolicy; } /** *Policy for customizing shrink operations.
*/ inline bool ShrinkPolicyHasBeenSet() const { return m_shrinkPolicyHasBeenSet; } /** *Policy for customizing shrink operations.
*/ inline void SetShrinkPolicy(const ShrinkPolicy& value) { m_shrinkPolicyHasBeenSet = true; m_shrinkPolicy = value; } /** *Policy for customizing shrink operations.
*/ inline void SetShrinkPolicy(ShrinkPolicy&& value) { m_shrinkPolicyHasBeenSet = true; m_shrinkPolicy = std::move(value); } /** *Policy for customizing shrink operations.
*/ inline InstanceGroup& WithShrinkPolicy(const ShrinkPolicy& value) { SetShrinkPolicy(value); return *this;} /** *Policy for customizing shrink operations.
*/ inline InstanceGroup& WithShrinkPolicy(ShrinkPolicy&& value) { SetShrinkPolicy(std::move(value)); return *this;} /** *An automatic scaling policy for a core instance group or task instance group * in an Amazon EMR cluster. The automatic scaling policy defines how an instance * group dynamically adds and terminates Amazon EC2 instances in response to the * value of a CloudWatch metric. See PutAutoScalingPolicy.
*/ inline const AutoScalingPolicyDescription& GetAutoScalingPolicy() const{ return m_autoScalingPolicy; } /** *An automatic scaling policy for a core instance group or task instance group * in an Amazon EMR cluster. The automatic scaling policy defines how an instance * group dynamically adds and terminates Amazon EC2 instances in response to the * value of a CloudWatch metric. See PutAutoScalingPolicy.
*/ inline bool AutoScalingPolicyHasBeenSet() const { return m_autoScalingPolicyHasBeenSet; } /** *An automatic scaling policy for a core instance group or task instance group * in an Amazon EMR cluster. The automatic scaling policy defines how an instance * group dynamically adds and terminates Amazon EC2 instances in response to the * value of a CloudWatch metric. See PutAutoScalingPolicy.
*/ inline void SetAutoScalingPolicy(const AutoScalingPolicyDescription& value) { m_autoScalingPolicyHasBeenSet = true; m_autoScalingPolicy = value; } /** *An automatic scaling policy for a core instance group or task instance group * in an Amazon EMR cluster. The automatic scaling policy defines how an instance * group dynamically adds and terminates Amazon EC2 instances in response to the * value of a CloudWatch metric. See PutAutoScalingPolicy.
*/ inline void SetAutoScalingPolicy(AutoScalingPolicyDescription&& value) { m_autoScalingPolicyHasBeenSet = true; m_autoScalingPolicy = std::move(value); } /** *An automatic scaling policy for a core instance group or task instance group * in an Amazon EMR cluster. The automatic scaling policy defines how an instance * group dynamically adds and terminates Amazon EC2 instances in response to the * value of a CloudWatch metric. See PutAutoScalingPolicy.
*/ inline InstanceGroup& WithAutoScalingPolicy(const AutoScalingPolicyDescription& value) { SetAutoScalingPolicy(value); return *this;} /** *An automatic scaling policy for a core instance group or task instance group * in an Amazon EMR cluster. The automatic scaling policy defines how an instance * group dynamically adds and terminates Amazon EC2 instances in response to the * value of a CloudWatch metric. See PutAutoScalingPolicy.
*/ inline InstanceGroup& WithAutoScalingPolicy(AutoScalingPolicyDescription&& value) { SetAutoScalingPolicy(std::move(value)); return *this;} /** *The custom AMI ID to use for the provisioned instance group.
*/ inline const Aws::String& GetCustomAmiId() const{ return m_customAmiId; } /** *The custom AMI ID to use for the provisioned instance group.
*/ inline bool CustomAmiIdHasBeenSet() const { return m_customAmiIdHasBeenSet; } /** *The custom AMI ID to use for the provisioned instance group.
*/ inline void SetCustomAmiId(const Aws::String& value) { m_customAmiIdHasBeenSet = true; m_customAmiId = value; } /** *The custom AMI ID to use for the provisioned instance group.
*/ inline void SetCustomAmiId(Aws::String&& value) { m_customAmiIdHasBeenSet = true; m_customAmiId = std::move(value); } /** *The custom AMI ID to use for the provisioned instance group.
*/ inline void SetCustomAmiId(const char* value) { m_customAmiIdHasBeenSet = true; m_customAmiId.assign(value); } /** *The custom AMI ID to use for the provisioned instance group.
*/ inline InstanceGroup& WithCustomAmiId(const Aws::String& value) { SetCustomAmiId(value); return *this;} /** *The custom AMI ID to use for the provisioned instance group.
*/ inline InstanceGroup& WithCustomAmiId(Aws::String&& value) { SetCustomAmiId(std::move(value)); return *this;} /** *The custom AMI ID to use for the provisioned instance group.
*/ inline InstanceGroup& WithCustomAmiId(const char* value) { SetCustomAmiId(value); return *this;} private: Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; MarketType m_market; bool m_marketHasBeenSet = false; InstanceGroupType m_instanceGroupType; bool m_instanceGroupTypeHasBeenSet = false; Aws::String m_bidPrice; bool m_bidPriceHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; int m_requestedInstanceCount; bool m_requestedInstanceCountHasBeenSet = false; int m_runningInstanceCount; bool m_runningInstanceCountHasBeenSet = false; InstanceGroupStatus m_status; bool m_statusHasBeenSet = false; Aws::Vector