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/FSxRequest.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/fsx/model/UpdateFileSystemWindowsConfiguration.h> 11 #include <aws/fsx/model/UpdateFileSystemLustreConfiguration.h> 12 #include <aws/fsx/model/UpdateFileSystemOntapConfiguration.h> 13 #include <utility> 14 #include <aws/core/utils/UUID.h> 15 16 namespace Aws 17 { 18 namespace FSx 19 { 20 namespace Model 21 { 22 23 /** 24 * <p>The request object for the <code>UpdateFileSystem</code> 25 * operation.</p><p><h3>See Also:</h3> <a 26 * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateFileSystemRequest">AWS 27 * API Reference</a></p> 28 */ 29 class AWS_FSX_API UpdateFileSystemRequest : public FSxRequest 30 { 31 public: 32 UpdateFileSystemRequest(); 33 34 // Service request name is the Operation name which will send this request out, 35 // each operation should has unique request name, so that we can get operation's name from this request. 36 // Note: this is not true for response, multiple operations may have the same response name, 37 // so we can not get operation's name from response. GetServiceRequestName()38 inline virtual const char* GetServiceRequestName() const override { return "UpdateFileSystem"; } 39 40 Aws::String SerializePayload() const override; 41 42 Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; 43 44 45 /** 46 * <p>Identifies the file system that you are updating.</p> 47 */ GetFileSystemId()48 inline const Aws::String& GetFileSystemId() const{ return m_fileSystemId; } 49 50 /** 51 * <p>Identifies the file system that you are updating.</p> 52 */ FileSystemIdHasBeenSet()53 inline bool FileSystemIdHasBeenSet() const { return m_fileSystemIdHasBeenSet; } 54 55 /** 56 * <p>Identifies the file system that you are updating.</p> 57 */ SetFileSystemId(const Aws::String & value)58 inline void SetFileSystemId(const Aws::String& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = value; } 59 60 /** 61 * <p>Identifies the file system that you are updating.</p> 62 */ SetFileSystemId(Aws::String && value)63 inline void SetFileSystemId(Aws::String&& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = std::move(value); } 64 65 /** 66 * <p>Identifies the file system that you are updating.</p> 67 */ SetFileSystemId(const char * value)68 inline void SetFileSystemId(const char* value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId.assign(value); } 69 70 /** 71 * <p>Identifies the file system that you are updating.</p> 72 */ WithFileSystemId(const Aws::String & value)73 inline UpdateFileSystemRequest& WithFileSystemId(const Aws::String& value) { SetFileSystemId(value); return *this;} 74 75 /** 76 * <p>Identifies the file system that you are updating.</p> 77 */ WithFileSystemId(Aws::String && value)78 inline UpdateFileSystemRequest& WithFileSystemId(Aws::String&& value) { SetFileSystemId(std::move(value)); return *this;} 79 80 /** 81 * <p>Identifies the file system that you are updating.</p> 82 */ WithFileSystemId(const char * value)83 inline UpdateFileSystemRequest& WithFileSystemId(const char* value) { SetFileSystemId(value); return *this;} 84 85 86 /** 87 * <p>A string of up to 64 ASCII characters that Amazon FSx uses to ensure 88 * idempotent updates. This string is automatically filled on your behalf when you 89 * use the Command Line Interface (CLI) or an Amazon Web Services SDK.</p> 90 */ GetClientRequestToken()91 inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } 92 93 /** 94 * <p>A string of up to 64 ASCII characters that Amazon FSx uses to ensure 95 * idempotent updates. This string is automatically filled on your behalf when you 96 * use the Command Line Interface (CLI) or an Amazon Web Services SDK.</p> 97 */ ClientRequestTokenHasBeenSet()98 inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } 99 100 /** 101 * <p>A string of up to 64 ASCII characters that Amazon FSx uses to ensure 102 * idempotent updates. This string is automatically filled on your behalf when you 103 * use the Command Line Interface (CLI) or an Amazon Web Services SDK.</p> 104 */ SetClientRequestToken(const Aws::String & value)105 inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } 106 107 /** 108 * <p>A string of up to 64 ASCII characters that Amazon FSx uses to ensure 109 * idempotent updates. This string is automatically filled on your behalf when you 110 * use the Command Line Interface (CLI) or an Amazon Web Services SDK.</p> 111 */ SetClientRequestToken(Aws::String && value)112 inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } 113 114 /** 115 * <p>A string of up to 64 ASCII characters that Amazon FSx uses to ensure 116 * idempotent updates. This string is automatically filled on your behalf when you 117 * use the Command Line Interface (CLI) or an Amazon Web Services SDK.</p> 118 */ SetClientRequestToken(const char * value)119 inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } 120 121 /** 122 * <p>A string of up to 64 ASCII characters that Amazon FSx uses to ensure 123 * idempotent updates. This string is automatically filled on your behalf when you 124 * use the Command Line Interface (CLI) or an Amazon Web Services SDK.</p> 125 */ WithClientRequestToken(const Aws::String & value)126 inline UpdateFileSystemRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} 127 128 /** 129 * <p>A string of up to 64 ASCII characters that Amazon FSx uses to ensure 130 * idempotent updates. This string is automatically filled on your behalf when you 131 * use the Command Line Interface (CLI) or an Amazon Web Services SDK.</p> 132 */ WithClientRequestToken(Aws::String && value)133 inline UpdateFileSystemRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} 134 135 /** 136 * <p>A string of up to 64 ASCII characters that Amazon FSx uses to ensure 137 * idempotent updates. This string is automatically filled on your behalf when you 138 * use the Command Line Interface (CLI) or an Amazon Web Services SDK.</p> 139 */ WithClientRequestToken(const char * value)140 inline UpdateFileSystemRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} 141 142 143 /** 144 * <p>Use this parameter to increase the storage capacity of an Amazon FSx for 145 * Windows File Server or Amazon FSx for Lustre file system. Specifies the storage 146 * capacity target value, GiB, to increase the storage capacity for the file system 147 * that you're updating. You cannot make a storage capacity increase request if 148 * there is an existing storage capacity increase request in progress.</p> <p>For 149 * Windows file systems, the storage capacity target value must be at least 10 150 * percent (%) greater than the current storage capacity value. In order to 151 * increase storage capacity, the file system must have at least 16 MB/s of 152 * throughput capacity.</p> <p>For Lustre file systems, the storage capacity target 153 * value can be the following:</p> <ul> <li> <p>For <code>SCRATCH_2</code> and 154 * <code>PERSISTENT_1 SSD</code> deployment types, valid values are in multiples of 155 * 2400 GiB. The value must be greater than the current storage capacity.</p> </li> 156 * <li> <p>For <code>PERSISTENT HDD</code> file systems, valid values are multiples 157 * of 6000 GiB for 12 MB/s/TiB file systems and multiples of 1800 GiB for 40 158 * MB/s/TiB file systems. The values must be greater than the current storage 159 * capacity.</p> </li> <li> <p>For <code>SCRATCH_1</code> file systems, you cannot 160 * increase the storage capacity.</p> </li> </ul> <p>For more information, see <a 161 * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html">Managing 162 * storage capacity</a> in the <i>Amazon FSx for Windows File Server User Guide</i> 163 * and <a 164 * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html">Managing 165 * storage and throughput capacity</a> in the <i>Amazon FSx for Lustre User 166 * Guide</i>.</p> 167 */ GetStorageCapacity()168 inline int GetStorageCapacity() const{ return m_storageCapacity; } 169 170 /** 171 * <p>Use this parameter to increase the storage capacity of an Amazon FSx for 172 * Windows File Server or Amazon FSx for Lustre file system. Specifies the storage 173 * capacity target value, GiB, to increase the storage capacity for the file system 174 * that you're updating. You cannot make a storage capacity increase request if 175 * there is an existing storage capacity increase request in progress.</p> <p>For 176 * Windows file systems, the storage capacity target value must be at least 10 177 * percent (%) greater than the current storage capacity value. In order to 178 * increase storage capacity, the file system must have at least 16 MB/s of 179 * throughput capacity.</p> <p>For Lustre file systems, the storage capacity target 180 * value can be the following:</p> <ul> <li> <p>For <code>SCRATCH_2</code> and 181 * <code>PERSISTENT_1 SSD</code> deployment types, valid values are in multiples of 182 * 2400 GiB. The value must be greater than the current storage capacity.</p> </li> 183 * <li> <p>For <code>PERSISTENT HDD</code> file systems, valid values are multiples 184 * of 6000 GiB for 12 MB/s/TiB file systems and multiples of 1800 GiB for 40 185 * MB/s/TiB file systems. The values must be greater than the current storage 186 * capacity.</p> </li> <li> <p>For <code>SCRATCH_1</code> file systems, you cannot 187 * increase the storage capacity.</p> </li> </ul> <p>For more information, see <a 188 * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html">Managing 189 * storage capacity</a> in the <i>Amazon FSx for Windows File Server User Guide</i> 190 * and <a 191 * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html">Managing 192 * storage and throughput capacity</a> in the <i>Amazon FSx for Lustre User 193 * Guide</i>.</p> 194 */ StorageCapacityHasBeenSet()195 inline bool StorageCapacityHasBeenSet() const { return m_storageCapacityHasBeenSet; } 196 197 /** 198 * <p>Use this parameter to increase the storage capacity of an Amazon FSx for 199 * Windows File Server or Amazon FSx for Lustre file system. Specifies the storage 200 * capacity target value, GiB, to increase the storage capacity for the file system 201 * that you're updating. You cannot make a storage capacity increase request if 202 * there is an existing storage capacity increase request in progress.</p> <p>For 203 * Windows file systems, the storage capacity target value must be at least 10 204 * percent (%) greater than the current storage capacity value. In order to 205 * increase storage capacity, the file system must have at least 16 MB/s of 206 * throughput capacity.</p> <p>For Lustre file systems, the storage capacity target 207 * value can be the following:</p> <ul> <li> <p>For <code>SCRATCH_2</code> and 208 * <code>PERSISTENT_1 SSD</code> deployment types, valid values are in multiples of 209 * 2400 GiB. The value must be greater than the current storage capacity.</p> </li> 210 * <li> <p>For <code>PERSISTENT HDD</code> file systems, valid values are multiples 211 * of 6000 GiB for 12 MB/s/TiB file systems and multiples of 1800 GiB for 40 212 * MB/s/TiB file systems. The values must be greater than the current storage 213 * capacity.</p> </li> <li> <p>For <code>SCRATCH_1</code> file systems, you cannot 214 * increase the storage capacity.</p> </li> </ul> <p>For more information, see <a 215 * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html">Managing 216 * storage capacity</a> in the <i>Amazon FSx for Windows File Server User Guide</i> 217 * and <a 218 * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html">Managing 219 * storage and throughput capacity</a> in the <i>Amazon FSx for Lustre User 220 * Guide</i>.</p> 221 */ SetStorageCapacity(int value)222 inline void SetStorageCapacity(int value) { m_storageCapacityHasBeenSet = true; m_storageCapacity = value; } 223 224 /** 225 * <p>Use this parameter to increase the storage capacity of an Amazon FSx for 226 * Windows File Server or Amazon FSx for Lustre file system. Specifies the storage 227 * capacity target value, GiB, to increase the storage capacity for the file system 228 * that you're updating. You cannot make a storage capacity increase request if 229 * there is an existing storage capacity increase request in progress.</p> <p>For 230 * Windows file systems, the storage capacity target value must be at least 10 231 * percent (%) greater than the current storage capacity value. In order to 232 * increase storage capacity, the file system must have at least 16 MB/s of 233 * throughput capacity.</p> <p>For Lustre file systems, the storage capacity target 234 * value can be the following:</p> <ul> <li> <p>For <code>SCRATCH_2</code> and 235 * <code>PERSISTENT_1 SSD</code> deployment types, valid values are in multiples of 236 * 2400 GiB. The value must be greater than the current storage capacity.</p> </li> 237 * <li> <p>For <code>PERSISTENT HDD</code> file systems, valid values are multiples 238 * of 6000 GiB for 12 MB/s/TiB file systems and multiples of 1800 GiB for 40 239 * MB/s/TiB file systems. The values must be greater than the current storage 240 * capacity.</p> </li> <li> <p>For <code>SCRATCH_1</code> file systems, you cannot 241 * increase the storage capacity.</p> </li> </ul> <p>For more information, see <a 242 * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html">Managing 243 * storage capacity</a> in the <i>Amazon FSx for Windows File Server User Guide</i> 244 * and <a 245 * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html">Managing 246 * storage and throughput capacity</a> in the <i>Amazon FSx for Lustre User 247 * Guide</i>.</p> 248 */ WithStorageCapacity(int value)249 inline UpdateFileSystemRequest& WithStorageCapacity(int value) { SetStorageCapacity(value); return *this;} 250 251 252 /** 253 * <p>The configuration updates for an Amazon FSx for Windows File Server file 254 * system.</p> 255 */ GetWindowsConfiguration()256 inline const UpdateFileSystemWindowsConfiguration& GetWindowsConfiguration() const{ return m_windowsConfiguration; } 257 258 /** 259 * <p>The configuration updates for an Amazon FSx for Windows File Server file 260 * system.</p> 261 */ WindowsConfigurationHasBeenSet()262 inline bool WindowsConfigurationHasBeenSet() const { return m_windowsConfigurationHasBeenSet; } 263 264 /** 265 * <p>The configuration updates for an Amazon FSx for Windows File Server file 266 * system.</p> 267 */ SetWindowsConfiguration(const UpdateFileSystemWindowsConfiguration & value)268 inline void SetWindowsConfiguration(const UpdateFileSystemWindowsConfiguration& value) { m_windowsConfigurationHasBeenSet = true; m_windowsConfiguration = value; } 269 270 /** 271 * <p>The configuration updates for an Amazon FSx for Windows File Server file 272 * system.</p> 273 */ SetWindowsConfiguration(UpdateFileSystemWindowsConfiguration && value)274 inline void SetWindowsConfiguration(UpdateFileSystemWindowsConfiguration&& value) { m_windowsConfigurationHasBeenSet = true; m_windowsConfiguration = std::move(value); } 275 276 /** 277 * <p>The configuration updates for an Amazon FSx for Windows File Server file 278 * system.</p> 279 */ WithWindowsConfiguration(const UpdateFileSystemWindowsConfiguration & value)280 inline UpdateFileSystemRequest& WithWindowsConfiguration(const UpdateFileSystemWindowsConfiguration& value) { SetWindowsConfiguration(value); return *this;} 281 282 /** 283 * <p>The configuration updates for an Amazon FSx for Windows File Server file 284 * system.</p> 285 */ WithWindowsConfiguration(UpdateFileSystemWindowsConfiguration && value)286 inline UpdateFileSystemRequest& WithWindowsConfiguration(UpdateFileSystemWindowsConfiguration&& value) { SetWindowsConfiguration(std::move(value)); return *this;} 287 288 289 GetLustreConfiguration()290 inline const UpdateFileSystemLustreConfiguration& GetLustreConfiguration() const{ return m_lustreConfiguration; } 291 292 LustreConfigurationHasBeenSet()293 inline bool LustreConfigurationHasBeenSet() const { return m_lustreConfigurationHasBeenSet; } 294 295 SetLustreConfiguration(const UpdateFileSystemLustreConfiguration & value)296 inline void SetLustreConfiguration(const UpdateFileSystemLustreConfiguration& value) { m_lustreConfigurationHasBeenSet = true; m_lustreConfiguration = value; } 297 298 SetLustreConfiguration(UpdateFileSystemLustreConfiguration && value)299 inline void SetLustreConfiguration(UpdateFileSystemLustreConfiguration&& value) { m_lustreConfigurationHasBeenSet = true; m_lustreConfiguration = std::move(value); } 300 301 WithLustreConfiguration(const UpdateFileSystemLustreConfiguration & value)302 inline UpdateFileSystemRequest& WithLustreConfiguration(const UpdateFileSystemLustreConfiguration& value) { SetLustreConfiguration(value); return *this;} 303 304 WithLustreConfiguration(UpdateFileSystemLustreConfiguration && value)305 inline UpdateFileSystemRequest& WithLustreConfiguration(UpdateFileSystemLustreConfiguration&& value) { SetLustreConfiguration(std::move(value)); return *this;} 306 307 308 GetOntapConfiguration()309 inline const UpdateFileSystemOntapConfiguration& GetOntapConfiguration() const{ return m_ontapConfiguration; } 310 311 OntapConfigurationHasBeenSet()312 inline bool OntapConfigurationHasBeenSet() const { return m_ontapConfigurationHasBeenSet; } 313 314 SetOntapConfiguration(const UpdateFileSystemOntapConfiguration & value)315 inline void SetOntapConfiguration(const UpdateFileSystemOntapConfiguration& value) { m_ontapConfigurationHasBeenSet = true; m_ontapConfiguration = value; } 316 317 SetOntapConfiguration(UpdateFileSystemOntapConfiguration && value)318 inline void SetOntapConfiguration(UpdateFileSystemOntapConfiguration&& value) { m_ontapConfigurationHasBeenSet = true; m_ontapConfiguration = std::move(value); } 319 320 WithOntapConfiguration(const UpdateFileSystemOntapConfiguration & value)321 inline UpdateFileSystemRequest& WithOntapConfiguration(const UpdateFileSystemOntapConfiguration& value) { SetOntapConfiguration(value); return *this;} 322 323 WithOntapConfiguration(UpdateFileSystemOntapConfiguration && value)324 inline UpdateFileSystemRequest& WithOntapConfiguration(UpdateFileSystemOntapConfiguration&& value) { SetOntapConfiguration(std::move(value)); return *this;} 325 326 private: 327 328 Aws::String m_fileSystemId; 329 bool m_fileSystemIdHasBeenSet; 330 331 Aws::String m_clientRequestToken; 332 bool m_clientRequestTokenHasBeenSet; 333 334 int m_storageCapacity; 335 bool m_storageCapacityHasBeenSet; 336 337 UpdateFileSystemWindowsConfiguration m_windowsConfiguration; 338 bool m_windowsConfigurationHasBeenSet; 339 340 UpdateFileSystemLustreConfiguration m_lustreConfiguration; 341 bool m_lustreConfigurationHasBeenSet; 342 343 UpdateFileSystemOntapConfiguration m_ontapConfiguration; 344 bool m_ontapConfigurationHasBeenSet; 345 }; 346 347 } // namespace Model 348 } // namespace FSx 349 } // namespace Aws 350