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>Specifies the configuration of the ONTAP volume that you are 30 * creating.</p><p><h3>See Also:</h3> <a 31 * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateOntapVolumeConfiguration">AWS 32 * API Reference</a></p> 33 */ 34 class AWS_FSX_API CreateOntapVolumeConfiguration 35 { 36 public: 37 CreateOntapVolumeConfiguration(); 38 CreateOntapVolumeConfiguration(Aws::Utils::Json::JsonView jsonValue); 39 CreateOntapVolumeConfiguration& 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 CreateOntapVolumeConfiguration& 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 CreateOntapVolumeConfiguration& 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 CreateOntapVolumeConfiguration& WithJunctionPath(const char* value) { SetJunctionPath(value); return *this;} 98 99 100 /** 101 * <p>The security style for the volume. Specify one of the following values:</p> 102 * <ul> <li> <p> <code>UNIX</code> if the file system is managed by a UNIX 103 * administrator, the majority of users are NFS clients, and an application 104 * accessing the data uses a UNIX user as the service account. <code>UNIX</code> is 105 * the default.</p> </li> <li> <p> <code>NTFS</code> if the file system is managed 106 * by a Windows administrator, the majority of users are SMB clients, and an 107 * application accessing the data uses a Windows user as the service account.</p> 108 * </li> <li> <p> <code>MIXED</code> if the file system is managed by both UNIX and 109 * Windows administrators and users consist of both NFS and SMB clients.</p> </li> 110 * </ul> 111 */ GetSecurityStyle()112 inline const SecurityStyle& GetSecurityStyle() const{ return m_securityStyle; } 113 114 /** 115 * <p>The security style for the volume. Specify one of the following values:</p> 116 * <ul> <li> <p> <code>UNIX</code> if the file system is managed by a UNIX 117 * administrator, the majority of users are NFS clients, and an application 118 * accessing the data uses a UNIX user as the service account. <code>UNIX</code> is 119 * the default.</p> </li> <li> <p> <code>NTFS</code> if the file system is managed 120 * by a Windows administrator, the majority of users are SMB clients, and an 121 * application accessing the data uses a Windows user as the service account.</p> 122 * </li> <li> <p> <code>MIXED</code> if the file system is managed by both UNIX and 123 * Windows administrators and users consist of both NFS and SMB clients.</p> </li> 124 * </ul> 125 */ SecurityStyleHasBeenSet()126 inline bool SecurityStyleHasBeenSet() const { return m_securityStyleHasBeenSet; } 127 128 /** 129 * <p>The security style for the volume. Specify one of the following values:</p> 130 * <ul> <li> <p> <code>UNIX</code> if the file system is managed by a UNIX 131 * administrator, the majority of users are NFS clients, and an application 132 * accessing the data uses a UNIX user as the service account. <code>UNIX</code> is 133 * the default.</p> </li> <li> <p> <code>NTFS</code> if the file system is managed 134 * by a Windows administrator, the majority of users are SMB clients, and an 135 * application accessing the data uses a Windows user as the service account.</p> 136 * </li> <li> <p> <code>MIXED</code> if the file system is managed by both UNIX and 137 * Windows administrators and users consist of both NFS and SMB clients.</p> </li> 138 * </ul> 139 */ SetSecurityStyle(const SecurityStyle & value)140 inline void SetSecurityStyle(const SecurityStyle& value) { m_securityStyleHasBeenSet = true; m_securityStyle = value; } 141 142 /** 143 * <p>The security style for the volume. Specify one of the following values:</p> 144 * <ul> <li> <p> <code>UNIX</code> if the file system is managed by a UNIX 145 * administrator, the majority of users are NFS clients, and an application 146 * accessing the data uses a UNIX user as the service account. <code>UNIX</code> is 147 * the default.</p> </li> <li> <p> <code>NTFS</code> if the file system is managed 148 * by a Windows administrator, the majority of users are SMB clients, and an 149 * application accessing the data uses a Windows user as the service account.</p> 150 * </li> <li> <p> <code>MIXED</code> if the file system is managed by both UNIX and 151 * Windows administrators and users consist of both NFS and SMB clients.</p> </li> 152 * </ul> 153 */ SetSecurityStyle(SecurityStyle && value)154 inline void SetSecurityStyle(SecurityStyle&& value) { m_securityStyleHasBeenSet = true; m_securityStyle = std::move(value); } 155 156 /** 157 * <p>The security style for the volume. Specify one of the following values:</p> 158 * <ul> <li> <p> <code>UNIX</code> if the file system is managed by a UNIX 159 * administrator, the majority of users are NFS clients, and an application 160 * accessing the data uses a UNIX user as the service account. <code>UNIX</code> is 161 * the default.</p> </li> <li> <p> <code>NTFS</code> if the file system is managed 162 * by a Windows administrator, the majority of users are SMB clients, and an 163 * application accessing the data uses a Windows user as the service account.</p> 164 * </li> <li> <p> <code>MIXED</code> if the file system is managed by both UNIX and 165 * Windows administrators and users consist of both NFS and SMB clients.</p> </li> 166 * </ul> 167 */ WithSecurityStyle(const SecurityStyle & value)168 inline CreateOntapVolumeConfiguration& WithSecurityStyle(const SecurityStyle& value) { SetSecurityStyle(value); return *this;} 169 170 /** 171 * <p>The security style for the volume. Specify one of the following values:</p> 172 * <ul> <li> <p> <code>UNIX</code> if the file system is managed by a UNIX 173 * administrator, the majority of users are NFS clients, and an application 174 * accessing the data uses a UNIX user as the service account. <code>UNIX</code> is 175 * the default.</p> </li> <li> <p> <code>NTFS</code> if the file system is managed 176 * by a Windows administrator, the majority of users are SMB clients, and an 177 * application accessing the data uses a Windows user as the service account.</p> 178 * </li> <li> <p> <code>MIXED</code> if the file system is managed by both UNIX and 179 * Windows administrators and users consist of both NFS and SMB clients.</p> </li> 180 * </ul> 181 */ WithSecurityStyle(SecurityStyle && value)182 inline CreateOntapVolumeConfiguration& WithSecurityStyle(SecurityStyle&& value) { SetSecurityStyle(std::move(value)); return *this;} 183 184 185 /** 186 * <p>Specifies the size of the volume, in megabytes (MB), that you are 187 * creating.</p> 188 */ GetSizeInMegabytes()189 inline int GetSizeInMegabytes() const{ return m_sizeInMegabytes; } 190 191 /** 192 * <p>Specifies the size of the volume, in megabytes (MB), that you are 193 * creating.</p> 194 */ SizeInMegabytesHasBeenSet()195 inline bool SizeInMegabytesHasBeenSet() const { return m_sizeInMegabytesHasBeenSet; } 196 197 /** 198 * <p>Specifies the size of the volume, in megabytes (MB), that you are 199 * creating.</p> 200 */ SetSizeInMegabytes(int value)201 inline void SetSizeInMegabytes(int value) { m_sizeInMegabytesHasBeenSet = true; m_sizeInMegabytes = value; } 202 203 /** 204 * <p>Specifies the size of the volume, in megabytes (MB), that you are 205 * creating.</p> 206 */ WithSizeInMegabytes(int value)207 inline CreateOntapVolumeConfiguration& WithSizeInMegabytes(int value) { SetSizeInMegabytes(value); return *this;} 208 209 210 /** 211 * <p>Set to true to enable deduplication, compression, and compaction storage 212 * efficiency features on the volume.</p> 213 */ GetStorageEfficiencyEnabled()214 inline bool GetStorageEfficiencyEnabled() const{ return m_storageEfficiencyEnabled; } 215 216 /** 217 * <p>Set to true to enable deduplication, compression, and compaction storage 218 * efficiency features on the volume.</p> 219 */ StorageEfficiencyEnabledHasBeenSet()220 inline bool StorageEfficiencyEnabledHasBeenSet() const { return m_storageEfficiencyEnabledHasBeenSet; } 221 222 /** 223 * <p>Set to true to enable deduplication, compression, and compaction storage 224 * efficiency features on the volume.</p> 225 */ SetStorageEfficiencyEnabled(bool value)226 inline void SetStorageEfficiencyEnabled(bool value) { m_storageEfficiencyEnabledHasBeenSet = true; m_storageEfficiencyEnabled = value; } 227 228 /** 229 * <p>Set to true to enable deduplication, compression, and compaction storage 230 * efficiency features on the volume.</p> 231 */ WithStorageEfficiencyEnabled(bool value)232 inline CreateOntapVolumeConfiguration& WithStorageEfficiencyEnabled(bool value) { SetStorageEfficiencyEnabled(value); return *this;} 233 234 235 /** 236 * <p>Specifies the ONTAP SVM in which to create the volume.</p> 237 */ GetStorageVirtualMachineId()238 inline const Aws::String& GetStorageVirtualMachineId() const{ return m_storageVirtualMachineId; } 239 240 /** 241 * <p>Specifies the ONTAP SVM in which to create the volume.</p> 242 */ StorageVirtualMachineIdHasBeenSet()243 inline bool StorageVirtualMachineIdHasBeenSet() const { return m_storageVirtualMachineIdHasBeenSet; } 244 245 /** 246 * <p>Specifies the ONTAP SVM in which to create the volume.</p> 247 */ SetStorageVirtualMachineId(const Aws::String & value)248 inline void SetStorageVirtualMachineId(const Aws::String& value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId = value; } 249 250 /** 251 * <p>Specifies the ONTAP SVM in which to create the volume.</p> 252 */ SetStorageVirtualMachineId(Aws::String && value)253 inline void SetStorageVirtualMachineId(Aws::String&& value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId = std::move(value); } 254 255 /** 256 * <p>Specifies the ONTAP SVM in which to create the volume.</p> 257 */ SetStorageVirtualMachineId(const char * value)258 inline void SetStorageVirtualMachineId(const char* value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId.assign(value); } 259 260 /** 261 * <p>Specifies the ONTAP SVM in which to create the volume.</p> 262 */ WithStorageVirtualMachineId(const Aws::String & value)263 inline CreateOntapVolumeConfiguration& WithStorageVirtualMachineId(const Aws::String& value) { SetStorageVirtualMachineId(value); return *this;} 264 265 /** 266 * <p>Specifies the ONTAP SVM in which to create the volume.</p> 267 */ WithStorageVirtualMachineId(Aws::String && value)268 inline CreateOntapVolumeConfiguration& WithStorageVirtualMachineId(Aws::String&& value) { SetStorageVirtualMachineId(std::move(value)); return *this;} 269 270 /** 271 * <p>Specifies the ONTAP SVM in which to create the volume.</p> 272 */ WithStorageVirtualMachineId(const char * value)273 inline CreateOntapVolumeConfiguration& WithStorageVirtualMachineId(const char* value) { SetStorageVirtualMachineId(value); return *this;} 274 275 276 GetTieringPolicy()277 inline const TieringPolicy& GetTieringPolicy() const{ return m_tieringPolicy; } 278 279 TieringPolicyHasBeenSet()280 inline bool TieringPolicyHasBeenSet() const { return m_tieringPolicyHasBeenSet; } 281 282 SetTieringPolicy(const TieringPolicy & value)283 inline void SetTieringPolicy(const TieringPolicy& value) { m_tieringPolicyHasBeenSet = true; m_tieringPolicy = value; } 284 285 SetTieringPolicy(TieringPolicy && value)286 inline void SetTieringPolicy(TieringPolicy&& value) { m_tieringPolicyHasBeenSet = true; m_tieringPolicy = std::move(value); } 287 288 WithTieringPolicy(const TieringPolicy & value)289 inline CreateOntapVolumeConfiguration& WithTieringPolicy(const TieringPolicy& value) { SetTieringPolicy(value); return *this;} 290 291 WithTieringPolicy(TieringPolicy && value)292 inline CreateOntapVolumeConfiguration& WithTieringPolicy(TieringPolicy&& value) { SetTieringPolicy(std::move(value)); return *this;} 293 294 private: 295 296 Aws::String m_junctionPath; 297 bool m_junctionPathHasBeenSet; 298 299 SecurityStyle m_securityStyle; 300 bool m_securityStyleHasBeenSet; 301 302 int m_sizeInMegabytes; 303 bool m_sizeInMegabytesHasBeenSet; 304 305 bool m_storageEfficiencyEnabled; 306 bool m_storageEfficiencyEnabledHasBeenSet; 307 308 Aws::String m_storageVirtualMachineId; 309 bool m_storageVirtualMachineIdHasBeenSet; 310 311 TieringPolicy m_tieringPolicy; 312 bool m_tieringPolicyHasBeenSet; 313 }; 314 315 } // namespace Model 316 } // namespace FSx 317 } // namespace Aws 318