/** * 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 namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes the modification status of an EBS volume.

If the volume has * never been modified, some element values will be null.

See Also:

* AWS * API Reference

*/ class VolumeModification { public: AWS_EC2_API VolumeModification(); AWS_EC2_API VolumeModification(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API VolumeModification& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The ID of the volume.

*/ inline const Aws::String& GetVolumeId() const{ return m_volumeId; } /** *

The ID of the volume.

*/ inline bool VolumeIdHasBeenSet() const { return m_volumeIdHasBeenSet; } /** *

The ID of the volume.

*/ inline void SetVolumeId(const Aws::String& value) { m_volumeIdHasBeenSet = true; m_volumeId = value; } /** *

The ID of the volume.

*/ inline void SetVolumeId(Aws::String&& value) { m_volumeIdHasBeenSet = true; m_volumeId = std::move(value); } /** *

The ID of the volume.

*/ inline void SetVolumeId(const char* value) { m_volumeIdHasBeenSet = true; m_volumeId.assign(value); } /** *

The ID of the volume.

*/ inline VolumeModification& WithVolumeId(const Aws::String& value) { SetVolumeId(value); return *this;} /** *

The ID of the volume.

*/ inline VolumeModification& WithVolumeId(Aws::String&& value) { SetVolumeId(std::move(value)); return *this;} /** *

The ID of the volume.

*/ inline VolumeModification& WithVolumeId(const char* value) { SetVolumeId(value); return *this;} /** *

The current modification state. The modification state is null for unmodified * volumes.

*/ inline const VolumeModificationState& GetModificationState() const{ return m_modificationState; } /** *

The current modification state. The modification state is null for unmodified * volumes.

*/ inline bool ModificationStateHasBeenSet() const { return m_modificationStateHasBeenSet; } /** *

The current modification state. The modification state is null for unmodified * volumes.

*/ inline void SetModificationState(const VolumeModificationState& value) { m_modificationStateHasBeenSet = true; m_modificationState = value; } /** *

The current modification state. The modification state is null for unmodified * volumes.

*/ inline void SetModificationState(VolumeModificationState&& value) { m_modificationStateHasBeenSet = true; m_modificationState = std::move(value); } /** *

The current modification state. The modification state is null for unmodified * volumes.

*/ inline VolumeModification& WithModificationState(const VolumeModificationState& value) { SetModificationState(value); return *this;} /** *

The current modification state. The modification state is null for unmodified * volumes.

*/ inline VolumeModification& WithModificationState(VolumeModificationState&& value) { SetModificationState(std::move(value)); return *this;} /** *

A status message about the modification progress or failure.

*/ inline const Aws::String& GetStatusMessage() const{ return m_statusMessage; } /** *

A status message about the modification progress or failure.

*/ inline bool StatusMessageHasBeenSet() const { return m_statusMessageHasBeenSet; } /** *

A status message about the modification progress or failure.

*/ inline void SetStatusMessage(const Aws::String& value) { m_statusMessageHasBeenSet = true; m_statusMessage = value; } /** *

A status message about the modification progress or failure.

*/ inline void SetStatusMessage(Aws::String&& value) { m_statusMessageHasBeenSet = true; m_statusMessage = std::move(value); } /** *

A status message about the modification progress or failure.

*/ inline void SetStatusMessage(const char* value) { m_statusMessageHasBeenSet = true; m_statusMessage.assign(value); } /** *

A status message about the modification progress or failure.

*/ inline VolumeModification& WithStatusMessage(const Aws::String& value) { SetStatusMessage(value); return *this;} /** *

A status message about the modification progress or failure.

*/ inline VolumeModification& WithStatusMessage(Aws::String&& value) { SetStatusMessage(std::move(value)); return *this;} /** *

A status message about the modification progress or failure.

*/ inline VolumeModification& WithStatusMessage(const char* value) { SetStatusMessage(value); return *this;} /** *

The target size of the volume, in GiB.

*/ inline int GetTargetSize() const{ return m_targetSize; } /** *

The target size of the volume, in GiB.

*/ inline bool TargetSizeHasBeenSet() const { return m_targetSizeHasBeenSet; } /** *

The target size of the volume, in GiB.

*/ inline void SetTargetSize(int value) { m_targetSizeHasBeenSet = true; m_targetSize = value; } /** *

The target size of the volume, in GiB.

*/ inline VolumeModification& WithTargetSize(int value) { SetTargetSize(value); return *this;} /** *

The target IOPS rate of the volume.

*/ inline int GetTargetIops() const{ return m_targetIops; } /** *

The target IOPS rate of the volume.

*/ inline bool TargetIopsHasBeenSet() const { return m_targetIopsHasBeenSet; } /** *

The target IOPS rate of the volume.

*/ inline void SetTargetIops(int value) { m_targetIopsHasBeenSet = true; m_targetIops = value; } /** *

The target IOPS rate of the volume.

*/ inline VolumeModification& WithTargetIops(int value) { SetTargetIops(value); return *this;} /** *

The target EBS volume type of the volume.

*/ inline const VolumeType& GetTargetVolumeType() const{ return m_targetVolumeType; } /** *

The target EBS volume type of the volume.

*/ inline bool TargetVolumeTypeHasBeenSet() const { return m_targetVolumeTypeHasBeenSet; } /** *

The target EBS volume type of the volume.

*/ inline void SetTargetVolumeType(const VolumeType& value) { m_targetVolumeTypeHasBeenSet = true; m_targetVolumeType = value; } /** *

The target EBS volume type of the volume.

*/ inline void SetTargetVolumeType(VolumeType&& value) { m_targetVolumeTypeHasBeenSet = true; m_targetVolumeType = std::move(value); } /** *

The target EBS volume type of the volume.

*/ inline VolumeModification& WithTargetVolumeType(const VolumeType& value) { SetTargetVolumeType(value); return *this;} /** *

The target EBS volume type of the volume.

*/ inline VolumeModification& WithTargetVolumeType(VolumeType&& value) { SetTargetVolumeType(std::move(value)); return *this;} /** *

The target throughput of the volume, in MiB/s.

*/ inline int GetTargetThroughput() const{ return m_targetThroughput; } /** *

The target throughput of the volume, in MiB/s.

*/ inline bool TargetThroughputHasBeenSet() const { return m_targetThroughputHasBeenSet; } /** *

The target throughput of the volume, in MiB/s.

*/ inline void SetTargetThroughput(int value) { m_targetThroughputHasBeenSet = true; m_targetThroughput = value; } /** *

The target throughput of the volume, in MiB/s.

*/ inline VolumeModification& WithTargetThroughput(int value) { SetTargetThroughput(value); return *this;} /** *

The target setting for Amazon EBS Multi-Attach.

*/ inline bool GetTargetMultiAttachEnabled() const{ return m_targetMultiAttachEnabled; } /** *

The target setting for Amazon EBS Multi-Attach.

*/ inline bool TargetMultiAttachEnabledHasBeenSet() const { return m_targetMultiAttachEnabledHasBeenSet; } /** *

The target setting for Amazon EBS Multi-Attach.

*/ inline void SetTargetMultiAttachEnabled(bool value) { m_targetMultiAttachEnabledHasBeenSet = true; m_targetMultiAttachEnabled = value; } /** *

The target setting for Amazon EBS Multi-Attach.

*/ inline VolumeModification& WithTargetMultiAttachEnabled(bool value) { SetTargetMultiAttachEnabled(value); return *this;} /** *

The original size of the volume, in GiB.

*/ inline int GetOriginalSize() const{ return m_originalSize; } /** *

The original size of the volume, in GiB.

*/ inline bool OriginalSizeHasBeenSet() const { return m_originalSizeHasBeenSet; } /** *

The original size of the volume, in GiB.

*/ inline void SetOriginalSize(int value) { m_originalSizeHasBeenSet = true; m_originalSize = value; } /** *

The original size of the volume, in GiB.

*/ inline VolumeModification& WithOriginalSize(int value) { SetOriginalSize(value); return *this;} /** *

The original IOPS rate of the volume.

*/ inline int GetOriginalIops() const{ return m_originalIops; } /** *

The original IOPS rate of the volume.

*/ inline bool OriginalIopsHasBeenSet() const { return m_originalIopsHasBeenSet; } /** *

The original IOPS rate of the volume.

*/ inline void SetOriginalIops(int value) { m_originalIopsHasBeenSet = true; m_originalIops = value; } /** *

The original IOPS rate of the volume.

*/ inline VolumeModification& WithOriginalIops(int value) { SetOriginalIops(value); return *this;} /** *

The original EBS volume type of the volume.

*/ inline const VolumeType& GetOriginalVolumeType() const{ return m_originalVolumeType; } /** *

The original EBS volume type of the volume.

*/ inline bool OriginalVolumeTypeHasBeenSet() const { return m_originalVolumeTypeHasBeenSet; } /** *

The original EBS volume type of the volume.

*/ inline void SetOriginalVolumeType(const VolumeType& value) { m_originalVolumeTypeHasBeenSet = true; m_originalVolumeType = value; } /** *

The original EBS volume type of the volume.

*/ inline void SetOriginalVolumeType(VolumeType&& value) { m_originalVolumeTypeHasBeenSet = true; m_originalVolumeType = std::move(value); } /** *

The original EBS volume type of the volume.

*/ inline VolumeModification& WithOriginalVolumeType(const VolumeType& value) { SetOriginalVolumeType(value); return *this;} /** *

The original EBS volume type of the volume.

*/ inline VolumeModification& WithOriginalVolumeType(VolumeType&& value) { SetOriginalVolumeType(std::move(value)); return *this;} /** *

The original throughput of the volume, in MiB/s.

*/ inline int GetOriginalThroughput() const{ return m_originalThroughput; } /** *

The original throughput of the volume, in MiB/s.

*/ inline bool OriginalThroughputHasBeenSet() const { return m_originalThroughputHasBeenSet; } /** *

The original throughput of the volume, in MiB/s.

*/ inline void SetOriginalThroughput(int value) { m_originalThroughputHasBeenSet = true; m_originalThroughput = value; } /** *

The original throughput of the volume, in MiB/s.

*/ inline VolumeModification& WithOriginalThroughput(int value) { SetOriginalThroughput(value); return *this;} /** *

The original setting for Amazon EBS Multi-Attach.

*/ inline bool GetOriginalMultiAttachEnabled() const{ return m_originalMultiAttachEnabled; } /** *

The original setting for Amazon EBS Multi-Attach.

*/ inline bool OriginalMultiAttachEnabledHasBeenSet() const { return m_originalMultiAttachEnabledHasBeenSet; } /** *

The original setting for Amazon EBS Multi-Attach.

*/ inline void SetOriginalMultiAttachEnabled(bool value) { m_originalMultiAttachEnabledHasBeenSet = true; m_originalMultiAttachEnabled = value; } /** *

The original setting for Amazon EBS Multi-Attach.

*/ inline VolumeModification& WithOriginalMultiAttachEnabled(bool value) { SetOriginalMultiAttachEnabled(value); return *this;} /** *

The modification progress, from 0 to 100 percent complete.

*/ inline long long GetProgress() const{ return m_progress; } /** *

The modification progress, from 0 to 100 percent complete.

*/ inline bool ProgressHasBeenSet() const { return m_progressHasBeenSet; } /** *

The modification progress, from 0 to 100 percent complete.

*/ inline void SetProgress(long long value) { m_progressHasBeenSet = true; m_progress = value; } /** *

The modification progress, from 0 to 100 percent complete.

*/ inline VolumeModification& WithProgress(long long value) { SetProgress(value); return *this;} /** *

The modification start time.

*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *

The modification start time.

*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

The modification start time.

*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

The modification start time.

*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

The modification start time.

*/ inline VolumeModification& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The modification start time.

*/ inline VolumeModification& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} /** *

The modification completion or failure time.

*/ inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; } /** *

The modification completion or failure time.

*/ inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; } /** *

The modification completion or failure time.

*/ inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; } /** *

The modification completion or failure time.

*/ inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); } /** *

The modification completion or failure time.

*/ inline VolumeModification& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} /** *

The modification completion or failure time.

*/ inline VolumeModification& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;} private: Aws::String m_volumeId; bool m_volumeIdHasBeenSet = false; VolumeModificationState m_modificationState; bool m_modificationStateHasBeenSet = false; Aws::String m_statusMessage; bool m_statusMessageHasBeenSet = false; int m_targetSize; bool m_targetSizeHasBeenSet = false; int m_targetIops; bool m_targetIopsHasBeenSet = false; VolumeType m_targetVolumeType; bool m_targetVolumeTypeHasBeenSet = false; int m_targetThroughput; bool m_targetThroughputHasBeenSet = false; bool m_targetMultiAttachEnabled; bool m_targetMultiAttachEnabledHasBeenSet = false; int m_originalSize; bool m_originalSizeHasBeenSet = false; int m_originalIops; bool m_originalIopsHasBeenSet = false; VolumeType m_originalVolumeType; bool m_originalVolumeTypeHasBeenSet = false; int m_originalThroughput; bool m_originalThroughputHasBeenSet = false; bool m_originalMultiAttachEnabled; bool m_originalMultiAttachEnabledHasBeenSet = false; long long m_progress; bool m_progressHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; Aws::Utils::DateTime m_endTime; bool m_endTimeHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws