/** * 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 { /** *

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.

See Also:

AWS * API Reference

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

The volume type. Volume types supported are gp2, io1, standard.

*/ inline const Aws::String& GetVolumeType() const{ return m_volumeType; } /** *

The volume type. Volume types supported are gp2, io1, standard.

*/ inline bool VolumeTypeHasBeenSet() const { return m_volumeTypeHasBeenSet; } /** *

The volume type. Volume types supported are gp2, io1, standard.

*/ inline void SetVolumeType(const Aws::String& value) { m_volumeTypeHasBeenSet = true; m_volumeType = value; } /** *

The volume type. Volume types supported are gp2, io1, standard.

*/ inline void SetVolumeType(Aws::String&& value) { m_volumeTypeHasBeenSet = true; m_volumeType = std::move(value); } /** *

The volume type. Volume types supported are gp2, io1, standard.

*/ inline void SetVolumeType(const char* value) { m_volumeTypeHasBeenSet = true; m_volumeType.assign(value); } /** *

The volume type. Volume types supported are gp2, io1, standard.

*/ inline VolumeSpecification& WithVolumeType(const Aws::String& value) { SetVolumeType(value); return *this;} /** *

The volume type. Volume types supported are gp2, io1, standard.

*/ inline VolumeSpecification& WithVolumeType(Aws::String&& value) { SetVolumeType(std::move(value)); return *this;} /** *

The volume type. Volume types supported are gp2, io1, standard.

*/ inline VolumeSpecification& WithVolumeType(const char* value) { SetVolumeType(value); return *this;} /** *

The number of I/O operations per second (IOPS) that the volume supports.

*/ inline int GetIops() const{ return m_iops; } /** *

The number of I/O operations per second (IOPS) that the volume supports.

*/ inline bool IopsHasBeenSet() const { return m_iopsHasBeenSet; } /** *

The number of I/O operations per second (IOPS) that the volume supports.

*/ inline void SetIops(int value) { m_iopsHasBeenSet = true; m_iops = value; } /** *

The number of I/O operations per second (IOPS) that the volume supports.

*/ inline VolumeSpecification& WithIops(int value) { SetIops(value); return *this;} /** *

The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If * the volume type is EBS-optimized, the minimum value is 10.

*/ inline int GetSizeInGB() const{ return m_sizeInGB; } /** *

The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If * the volume type is EBS-optimized, the minimum value is 10.

*/ inline bool SizeInGBHasBeenSet() const { return m_sizeInGBHasBeenSet; } /** *

The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If * the volume type is EBS-optimized, the minimum value is 10.

*/ inline void SetSizeInGB(int value) { m_sizeInGBHasBeenSet = true; m_sizeInGB = value; } /** *

The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If * the volume type is EBS-optimized, the minimum value is 10.

*/ inline VolumeSpecification& WithSizeInGB(int value) { SetSizeInGB(value); return *this;} private: Aws::String m_volumeType; bool m_volumeTypeHasBeenSet; int m_iops; bool m_iopsHasBeenSet; int m_sizeInGB; bool m_sizeInGBHasBeenSet; }; } // namespace Model } // namespace EMR } // namespace Aws