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/core/utils/memory/stl/AWSString.h> 9 #include <aws/fsx/model/SecurityStyle.h> 10 #include <aws/fsx/model/TieringPolicy.h> 11 #include <utility> 12 13 namespace Aws 14 { 15 namespace Utils 16 { 17 namespace Json 18 { 19 class JsonValue; 20 class JsonView; 21 } // namespace Json 22 } // namespace Utils 23 namespace FSx 24 { 25 namespace Model 26 { 27 28 /** 29 * <p>Used to specify changes to the ONTAP configuration for the volume you are 30 * updating.</p><p><h3>See Also:</h3> <a 31 * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateOntapVolumeConfiguration">AWS 32 * API Reference</a></p> 33 */ 34 class AWS_FSX_API UpdateOntapVolumeConfiguration 35 { 36 public: 37 UpdateOntapVolumeConfiguration(); 38 UpdateOntapVolumeConfiguration(Aws::Utils::Json::JsonView jsonValue); 39 UpdateOntapVolumeConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); 40 Aws::Utils::Json::JsonValue Jsonize() const; 41 42 43 /** 44 * <p>Specifies the location in the SVM's namespace where the volume is mounted. 45 * The <code>JunctionPath</code> must have a leading forward slash, such as 46 * <code>/vol3</code>.</p> 47 */ GetJunctionPath()48 inline const Aws::String& GetJunctionPath() const{ return m_junctionPath; } 49 50 /** 51 * <p>Specifies the location in the SVM's namespace where the volume is mounted. 52 * The <code>JunctionPath</code> must have a leading forward slash, such as 53 * <code>/vol3</code>.</p> 54 */ JunctionPathHasBeenSet()55 inline bool JunctionPathHasBeenSet() const { return m_junctionPathHasBeenSet; } 56 57 /** 58 * <p>Specifies the location in the SVM's namespace where the volume is mounted. 59 * The <code>JunctionPath</code> must have a leading forward slash, such as 60 * <code>/vol3</code>.</p> 61 */ SetJunctionPath(const Aws::String & value)62 inline void SetJunctionPath(const Aws::String& value) { m_junctionPathHasBeenSet = true; m_junctionPath = value; } 63 64 /** 65 * <p>Specifies the location in the SVM's namespace where the volume is mounted. 66 * The <code>JunctionPath</code> must have a leading forward slash, such as 67 * <code>/vol3</code>.</p> 68 */ SetJunctionPath(Aws::String && value)69 inline void SetJunctionPath(Aws::String&& value) { m_junctionPathHasBeenSet = true; m_junctionPath = std::move(value); } 70 71 /** 72 * <p>Specifies the location in the SVM's namespace where the volume is mounted. 73 * The <code>JunctionPath</code> must have a leading forward slash, such as 74 * <code>/vol3</code>.</p> 75 */ SetJunctionPath(const char * value)76 inline void SetJunctionPath(const char* value) { m_junctionPathHasBeenSet = true; m_junctionPath.assign(value); } 77 78 /** 79 * <p>Specifies the location in the SVM's namespace where the volume is mounted. 80 * The <code>JunctionPath</code> must have a leading forward slash, such as 81 * <code>/vol3</code>.</p> 82 */ WithJunctionPath(const Aws::String & value)83 inline UpdateOntapVolumeConfiguration& WithJunctionPath(const Aws::String& value) { SetJunctionPath(value); return *this;} 84 85 /** 86 * <p>Specifies the location in the SVM's namespace where the volume is mounted. 87 * The <code>JunctionPath</code> must have a leading forward slash, such as 88 * <code>/vol3</code>.</p> 89 */ WithJunctionPath(Aws::String && value)90 inline UpdateOntapVolumeConfiguration& WithJunctionPath(Aws::String&& value) { SetJunctionPath(std::move(value)); return *this;} 91 92 /** 93 * <p>Specifies the location in the SVM's namespace where the volume is mounted. 94 * The <code>JunctionPath</code> must have a leading forward slash, such as 95 * <code>/vol3</code>.</p> 96 */ WithJunctionPath(const char * value)97 inline UpdateOntapVolumeConfiguration& WithJunctionPath(const char* value) { SetJunctionPath(value); return *this;} 98 99 100 /** 101 * <p>The security style for the volume, which can be <code>UNIX</code>. 102 * <code>NTFS</code>, or <code>MIXED</code>.</p> 103 */ GetSecurityStyle()104 inline const SecurityStyle& GetSecurityStyle() const{ return m_securityStyle; } 105 106 /** 107 * <p>The security style for the volume, which can be <code>UNIX</code>. 108 * <code>NTFS</code>, or <code>MIXED</code>.</p> 109 */ SecurityStyleHasBeenSet()110 inline bool SecurityStyleHasBeenSet() const { return m_securityStyleHasBeenSet; } 111 112 /** 113 * <p>The security style for the volume, which can be <code>UNIX</code>. 114 * <code>NTFS</code>, or <code>MIXED</code>.</p> 115 */ SetSecurityStyle(const SecurityStyle & value)116 inline void SetSecurityStyle(const SecurityStyle& value) { m_securityStyleHasBeenSet = true; m_securityStyle = value; } 117 118 /** 119 * <p>The security style for the volume, which can be <code>UNIX</code>. 120 * <code>NTFS</code>, or <code>MIXED</code>.</p> 121 */ SetSecurityStyle(SecurityStyle && value)122 inline void SetSecurityStyle(SecurityStyle&& value) { m_securityStyleHasBeenSet = true; m_securityStyle = std::move(value); } 123 124 /** 125 * <p>The security style for the volume, which can be <code>UNIX</code>. 126 * <code>NTFS</code>, or <code>MIXED</code>.</p> 127 */ WithSecurityStyle(const SecurityStyle & value)128 inline UpdateOntapVolumeConfiguration& WithSecurityStyle(const SecurityStyle& value) { SetSecurityStyle(value); return *this;} 129 130 /** 131 * <p>The security style for the volume, which can be <code>UNIX</code>. 132 * <code>NTFS</code>, or <code>MIXED</code>.</p> 133 */ WithSecurityStyle(SecurityStyle && value)134 inline UpdateOntapVolumeConfiguration& WithSecurityStyle(SecurityStyle&& value) { SetSecurityStyle(std::move(value)); return *this;} 135 136 137 /** 138 * <p>Specifies the size of the volume in megabytes.</p> 139 */ GetSizeInMegabytes()140 inline int GetSizeInMegabytes() const{ return m_sizeInMegabytes; } 141 142 /** 143 * <p>Specifies the size of the volume in megabytes.</p> 144 */ SizeInMegabytesHasBeenSet()145 inline bool SizeInMegabytesHasBeenSet() const { return m_sizeInMegabytesHasBeenSet; } 146 147 /** 148 * <p>Specifies the size of the volume in megabytes.</p> 149 */ SetSizeInMegabytes(int value)150 inline void SetSizeInMegabytes(int value) { m_sizeInMegabytesHasBeenSet = true; m_sizeInMegabytes = value; } 151 152 /** 153 * <p>Specifies the size of the volume in megabytes.</p> 154 */ WithSizeInMegabytes(int value)155 inline UpdateOntapVolumeConfiguration& WithSizeInMegabytes(int value) { SetSizeInMegabytes(value); return *this;} 156 157 158 /** 159 * <p>Default is <code>false</code>. Set to true to enable the deduplication, 160 * compression, and compaction storage efficiency features on the volume.</p> 161 */ GetStorageEfficiencyEnabled()162 inline bool GetStorageEfficiencyEnabled() const{ return m_storageEfficiencyEnabled; } 163 164 /** 165 * <p>Default is <code>false</code>. Set to true to enable the deduplication, 166 * compression, and compaction storage efficiency features on the volume.</p> 167 */ StorageEfficiencyEnabledHasBeenSet()168 inline bool StorageEfficiencyEnabledHasBeenSet() const { return m_storageEfficiencyEnabledHasBeenSet; } 169 170 /** 171 * <p>Default is <code>false</code>. Set to true to enable the deduplication, 172 * compression, and compaction storage efficiency features on the volume.</p> 173 */ SetStorageEfficiencyEnabled(bool value)174 inline void SetStorageEfficiencyEnabled(bool value) { m_storageEfficiencyEnabledHasBeenSet = true; m_storageEfficiencyEnabled = value; } 175 176 /** 177 * <p>Default is <code>false</code>. Set to true to enable the deduplication, 178 * compression, and compaction storage efficiency features on the volume.</p> 179 */ WithStorageEfficiencyEnabled(bool value)180 inline UpdateOntapVolumeConfiguration& WithStorageEfficiencyEnabled(bool value) { SetStorageEfficiencyEnabled(value); return *this;} 181 182 183 /** 184 * <p>Update the volume's data tiering policy.</p> 185 */ GetTieringPolicy()186 inline const TieringPolicy& GetTieringPolicy() const{ return m_tieringPolicy; } 187 188 /** 189 * <p>Update the volume's data tiering policy.</p> 190 */ TieringPolicyHasBeenSet()191 inline bool TieringPolicyHasBeenSet() const { return m_tieringPolicyHasBeenSet; } 192 193 /** 194 * <p>Update the volume's data tiering policy.</p> 195 */ SetTieringPolicy(const TieringPolicy & value)196 inline void SetTieringPolicy(const TieringPolicy& value) { m_tieringPolicyHasBeenSet = true; m_tieringPolicy = value; } 197 198 /** 199 * <p>Update the volume's data tiering policy.</p> 200 */ SetTieringPolicy(TieringPolicy && value)201 inline void SetTieringPolicy(TieringPolicy&& value) { m_tieringPolicyHasBeenSet = true; m_tieringPolicy = std::move(value); } 202 203 /** 204 * <p>Update the volume's data tiering policy.</p> 205 */ WithTieringPolicy(const TieringPolicy & value)206 inline UpdateOntapVolumeConfiguration& WithTieringPolicy(const TieringPolicy& value) { SetTieringPolicy(value); return *this;} 207 208 /** 209 * <p>Update the volume's data tiering policy.</p> 210 */ WithTieringPolicy(TieringPolicy && value)211 inline UpdateOntapVolumeConfiguration& WithTieringPolicy(TieringPolicy&& value) { SetTieringPolicy(std::move(value)); return *this;} 212 213 private: 214 215 Aws::String m_junctionPath; 216 bool m_junctionPathHasBeenSet; 217 218 SecurityStyle m_securityStyle; 219 bool m_securityStyleHasBeenSet; 220 221 int m_sizeInMegabytes; 222 bool m_sizeInMegabytesHasBeenSet; 223 224 bool m_storageEfficiencyEnabled; 225 bool m_storageEfficiencyEnabledHasBeenSet; 226 227 TieringPolicy m_tieringPolicy; 228 bool m_tieringPolicyHasBeenSet; 229 }; 230 231 } // namespace Model 232 } // namespace FSx 233 } // namespace Aws 234