/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace FSx { namespace Model { /** *

The request object used to create a new Amazon FSx file system.

See * Also:

AWS * API Reference

*/ class CreateFileSystemRequest : public FSxRequest { public: AWS_FSX_API CreateFileSystemRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateFileSystem"; } AWS_FSX_API Aws::String SerializePayload() const override; AWS_FSX_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

A string of up to 63 ASCII characters that Amazon FSx uses to ensure * idempotent creation. This string is automatically filled on your behalf when you * use the Command Line Interface (CLI) or an Amazon Web Services SDK.

*/ inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } /** *

A string of up to 63 ASCII characters that Amazon FSx uses to ensure * idempotent creation. This string is automatically filled on your behalf when you * use the Command Line Interface (CLI) or an Amazon Web Services SDK.

*/ inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } /** *

A string of up to 63 ASCII characters that Amazon FSx uses to ensure * idempotent creation. This string is automatically filled on your behalf when you * use the Command Line Interface (CLI) or an Amazon Web Services SDK.

*/ inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } /** *

A string of up to 63 ASCII characters that Amazon FSx uses to ensure * idempotent creation. This string is automatically filled on your behalf when you * use the Command Line Interface (CLI) or an Amazon Web Services SDK.

*/ inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } /** *

A string of up to 63 ASCII characters that Amazon FSx uses to ensure * idempotent creation. This string is automatically filled on your behalf when you * use the Command Line Interface (CLI) or an Amazon Web Services SDK.

*/ inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } /** *

A string of up to 63 ASCII characters that Amazon FSx uses to ensure * idempotent creation. This string is automatically filled on your behalf when you * use the Command Line Interface (CLI) or an Amazon Web Services SDK.

*/ inline CreateFileSystemRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} /** *

A string of up to 63 ASCII characters that Amazon FSx uses to ensure * idempotent creation. This string is automatically filled on your behalf when you * use the Command Line Interface (CLI) or an Amazon Web Services SDK.

*/ inline CreateFileSystemRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} /** *

A string of up to 63 ASCII characters that Amazon FSx uses to ensure * idempotent creation. This string is automatically filled on your behalf when you * use the Command Line Interface (CLI) or an Amazon Web Services SDK.

*/ inline CreateFileSystemRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} /** *

The type of Amazon FSx file system to create. Valid values are * WINDOWS, LUSTRE, ONTAP, and * OPENZFS.

*/ inline const FileSystemType& GetFileSystemType() const{ return m_fileSystemType; } /** *

The type of Amazon FSx file system to create. Valid values are * WINDOWS, LUSTRE, ONTAP, and * OPENZFS.

*/ inline bool FileSystemTypeHasBeenSet() const { return m_fileSystemTypeHasBeenSet; } /** *

The type of Amazon FSx file system to create. Valid values are * WINDOWS, LUSTRE, ONTAP, and * OPENZFS.

*/ inline void SetFileSystemType(const FileSystemType& value) { m_fileSystemTypeHasBeenSet = true; m_fileSystemType = value; } /** *

The type of Amazon FSx file system to create. Valid values are * WINDOWS, LUSTRE, ONTAP, and * OPENZFS.

*/ inline void SetFileSystemType(FileSystemType&& value) { m_fileSystemTypeHasBeenSet = true; m_fileSystemType = std::move(value); } /** *

The type of Amazon FSx file system to create. Valid values are * WINDOWS, LUSTRE, ONTAP, and * OPENZFS.

*/ inline CreateFileSystemRequest& WithFileSystemType(const FileSystemType& value) { SetFileSystemType(value); return *this;} /** *

The type of Amazon FSx file system to create. Valid values are * WINDOWS, LUSTRE, ONTAP, and * OPENZFS.

*/ inline CreateFileSystemRequest& WithFileSystemType(FileSystemType&& value) { SetFileSystemType(std::move(value)); return *this;} /** *

Sets the storage capacity of the file system that you're creating, in * gibibytes (GiB).

FSx for Lustre file systems - The amount of * storage capacity that you can configure depends on the value that you set for * StorageType and the Lustre DeploymentType, as * follows:

  • For SCRATCH_2, PERSISTENT_2 * and PERSISTENT_1 deployment types using SSD storage type, the valid * values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.

  • For * PERSISTENT_1 HDD file systems, valid values are increments of 6000 * GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file * systems.

  • For SCRATCH_1 deployment type, valid * values are 1200 GiB, 2400 GiB, and increments of 3600 GiB.

* FSx for ONTAP file systems - The amount of storage capacity that you can * configure is from 1024 GiB up to 196,608 GiB (192 TiB).

FSx for * OpenZFS file systems - The amount of storage capacity that you can configure * is from 64 GiB up to 524,288 GiB (512 TiB).

FSx for Windows File * Server file systems - The amount of storage capacity that you can configure * depends on the value that you set for StorageType as follows:

*
  • For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).

    *
  • For HDD storage, valid values are 2000 GiB-65,536 GiB (64 * TiB).

*/ inline int GetStorageCapacity() const{ return m_storageCapacity; } /** *

Sets the storage capacity of the file system that you're creating, in * gibibytes (GiB).

FSx for Lustre file systems - The amount of * storage capacity that you can configure depends on the value that you set for * StorageType and the Lustre DeploymentType, as * follows:

  • For SCRATCH_2, PERSISTENT_2 * and PERSISTENT_1 deployment types using SSD storage type, the valid * values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.

  • For * PERSISTENT_1 HDD file systems, valid values are increments of 6000 * GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file * systems.

  • For SCRATCH_1 deployment type, valid * values are 1200 GiB, 2400 GiB, and increments of 3600 GiB.

* FSx for ONTAP file systems - The amount of storage capacity that you can * configure is from 1024 GiB up to 196,608 GiB (192 TiB).

FSx for * OpenZFS file systems - The amount of storage capacity that you can configure * is from 64 GiB up to 524,288 GiB (512 TiB).

FSx for Windows File * Server file systems - The amount of storage capacity that you can configure * depends on the value that you set for StorageType as follows:

*
  • For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).

    *
  • For HDD storage, valid values are 2000 GiB-65,536 GiB (64 * TiB).

*/ inline bool StorageCapacityHasBeenSet() const { return m_storageCapacityHasBeenSet; } /** *

Sets the storage capacity of the file system that you're creating, in * gibibytes (GiB).

FSx for Lustre file systems - The amount of * storage capacity that you can configure depends on the value that you set for * StorageType and the Lustre DeploymentType, as * follows:

  • For SCRATCH_2, PERSISTENT_2 * and PERSISTENT_1 deployment types using SSD storage type, the valid * values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.

  • For * PERSISTENT_1 HDD file systems, valid values are increments of 6000 * GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file * systems.

  • For SCRATCH_1 deployment type, valid * values are 1200 GiB, 2400 GiB, and increments of 3600 GiB.

* FSx for ONTAP file systems - The amount of storage capacity that you can * configure is from 1024 GiB up to 196,608 GiB (192 TiB).

FSx for * OpenZFS file systems - The amount of storage capacity that you can configure * is from 64 GiB up to 524,288 GiB (512 TiB).

FSx for Windows File * Server file systems - The amount of storage capacity that you can configure * depends on the value that you set for StorageType as follows:

*
  • For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).

    *
  • For HDD storage, valid values are 2000 GiB-65,536 GiB (64 * TiB).

*/ inline void SetStorageCapacity(int value) { m_storageCapacityHasBeenSet = true; m_storageCapacity = value; } /** *

Sets the storage capacity of the file system that you're creating, in * gibibytes (GiB).

FSx for Lustre file systems - The amount of * storage capacity that you can configure depends on the value that you set for * StorageType and the Lustre DeploymentType, as * follows:

  • For SCRATCH_2, PERSISTENT_2 * and PERSISTENT_1 deployment types using SSD storage type, the valid * values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.

  • For * PERSISTENT_1 HDD file systems, valid values are increments of 6000 * GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file * systems.

  • For SCRATCH_1 deployment type, valid * values are 1200 GiB, 2400 GiB, and increments of 3600 GiB.

* FSx for ONTAP file systems - The amount of storage capacity that you can * configure is from 1024 GiB up to 196,608 GiB (192 TiB).

FSx for * OpenZFS file systems - The amount of storage capacity that you can configure * is from 64 GiB up to 524,288 GiB (512 TiB).

FSx for Windows File * Server file systems - The amount of storage capacity that you can configure * depends on the value that you set for StorageType as follows:

*
  • For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).

    *
  • For HDD storage, valid values are 2000 GiB-65,536 GiB (64 * TiB).

*/ inline CreateFileSystemRequest& WithStorageCapacity(int value) { SetStorageCapacity(value); return *this;} /** *

Sets the storage type for the file system that you're creating. Valid values * are SSD and HDD.

  • Set to * SSD to use solid state drive storage. SSD is supported on all * Windows, Lustre, ONTAP, and OpenZFS deployment types.

  • Set to * HDD to use hard disk drive storage. HDD is supported on * SINGLE_AZ_2 and MULTI_AZ_1 Windows file system * deployment types, and on PERSISTENT_1 Lustre file system deployment * types.

Default value is SSD. For more * information, see * Storage type options in the FSx for Windows File Server User Guide * and Multiple * storage options in the FSx for Lustre User Guide.

*/ inline const StorageType& GetStorageType() const{ return m_storageType; } /** *

Sets the storage type for the file system that you're creating. Valid values * are SSD and HDD.

  • Set to * SSD to use solid state drive storage. SSD is supported on all * Windows, Lustre, ONTAP, and OpenZFS deployment types.

  • Set to * HDD to use hard disk drive storage. HDD is supported on * SINGLE_AZ_2 and MULTI_AZ_1 Windows file system * deployment types, and on PERSISTENT_1 Lustre file system deployment * types.

Default value is SSD. For more * information, see * Storage type options in the FSx for Windows File Server User Guide * and Multiple * storage options in the FSx for Lustre User Guide.

*/ inline bool StorageTypeHasBeenSet() const { return m_storageTypeHasBeenSet; } /** *

Sets the storage type for the file system that you're creating. Valid values * are SSD and HDD.

  • Set to * SSD to use solid state drive storage. SSD is supported on all * Windows, Lustre, ONTAP, and OpenZFS deployment types.

  • Set to * HDD to use hard disk drive storage. HDD is supported on * SINGLE_AZ_2 and MULTI_AZ_1 Windows file system * deployment types, and on PERSISTENT_1 Lustre file system deployment * types.

Default value is SSD. For more * information, see * Storage type options in the FSx for Windows File Server User Guide * and Multiple * storage options in the FSx for Lustre User Guide.

*/ inline void SetStorageType(const StorageType& value) { m_storageTypeHasBeenSet = true; m_storageType = value; } /** *

Sets the storage type for the file system that you're creating. Valid values * are SSD and HDD.

  • Set to * SSD to use solid state drive storage. SSD is supported on all * Windows, Lustre, ONTAP, and OpenZFS deployment types.

  • Set to * HDD to use hard disk drive storage. HDD is supported on * SINGLE_AZ_2 and MULTI_AZ_1 Windows file system * deployment types, and on PERSISTENT_1 Lustre file system deployment * types.

Default value is SSD. For more * information, see * Storage type options in the FSx for Windows File Server User Guide * and Multiple * storage options in the FSx for Lustre User Guide.

*/ inline void SetStorageType(StorageType&& value) { m_storageTypeHasBeenSet = true; m_storageType = std::move(value); } /** *

Sets the storage type for the file system that you're creating. Valid values * are SSD and HDD.

  • Set to * SSD to use solid state drive storage. SSD is supported on all * Windows, Lustre, ONTAP, and OpenZFS deployment types.

  • Set to * HDD to use hard disk drive storage. HDD is supported on * SINGLE_AZ_2 and MULTI_AZ_1 Windows file system * deployment types, and on PERSISTENT_1 Lustre file system deployment * types.

Default value is SSD. For more * information, see * Storage type options in the FSx for Windows File Server User Guide * and Multiple * storage options in the FSx for Lustre User Guide.

*/ inline CreateFileSystemRequest& WithStorageType(const StorageType& value) { SetStorageType(value); return *this;} /** *

Sets the storage type for the file system that you're creating. Valid values * are SSD and HDD.

  • Set to * SSD to use solid state drive storage. SSD is supported on all * Windows, Lustre, ONTAP, and OpenZFS deployment types.

  • Set to * HDD to use hard disk drive storage. HDD is supported on * SINGLE_AZ_2 and MULTI_AZ_1 Windows file system * deployment types, and on PERSISTENT_1 Lustre file system deployment * types.

Default value is SSD. For more * information, see * Storage type options in the FSx for Windows File Server User Guide * and Multiple * storage options in the FSx for Lustre User Guide.

*/ inline CreateFileSystemRequest& WithStorageType(StorageType&& value) { SetStorageType(std::move(value)); return *this;} /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline const Aws::Vector& GetSubnetIds() const{ return m_subnetIds; } /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; } /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline void SetSubnetIds(const Aws::Vector& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = value; } /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline void SetSubnetIds(Aws::Vector&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = std::move(value); } /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline CreateFileSystemRequest& WithSubnetIds(const Aws::Vector& value) { SetSubnetIds(value); return *this;} /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline CreateFileSystemRequest& WithSubnetIds(Aws::Vector&& value) { SetSubnetIds(std::move(value)); return *this;} /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline CreateFileSystemRequest& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline CreateFileSystemRequest& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; } /** *

Specifies the IDs of the subnets that the file system will be accessible * from. For Windows and ONTAP MULTI_AZ_1 deployment types,provide * exactly two subnet IDs, one for the preferred file server and one for the * standby file server. You specify one of these subnets as the preferred subnet * using the WindowsConfiguration > PreferredSubnetID or * OntapConfiguration > PreferredSubnetID properties. For more * information about Multi-AZ file system configuration, see * Availability and durability: Single-AZ and Multi-AZ file systems in the * Amazon FSx for Windows User Guide and * Availability and durability in the Amazon FSx for ONTAP User * Guide.

For Windows SINGLE_AZ_1 and * SINGLE_AZ_2 and all Lustre deployment types, provide exactly one * subnet ID. The file server is launched in that subnet's Availability Zone.

*/ inline CreateFileSystemRequest& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline const Aws::Vector& GetSecurityGroupIds() const{ return m_securityGroupIds; } /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline void SetSecurityGroupIds(const Aws::Vector& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline void SetSecurityGroupIds(Aws::Vector&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline CreateFileSystemRequest& WithSecurityGroupIds(const Aws::Vector& value) { SetSecurityGroupIds(value); return *this;} /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline CreateFileSystemRequest& WithSecurityGroupIds(Aws::Vector&& value) { SetSecurityGroupIds(std::move(value)); return *this;} /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline CreateFileSystemRequest& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline CreateFileSystemRequest& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } /** *

A list of IDs specifying the security groups to apply to all network * interfaces created for file system access. This list isn't returned in later * requests to describe the file system.

*/ inline CreateFileSystemRequest& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

The tags to apply to the file system that's being created. The key value of * the Name tag appears in the console as the file system name.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tags to apply to the file system that's being created. The key value of * the Name tag appears in the console as the file system name.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags to apply to the file system that's being created. The key value of * the Name tag appears in the console as the file system name.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags to apply to the file system that's being created. The key value of * the Name tag appears in the console as the file system name.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags to apply to the file system that's being created. The key value of * the Name tag appears in the console as the file system name.

*/ inline CreateFileSystemRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tags to apply to the file system that's being created. The key value of * the Name tag appears in the console as the file system name.

*/ inline CreateFileSystemRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tags to apply to the file system that's being created. The key value of * the Name tag appears in the console as the file system name.

*/ inline CreateFileSystemRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tags to apply to the file system that's being created. The key value of * the Name tag appears in the console as the file system name.

*/ inline CreateFileSystemRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } inline CreateFileSystemRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} inline CreateFileSystemRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} inline CreateFileSystemRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

The Microsoft Windows configuration for the file system that's being created. *

*/ inline const CreateFileSystemWindowsConfiguration& GetWindowsConfiguration() const{ return m_windowsConfiguration; } /** *

The Microsoft Windows configuration for the file system that's being created. *

*/ inline bool WindowsConfigurationHasBeenSet() const { return m_windowsConfigurationHasBeenSet; } /** *

The Microsoft Windows configuration for the file system that's being created. *

*/ inline void SetWindowsConfiguration(const CreateFileSystemWindowsConfiguration& value) { m_windowsConfigurationHasBeenSet = true; m_windowsConfiguration = value; } /** *

The Microsoft Windows configuration for the file system that's being created. *

*/ inline void SetWindowsConfiguration(CreateFileSystemWindowsConfiguration&& value) { m_windowsConfigurationHasBeenSet = true; m_windowsConfiguration = std::move(value); } /** *

The Microsoft Windows configuration for the file system that's being created. *

*/ inline CreateFileSystemRequest& WithWindowsConfiguration(const CreateFileSystemWindowsConfiguration& value) { SetWindowsConfiguration(value); return *this;} /** *

The Microsoft Windows configuration for the file system that's being created. *

*/ inline CreateFileSystemRequest& WithWindowsConfiguration(CreateFileSystemWindowsConfiguration&& value) { SetWindowsConfiguration(std::move(value)); return *this;} inline const CreateFileSystemLustreConfiguration& GetLustreConfiguration() const{ return m_lustreConfiguration; } inline bool LustreConfigurationHasBeenSet() const { return m_lustreConfigurationHasBeenSet; } inline void SetLustreConfiguration(const CreateFileSystemLustreConfiguration& value) { m_lustreConfigurationHasBeenSet = true; m_lustreConfiguration = value; } inline void SetLustreConfiguration(CreateFileSystemLustreConfiguration&& value) { m_lustreConfigurationHasBeenSet = true; m_lustreConfiguration = std::move(value); } inline CreateFileSystemRequest& WithLustreConfiguration(const CreateFileSystemLustreConfiguration& value) { SetLustreConfiguration(value); return *this;} inline CreateFileSystemRequest& WithLustreConfiguration(CreateFileSystemLustreConfiguration&& value) { SetLustreConfiguration(std::move(value)); return *this;} inline const CreateFileSystemOntapConfiguration& GetOntapConfiguration() const{ return m_ontapConfiguration; } inline bool OntapConfigurationHasBeenSet() const { return m_ontapConfigurationHasBeenSet; } inline void SetOntapConfiguration(const CreateFileSystemOntapConfiguration& value) { m_ontapConfigurationHasBeenSet = true; m_ontapConfiguration = value; } inline void SetOntapConfiguration(CreateFileSystemOntapConfiguration&& value) { m_ontapConfigurationHasBeenSet = true; m_ontapConfiguration = std::move(value); } inline CreateFileSystemRequest& WithOntapConfiguration(const CreateFileSystemOntapConfiguration& value) { SetOntapConfiguration(value); return *this;} inline CreateFileSystemRequest& WithOntapConfiguration(CreateFileSystemOntapConfiguration&& value) { SetOntapConfiguration(std::move(value)); return *this;} /** *

(Optional) For FSx for Lustre file systems, sets the Lustre version for the * file system that you're creating. Valid values are 2.10 and * 2.12:

  • 2.10 is supported by the Scratch and * Persistent_1 Lustre deployment types.

  • 2.12 is supported by all * Lustre deployment types. 2.12 is required when setting FSx for * Lustre DeploymentType to PERSISTENT_2.

*

Default value = 2.10, except when DeploymentType is * set to PERSISTENT_2, then the default is 2.12.

*

If you set FileSystemTypeVersion to 2.10 for * a PERSISTENT_2 Lustre deployment type, the * CreateFileSystem operation fails.

*/ inline const Aws::String& GetFileSystemTypeVersion() const{ return m_fileSystemTypeVersion; } /** *

(Optional) For FSx for Lustre file systems, sets the Lustre version for the * file system that you're creating. Valid values are 2.10 and * 2.12:

  • 2.10 is supported by the Scratch and * Persistent_1 Lustre deployment types.

  • 2.12 is supported by all * Lustre deployment types. 2.12 is required when setting FSx for * Lustre DeploymentType to PERSISTENT_2.

*

Default value = 2.10, except when DeploymentType is * set to PERSISTENT_2, then the default is 2.12.

*

If you set FileSystemTypeVersion to 2.10 for * a PERSISTENT_2 Lustre deployment type, the * CreateFileSystem operation fails.

*/ inline bool FileSystemTypeVersionHasBeenSet() const { return m_fileSystemTypeVersionHasBeenSet; } /** *

(Optional) For FSx for Lustre file systems, sets the Lustre version for the * file system that you're creating. Valid values are 2.10 and * 2.12:

  • 2.10 is supported by the Scratch and * Persistent_1 Lustre deployment types.

  • 2.12 is supported by all * Lustre deployment types. 2.12 is required when setting FSx for * Lustre DeploymentType to PERSISTENT_2.

*

Default value = 2.10, except when DeploymentType is * set to PERSISTENT_2, then the default is 2.12.

*

If you set FileSystemTypeVersion to 2.10 for * a PERSISTENT_2 Lustre deployment type, the * CreateFileSystem operation fails.

*/ inline void SetFileSystemTypeVersion(const Aws::String& value) { m_fileSystemTypeVersionHasBeenSet = true; m_fileSystemTypeVersion = value; } /** *

(Optional) For FSx for Lustre file systems, sets the Lustre version for the * file system that you're creating. Valid values are 2.10 and * 2.12:

  • 2.10 is supported by the Scratch and * Persistent_1 Lustre deployment types.

  • 2.12 is supported by all * Lustre deployment types. 2.12 is required when setting FSx for * Lustre DeploymentType to PERSISTENT_2.

*

Default value = 2.10, except when DeploymentType is * set to PERSISTENT_2, then the default is 2.12.

*

If you set FileSystemTypeVersion to 2.10 for * a PERSISTENT_2 Lustre deployment type, the * CreateFileSystem operation fails.

*/ inline void SetFileSystemTypeVersion(Aws::String&& value) { m_fileSystemTypeVersionHasBeenSet = true; m_fileSystemTypeVersion = std::move(value); } /** *

(Optional) For FSx for Lustre file systems, sets the Lustre version for the * file system that you're creating. Valid values are 2.10 and * 2.12:

  • 2.10 is supported by the Scratch and * Persistent_1 Lustre deployment types.

  • 2.12 is supported by all * Lustre deployment types. 2.12 is required when setting FSx for * Lustre DeploymentType to PERSISTENT_2.

*

Default value = 2.10, except when DeploymentType is * set to PERSISTENT_2, then the default is 2.12.

*

If you set FileSystemTypeVersion to 2.10 for * a PERSISTENT_2 Lustre deployment type, the * CreateFileSystem operation fails.

*/ inline void SetFileSystemTypeVersion(const char* value) { m_fileSystemTypeVersionHasBeenSet = true; m_fileSystemTypeVersion.assign(value); } /** *

(Optional) For FSx for Lustre file systems, sets the Lustre version for the * file system that you're creating. Valid values are 2.10 and * 2.12:

  • 2.10 is supported by the Scratch and * Persistent_1 Lustre deployment types.

  • 2.12 is supported by all * Lustre deployment types. 2.12 is required when setting FSx for * Lustre DeploymentType to PERSISTENT_2.

*

Default value = 2.10, except when DeploymentType is * set to PERSISTENT_2, then the default is 2.12.

*

If you set FileSystemTypeVersion to 2.10 for * a PERSISTENT_2 Lustre deployment type, the * CreateFileSystem operation fails.

*/ inline CreateFileSystemRequest& WithFileSystemTypeVersion(const Aws::String& value) { SetFileSystemTypeVersion(value); return *this;} /** *

(Optional) For FSx for Lustre file systems, sets the Lustre version for the * file system that you're creating. Valid values are 2.10 and * 2.12:

  • 2.10 is supported by the Scratch and * Persistent_1 Lustre deployment types.

  • 2.12 is supported by all * Lustre deployment types. 2.12 is required when setting FSx for * Lustre DeploymentType to PERSISTENT_2.

*

Default value = 2.10, except when DeploymentType is * set to PERSISTENT_2, then the default is 2.12.

*

If you set FileSystemTypeVersion to 2.10 for * a PERSISTENT_2 Lustre deployment type, the * CreateFileSystem operation fails.

*/ inline CreateFileSystemRequest& WithFileSystemTypeVersion(Aws::String&& value) { SetFileSystemTypeVersion(std::move(value)); return *this;} /** *

(Optional) For FSx for Lustre file systems, sets the Lustre version for the * file system that you're creating. Valid values are 2.10 and * 2.12:

  • 2.10 is supported by the Scratch and * Persistent_1 Lustre deployment types.

  • 2.12 is supported by all * Lustre deployment types. 2.12 is required when setting FSx for * Lustre DeploymentType to PERSISTENT_2.

*

Default value = 2.10, except when DeploymentType is * set to PERSISTENT_2, then the default is 2.12.

*

If you set FileSystemTypeVersion to 2.10 for * a PERSISTENT_2 Lustre deployment type, the * CreateFileSystem operation fails.

*/ inline CreateFileSystemRequest& WithFileSystemTypeVersion(const char* value) { SetFileSystemTypeVersion(value); return *this;} /** *

The OpenZFS configuration for the file system that's being created.

*/ inline const CreateFileSystemOpenZFSConfiguration& GetOpenZFSConfiguration() const{ return m_openZFSConfiguration; } /** *

The OpenZFS configuration for the file system that's being created.

*/ inline bool OpenZFSConfigurationHasBeenSet() const { return m_openZFSConfigurationHasBeenSet; } /** *

The OpenZFS configuration for the file system that's being created.

*/ inline void SetOpenZFSConfiguration(const CreateFileSystemOpenZFSConfiguration& value) { m_openZFSConfigurationHasBeenSet = true; m_openZFSConfiguration = value; } /** *

The OpenZFS configuration for the file system that's being created.

*/ inline void SetOpenZFSConfiguration(CreateFileSystemOpenZFSConfiguration&& value) { m_openZFSConfigurationHasBeenSet = true; m_openZFSConfiguration = std::move(value); } /** *

The OpenZFS configuration for the file system that's being created.

*/ inline CreateFileSystemRequest& WithOpenZFSConfiguration(const CreateFileSystemOpenZFSConfiguration& value) { SetOpenZFSConfiguration(value); return *this;} /** *

The OpenZFS configuration for the file system that's being created.

*/ inline CreateFileSystemRequest& WithOpenZFSConfiguration(CreateFileSystemOpenZFSConfiguration&& value) { SetOpenZFSConfiguration(std::move(value)); return *this;} private: Aws::String m_clientRequestToken; bool m_clientRequestTokenHasBeenSet = false; FileSystemType m_fileSystemType; bool m_fileSystemTypeHasBeenSet = false; int m_storageCapacity; bool m_storageCapacityHasBeenSet = false; StorageType m_storageType; bool m_storageTypeHasBeenSet = false; Aws::Vector m_subnetIds; bool m_subnetIdsHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; CreateFileSystemWindowsConfiguration m_windowsConfiguration; bool m_windowsConfigurationHasBeenSet = false; CreateFileSystemLustreConfiguration m_lustreConfiguration; bool m_lustreConfigurationHasBeenSet = false; CreateFileSystemOntapConfiguration m_ontapConfiguration; bool m_ontapConfigurationHasBeenSet = false; Aws::String m_fileSystemTypeVersion; bool m_fileSystemTypeVersionHasBeenSet = false; CreateFileSystemOpenZFSConfiguration m_openZFSConfiguration; bool m_openZFSConfigurationHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws