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

Configuration of requested EBS block device associated with the instance * group with count of volumes that will be associated to every * instance.

See Also:

AWS * API Reference

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

EBS volume specifications such as volume type, IOPS, and size (GiB) that will * be requested for the EBS volume attached to an EC2 instance in the cluster.

*/ inline const VolumeSpecification& GetVolumeSpecification() const{ return m_volumeSpecification; } /** *

EBS volume specifications such as volume type, IOPS, and size (GiB) that will * be requested for the EBS volume attached to an EC2 instance in the cluster.

*/ inline bool VolumeSpecificationHasBeenSet() const { return m_volumeSpecificationHasBeenSet; } /** *

EBS volume specifications such as volume type, IOPS, and size (GiB) that will * be requested for the EBS volume attached to an EC2 instance in the cluster.

*/ inline void SetVolumeSpecification(const VolumeSpecification& value) { m_volumeSpecificationHasBeenSet = true; m_volumeSpecification = value; } /** *

EBS volume specifications such as volume type, IOPS, and size (GiB) that will * be requested for the EBS volume attached to an EC2 instance in the cluster.

*/ inline void SetVolumeSpecification(VolumeSpecification&& value) { m_volumeSpecificationHasBeenSet = true; m_volumeSpecification = std::move(value); } /** *

EBS volume specifications such as volume type, IOPS, and size (GiB) that will * be requested for the EBS volume attached to an EC2 instance in the cluster.

*/ inline EbsBlockDeviceConfig& WithVolumeSpecification(const VolumeSpecification& value) { SetVolumeSpecification(value); return *this;} /** *

EBS volume specifications such as volume type, IOPS, and size (GiB) that will * be requested for the EBS volume attached to an EC2 instance in the cluster.

*/ inline EbsBlockDeviceConfig& WithVolumeSpecification(VolumeSpecification&& value) { SetVolumeSpecification(std::move(value)); return *this;} /** *

Number of EBS volumes with a specific volume configuration that will be * associated with every instance in the instance group

*/ inline int GetVolumesPerInstance() const{ return m_volumesPerInstance; } /** *

Number of EBS volumes with a specific volume configuration that will be * associated with every instance in the instance group

*/ inline bool VolumesPerInstanceHasBeenSet() const { return m_volumesPerInstanceHasBeenSet; } /** *

Number of EBS volumes with a specific volume configuration that will be * associated with every instance in the instance group

*/ inline void SetVolumesPerInstance(int value) { m_volumesPerInstanceHasBeenSet = true; m_volumesPerInstance = value; } /** *

Number of EBS volumes with a specific volume configuration that will be * associated with every instance in the instance group

*/ inline EbsBlockDeviceConfig& WithVolumesPerInstance(int value) { SetVolumesPerInstance(value); return *this;} private: VolumeSpecification m_volumeSpecification; bool m_volumeSpecificationHasBeenSet; int m_volumesPerInstance; bool m_volumesPerInstanceHasBeenSet; }; } // namespace Model } // namespace EMR } // namespace Aws