/** * 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, size (GiB) and * throughput (MiB/s) that are requested for the EBS volume attached to an Amazon * EC2 instance in the cluster.

See Also:

AWS * API Reference

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

The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and * standard.

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

The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and * standard.

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

The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and * standard.

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

The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and * standard.

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

The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and * standard.

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

The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and * standard.

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

The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and * standard.

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

The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and * 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;} /** *

The throughput, in mebibyte per second (MiB/s). This optional parameter can * be a number from 125 - 1000 and is valid only for gp3 volumes.

*/ inline int GetThroughput() const{ return m_throughput; } /** *

The throughput, in mebibyte per second (MiB/s). This optional parameter can * be a number from 125 - 1000 and is valid only for gp3 volumes.

*/ inline bool ThroughputHasBeenSet() const { return m_throughputHasBeenSet; } /** *

The throughput, in mebibyte per second (MiB/s). This optional parameter can * be a number from 125 - 1000 and is valid only for gp3 volumes.

*/ inline void SetThroughput(int value) { m_throughputHasBeenSet = true; m_throughput = value; } /** *

The throughput, in mebibyte per second (MiB/s). This optional parameter can * be a number from 125 - 1000 and is valid only for gp3 volumes.

*/ inline VolumeSpecification& WithThroughput(int value) { SetThroughput(value); return *this;} private: Aws::String m_volumeType; bool m_volumeTypeHasBeenSet = false; int m_iops; bool m_iopsHasBeenSet = false; int m_sizeInGB; bool m_sizeInGBHasBeenSet = false; int m_throughput; bool m_throughputHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws