/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #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.

See Also:

AWS * API Reference

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

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

The device name that is exposed to the instance, such as /dev/sdh.

*/ inline const Aws::String& GetDevice() const{ return m_device; } /** *

The device name that is exposed to the instance, such as /dev/sdh.

*/ inline bool DeviceHasBeenSet() const { return m_deviceHasBeenSet; } /** *

The device name that is exposed to the instance, such as /dev/sdh.

*/ inline void SetDevice(const Aws::String& value) { m_deviceHasBeenSet = true; m_device = value; } /** *

The device name that is exposed to the instance, such as /dev/sdh.

*/ inline void SetDevice(Aws::String&& value) { m_deviceHasBeenSet = true; m_device = std::move(value); } /** *

The device name that is exposed to the instance, such as /dev/sdh.

*/ inline void SetDevice(const char* value) { m_deviceHasBeenSet = true; m_device.assign(value); } /** *

The device name that is exposed to the instance, such as /dev/sdh.

*/ inline EbsBlockDevice& WithDevice(const Aws::String& value) { SetDevice(value); return *this;} /** *

The device name that is exposed to the instance, such as /dev/sdh.

*/ inline EbsBlockDevice& WithDevice(Aws::String&& value) { SetDevice(std::move(value)); return *this;} /** *

The device name that is exposed to the instance, such as /dev/sdh.

*/ inline EbsBlockDevice& WithDevice(const char* value) { SetDevice(value); return *this;} private: VolumeSpecification m_volumeSpecification; bool m_volumeSpecificationHasBeenSet = false; Aws::String m_device; bool m_deviceHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws