/** * 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 ComputeOptimizer { namespace Model { /** *

Describes the configuration of an Amazon Elastic Block Store (Amazon EBS) * volume.

See Also:

AWS * API Reference

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

The volume type.

This can be gp2 for General Purpose SSD, * io1 or io2 for Provisioned IOPS SSD, st1 * for Throughput Optimized HDD, sc1 for Cold HDD, or * standard for Magnetic volumes.

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

The volume type.

This can be gp2 for General Purpose SSD, * io1 or io2 for Provisioned IOPS SSD, st1 * for Throughput Optimized HDD, sc1 for Cold HDD, or * standard for Magnetic volumes.

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

The volume type.

This can be gp2 for General Purpose SSD, * io1 or io2 for Provisioned IOPS SSD, st1 * for Throughput Optimized HDD, sc1 for Cold HDD, or * standard for Magnetic volumes.

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

The volume type.

This can be gp2 for General Purpose SSD, * io1 or io2 for Provisioned IOPS SSD, st1 * for Throughput Optimized HDD, sc1 for Cold HDD, or * standard for Magnetic volumes.

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

The volume type.

This can be gp2 for General Purpose SSD, * io1 or io2 for Provisioned IOPS SSD, st1 * for Throughput Optimized HDD, sc1 for Cold HDD, or * standard for Magnetic volumes.

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

The volume type.

This can be gp2 for General Purpose SSD, * io1 or io2 for Provisioned IOPS SSD, st1 * for Throughput Optimized HDD, sc1 for Cold HDD, or * standard for Magnetic volumes.

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

The volume type.

This can be gp2 for General Purpose SSD, * io1 or io2 for Provisioned IOPS SSD, st1 * for Throughput Optimized HDD, sc1 for Cold HDD, or * standard for Magnetic volumes.

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

The volume type.

This can be gp2 for General Purpose SSD, * io1 or io2 for Provisioned IOPS SSD, st1 * for Throughput Optimized HDD, sc1 for Cold HDD, or * standard for Magnetic volumes.

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

The size of the volume, in GiB.

*/ inline int GetVolumeSize() const{ return m_volumeSize; } /** *

The size of the volume, in GiB.

*/ inline bool VolumeSizeHasBeenSet() const { return m_volumeSizeHasBeenSet; } /** *

The size of the volume, in GiB.

*/ inline void SetVolumeSize(int value) { m_volumeSizeHasBeenSet = true; m_volumeSize = value; } /** *

The size of the volume, in GiB.

*/ inline VolumeConfiguration& WithVolumeSize(int value) { SetVolumeSize(value); return *this;} /** *

The baseline IOPS of the volume.

*/ inline int GetVolumeBaselineIOPS() const{ return m_volumeBaselineIOPS; } /** *

The baseline IOPS of the volume.

*/ inline bool VolumeBaselineIOPSHasBeenSet() const { return m_volumeBaselineIOPSHasBeenSet; } /** *

The baseline IOPS of the volume.

*/ inline void SetVolumeBaselineIOPS(int value) { m_volumeBaselineIOPSHasBeenSet = true; m_volumeBaselineIOPS = value; } /** *

The baseline IOPS of the volume.

*/ inline VolumeConfiguration& WithVolumeBaselineIOPS(int value) { SetVolumeBaselineIOPS(value); return *this;} /** *

The burst IOPS of the volume.

*/ inline int GetVolumeBurstIOPS() const{ return m_volumeBurstIOPS; } /** *

The burst IOPS of the volume.

*/ inline bool VolumeBurstIOPSHasBeenSet() const { return m_volumeBurstIOPSHasBeenSet; } /** *

The burst IOPS of the volume.

*/ inline void SetVolumeBurstIOPS(int value) { m_volumeBurstIOPSHasBeenSet = true; m_volumeBurstIOPS = value; } /** *

The burst IOPS of the volume.

*/ inline VolumeConfiguration& WithVolumeBurstIOPS(int value) { SetVolumeBurstIOPS(value); return *this;} /** *

The baseline throughput of the volume.

*/ inline int GetVolumeBaselineThroughput() const{ return m_volumeBaselineThroughput; } /** *

The baseline throughput of the volume.

*/ inline bool VolumeBaselineThroughputHasBeenSet() const { return m_volumeBaselineThroughputHasBeenSet; } /** *

The baseline throughput of the volume.

*/ inline void SetVolumeBaselineThroughput(int value) { m_volumeBaselineThroughputHasBeenSet = true; m_volumeBaselineThroughput = value; } /** *

The baseline throughput of the volume.

*/ inline VolumeConfiguration& WithVolumeBaselineThroughput(int value) { SetVolumeBaselineThroughput(value); return *this;} /** *

The burst throughput of the volume.

*/ inline int GetVolumeBurstThroughput() const{ return m_volumeBurstThroughput; } /** *

The burst throughput of the volume.

*/ inline bool VolumeBurstThroughputHasBeenSet() const { return m_volumeBurstThroughputHasBeenSet; } /** *

The burst throughput of the volume.

*/ inline void SetVolumeBurstThroughput(int value) { m_volumeBurstThroughputHasBeenSet = true; m_volumeBurstThroughput = value; } /** *

The burst throughput of the volume.

*/ inline VolumeConfiguration& WithVolumeBurstThroughput(int value) { SetVolumeBurstThroughput(value); return *this;} /** *

Contains the image used to boot the instance during launch.

*/ inline bool GetRootVolume() const{ return m_rootVolume; } /** *

Contains the image used to boot the instance during launch.

*/ inline bool RootVolumeHasBeenSet() const { return m_rootVolumeHasBeenSet; } /** *

Contains the image used to boot the instance during launch.

*/ inline void SetRootVolume(bool value) { m_rootVolumeHasBeenSet = true; m_rootVolume = value; } /** *

Contains the image used to boot the instance during launch.

*/ inline VolumeConfiguration& WithRootVolume(bool value) { SetRootVolume(value); return *this;} private: Aws::String m_volumeType; bool m_volumeTypeHasBeenSet = false; int m_volumeSize; bool m_volumeSizeHasBeenSet = false; int m_volumeBaselineIOPS; bool m_volumeBaselineIOPSHasBeenSet = false; int m_volumeBurstIOPS; bool m_volumeBurstIOPSHasBeenSet = false; int m_volumeBaselineThroughput; bool m_volumeBaselineThroughputHasBeenSet = false; int m_volumeBurstThroughput; bool m_volumeBurstThroughputHasBeenSet = false; bool m_rootVolume; bool m_rootVolumeHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws