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

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

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

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.

*/ inline const Aws::String& GetBidPrice() const{ return m_bidPrice; } /** *

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.

*/ inline bool BidPriceHasBeenSet() const { return m_bidPriceHasBeenSet; } /** *

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.

*/ inline void SetBidPrice(const Aws::String& value) { m_bidPriceHasBeenSet = true; m_bidPrice = value; } /** *

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.

*/ inline void SetBidPrice(Aws::String&& value) { m_bidPriceHasBeenSet = true; m_bidPrice = std::move(value); } /** *

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.

*/ inline void SetBidPrice(const char* value) { m_bidPriceHasBeenSet = true; m_bidPrice.assign(value); } /** *

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.

*/ inline InstanceGroup& WithBidPrice(const Aws::String& value) { SetBidPrice(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.

*/ inline InstanceGroup& WithBidPrice(Aws::String&& value) { SetBidPrice(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.

*/ inline InstanceGroup& WithBidPrice(const char* value) { SetBidPrice(value); return *this;} /** *

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::Vector& GetConfigurations() const{ return m_configurations; } /** *

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 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::Vector& value) { m_configurationsHasBeenSet = true; m_configurations = value; } /** *

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(Aws::Vector&& value) { m_configurationsHasBeenSet = true; m_configurations = std::move(value); } /** *

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& WithConfigurations(const Aws::Vector& value) { SetConfigurations(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& WithConfigurations(Aws::Vector&& value) { SetConfigurations(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 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::Vector& GetLastSuccessfullyAppliedConfigurations() const{ return m_lastSuccessfullyAppliedConfigurations; } /** *

A 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::Vector& value) { m_lastSuccessfullyAppliedConfigurationsHasBeenSet = true; m_lastSuccessfullyAppliedConfigurations = value; } /** *

A list of configurations that were successfully applied for an instance group * last time.

*/ inline void SetLastSuccessfullyAppliedConfigurations(Aws::Vector&& value) { m_lastSuccessfullyAppliedConfigurationsHasBeenSet = true; m_lastSuccessfullyAppliedConfigurations = std::move(value); } /** *

A list of configurations that were successfully applied for an instance group * last time.

*/ inline InstanceGroup& WithLastSuccessfullyAppliedConfigurations(const Aws::Vector& value) { SetLastSuccessfullyAppliedConfigurations(value); return *this;} /** *

A list of configurations that were successfully applied for an instance group * last time.

*/ inline InstanceGroup& WithLastSuccessfullyAppliedConfigurations(Aws::Vector&& value) { SetLastSuccessfullyAppliedConfigurations(std::move(value)); return *this;} /** *

A 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::Vector& GetEbsBlockDevices() const{ return m_ebsBlockDevices; } /** *

The 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::Vector& value) { m_ebsBlockDevicesHasBeenSet = true; m_ebsBlockDevices = value; } /** *

The EBS block devices that are mapped to this instance group.

*/ inline void SetEbsBlockDevices(Aws::Vector&& value) { m_ebsBlockDevicesHasBeenSet = true; m_ebsBlockDevices = std::move(value); } /** *

The EBS block devices that are mapped to this instance group.

*/ inline InstanceGroup& WithEbsBlockDevices(const Aws::Vector& value) { SetEbsBlockDevices(value); return *this;} /** *

The EBS block devices that are mapped to this instance group.

*/ inline InstanceGroup& WithEbsBlockDevices(Aws::Vector&& value) { SetEbsBlockDevices(std::move(value)); return *this;} /** *

The 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 m_configurations; bool m_configurationsHasBeenSet = false; long long m_configurationsVersion; bool m_configurationsVersionHasBeenSet = false; Aws::Vector m_lastSuccessfullyAppliedConfigurations; bool m_lastSuccessfullyAppliedConfigurationsHasBeenSet = false; long long m_lastSuccessfullyAppliedConfigurationsVersion; bool m_lastSuccessfullyAppliedConfigurationsVersionHasBeenSet = false; Aws::Vector m_ebsBlockDevices; bool m_ebsBlockDevicesHasBeenSet = false; bool m_ebsOptimized; bool m_ebsOptimizedHasBeenSet = false; ShrinkPolicy m_shrinkPolicy; bool m_shrinkPolicyHasBeenSet = false; AutoScalingPolicyDescription m_autoScalingPolicy; bool m_autoScalingPolicyHasBeenSet = false; Aws::String m_customAmiId; bool m_customAmiIdHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws