1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/fsx/FSx_EXPORTS.h> 8 #include <aws/fsx/model/DiskIopsConfigurationMode.h> 9 #include <utility> 10 11 namespace Aws 12 { 13 namespace Utils 14 { 15 namespace Json 16 { 17 class JsonValue; 18 class JsonView; 19 } // namespace Json 20 } // namespace Utils 21 namespace FSx 22 { 23 namespace Model 24 { 25 26 /** 27 * <p>The SSD IOPS (input/output operations per second) configuration for an Amazon 28 * FSx for NetApp ONTAP file system. The default is 3 IOPS per GB of storage 29 * capacity, but you can provision additional IOPS per GB of storage. The 30 * configuration consists of the total number of provisioned SSD IOPS and how the 31 * amount was provisioned (by the customer or by the system).</p><p><h3>See 32 * Also:</h3> <a 33 * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DiskIopsConfiguration">AWS 34 * API Reference</a></p> 35 */ 36 class AWS_FSX_API DiskIopsConfiguration 37 { 38 public: 39 DiskIopsConfiguration(); 40 DiskIopsConfiguration(Aws::Utils::Json::JsonView jsonValue); 41 DiskIopsConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); 42 Aws::Utils::Json::JsonValue Jsonize() const; 43 44 45 /** 46 * <p>Specifies whether the number of IOPS for the file system is using the system 47 * default (<code>AUTOMATIC</code>) or was provisioned by the customer 48 * (<code>USER_PROVISIONED</code>).</p> 49 */ GetMode()50 inline const DiskIopsConfigurationMode& GetMode() const{ return m_mode; } 51 52 /** 53 * <p>Specifies whether the number of IOPS for the file system is using the system 54 * default (<code>AUTOMATIC</code>) or was provisioned by the customer 55 * (<code>USER_PROVISIONED</code>).</p> 56 */ ModeHasBeenSet()57 inline bool ModeHasBeenSet() const { return m_modeHasBeenSet; } 58 59 /** 60 * <p>Specifies whether the number of IOPS for the file system is using the system 61 * default (<code>AUTOMATIC</code>) or was provisioned by the customer 62 * (<code>USER_PROVISIONED</code>).</p> 63 */ SetMode(const DiskIopsConfigurationMode & value)64 inline void SetMode(const DiskIopsConfigurationMode& value) { m_modeHasBeenSet = true; m_mode = value; } 65 66 /** 67 * <p>Specifies whether the number of IOPS for the file system is using the system 68 * default (<code>AUTOMATIC</code>) or was provisioned by the customer 69 * (<code>USER_PROVISIONED</code>).</p> 70 */ SetMode(DiskIopsConfigurationMode && value)71 inline void SetMode(DiskIopsConfigurationMode&& value) { m_modeHasBeenSet = true; m_mode = std::move(value); } 72 73 /** 74 * <p>Specifies whether the number of IOPS for the file system is using the system 75 * default (<code>AUTOMATIC</code>) or was provisioned by the customer 76 * (<code>USER_PROVISIONED</code>).</p> 77 */ WithMode(const DiskIopsConfigurationMode & value)78 inline DiskIopsConfiguration& WithMode(const DiskIopsConfigurationMode& value) { SetMode(value); return *this;} 79 80 /** 81 * <p>Specifies whether the number of IOPS for the file system is using the system 82 * default (<code>AUTOMATIC</code>) or was provisioned by the customer 83 * (<code>USER_PROVISIONED</code>).</p> 84 */ WithMode(DiskIopsConfigurationMode && value)85 inline DiskIopsConfiguration& WithMode(DiskIopsConfigurationMode&& value) { SetMode(std::move(value)); return *this;} 86 87 88 /** 89 * <p>The total number of SSD IOPS provisioned for the file system.</p> 90 */ GetIops()91 inline long long GetIops() const{ return m_iops; } 92 93 /** 94 * <p>The total number of SSD IOPS provisioned for the file system.</p> 95 */ IopsHasBeenSet()96 inline bool IopsHasBeenSet() const { return m_iopsHasBeenSet; } 97 98 /** 99 * <p>The total number of SSD IOPS provisioned for the file system.</p> 100 */ SetIops(long long value)101 inline void SetIops(long long value) { m_iopsHasBeenSet = true; m_iops = value; } 102 103 /** 104 * <p>The total number of SSD IOPS provisioned for the file system.</p> 105 */ WithIops(long long value)106 inline DiskIopsConfiguration& WithIops(long long value) { SetIops(value); return *this;} 107 108 private: 109 110 DiskIopsConfigurationMode m_mode; 111 bool m_modeHasBeenSet; 112 113 long long m_iops; 114 bool m_iopsHasBeenSet; 115 }; 116 117 } // namespace Model 118 } // namespace FSx 119 } // namespace Aws 120