/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace FSx { namespace Model { class AdministrativeAction; /** *

A description of a specific Amazon FSx file system.

See Also:

* AWS * API Reference

*/ class AWS_FSX_API FileSystem { public: FileSystem(); FileSystem(Aws::Utils::Json::JsonView jsonValue); FileSystem& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The AWS account that created the file system. If the file system was created * by an AWS Identity and Access Management (IAM) user, the AWS account to which * the IAM user belongs is the owner.

*/ inline const Aws::String& GetOwnerId() const{ return m_ownerId; } /** *

The AWS account that created the file system. If the file system was created * by an AWS Identity and Access Management (IAM) user, the AWS account to which * the IAM user belongs is the owner.

*/ inline bool OwnerIdHasBeenSet() const { return m_ownerIdHasBeenSet; } /** *

The AWS account that created the file system. If the file system was created * by an AWS Identity and Access Management (IAM) user, the AWS account to which * the IAM user belongs is the owner.

*/ inline void SetOwnerId(const Aws::String& value) { m_ownerIdHasBeenSet = true; m_ownerId = value; } /** *

The AWS account that created the file system. If the file system was created * by an AWS Identity and Access Management (IAM) user, the AWS account to which * the IAM user belongs is the owner.

*/ inline void SetOwnerId(Aws::String&& value) { m_ownerIdHasBeenSet = true; m_ownerId = std::move(value); } /** *

The AWS account that created the file system. If the file system was created * by an AWS Identity and Access Management (IAM) user, the AWS account to which * the IAM user belongs is the owner.

*/ inline void SetOwnerId(const char* value) { m_ownerIdHasBeenSet = true; m_ownerId.assign(value); } /** *

The AWS account that created the file system. If the file system was created * by an AWS Identity and Access Management (IAM) user, the AWS account to which * the IAM user belongs is the owner.

*/ inline FileSystem& WithOwnerId(const Aws::String& value) { SetOwnerId(value); return *this;} /** *

The AWS account that created the file system. If the file system was created * by an AWS Identity and Access Management (IAM) user, the AWS account to which * the IAM user belongs is the owner.

*/ inline FileSystem& WithOwnerId(Aws::String&& value) { SetOwnerId(std::move(value)); return *this;} /** *

The AWS account that created the file system. If the file system was created * by an AWS Identity and Access Management (IAM) user, the AWS account to which * the IAM user belongs is the owner.

*/ inline FileSystem& WithOwnerId(const char* value) { SetOwnerId(value); return *this;} /** *

The time that the file system was created, in seconds (since * 1970-01-01T00:00:00Z), also known as Unix time.

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } /** *

The time that the file system was created, in seconds (since * 1970-01-01T00:00:00Z), also known as Unix time.

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

The time that the file system was created, in seconds (since * 1970-01-01T00:00:00Z), also known as Unix time.

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The time that the file system was created, in seconds (since * 1970-01-01T00:00:00Z), also known as Unix time.

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

The time that the file system was created, in seconds (since * 1970-01-01T00:00:00Z), also known as Unix time.

*/ inline FileSystem& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

The time that the file system was created, in seconds (since * 1970-01-01T00:00:00Z), also known as Unix time.

*/ inline FileSystem& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The system-generated, unique 17-digit ID of the file system.

*/ inline const Aws::String& GetFileSystemId() const{ return m_fileSystemId; } /** *

The system-generated, unique 17-digit ID of the file system.

*/ inline bool FileSystemIdHasBeenSet() const { return m_fileSystemIdHasBeenSet; } /** *

The system-generated, unique 17-digit ID of the file system.

*/ inline void SetFileSystemId(const Aws::String& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = value; } /** *

The system-generated, unique 17-digit ID of the file system.

*/ inline void SetFileSystemId(Aws::String&& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = std::move(value); } /** *

The system-generated, unique 17-digit ID of the file system.

*/ inline void SetFileSystemId(const char* value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId.assign(value); } /** *

The system-generated, unique 17-digit ID of the file system.

*/ inline FileSystem& WithFileSystemId(const Aws::String& value) { SetFileSystemId(value); return *this;} /** *

The system-generated, unique 17-digit ID of the file system.

*/ inline FileSystem& WithFileSystemId(Aws::String&& value) { SetFileSystemId(std::move(value)); return *this;} /** *

The system-generated, unique 17-digit ID of the file system.

*/ inline FileSystem& WithFileSystemId(const char* value) { SetFileSystemId(value); return *this;} /** *

The type of Amazon FSx file system, either LUSTRE or * WINDOWS.

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

The type of Amazon FSx file system, either LUSTRE or * WINDOWS.

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

The type of Amazon FSx file system, either LUSTRE or * WINDOWS.

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

The type of Amazon FSx file system, either LUSTRE or * WINDOWS.

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

The type of Amazon FSx file system, either LUSTRE or * WINDOWS.

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

The type of Amazon FSx file system, either LUSTRE or * WINDOWS.

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

The lifecycle status of the file system, following are the possible values * and what they mean:

  • AVAILABLE - The file system * is in a healthy state, and is reachable and available for use.

  • *

    CREATING - Amazon FSx is creating the new file system.

    *
  • DELETING - Amazon FSx is deleting an existing file * system.

  • FAILED - An existing file system has * experienced an unrecoverable failure. When creating a new file system, Amazon * FSx was unable to create the file system.

  • * MISCONFIGURED indicates that the file system is in a failed but * recoverable state.

  • UPDATING indicates that the * file system is undergoing a customer initiated update.

*/ inline const FileSystemLifecycle& GetLifecycle() const{ return m_lifecycle; } /** *

The lifecycle status of the file system, following are the possible values * and what they mean:

  • AVAILABLE - The file system * is in a healthy state, and is reachable and available for use.

  • *

    CREATING - Amazon FSx is creating the new file system.

    *
  • DELETING - Amazon FSx is deleting an existing file * system.

  • FAILED - An existing file system has * experienced an unrecoverable failure. When creating a new file system, Amazon * FSx was unable to create the file system.

  • * MISCONFIGURED indicates that the file system is in a failed but * recoverable state.

  • UPDATING indicates that the * file system is undergoing a customer initiated update.

*/ inline bool LifecycleHasBeenSet() const { return m_lifecycleHasBeenSet; } /** *

The lifecycle status of the file system, following are the possible values * and what they mean:

  • AVAILABLE - The file system * is in a healthy state, and is reachable and available for use.

  • *

    CREATING - Amazon FSx is creating the new file system.

    *
  • DELETING - Amazon FSx is deleting an existing file * system.

  • FAILED - An existing file system has * experienced an unrecoverable failure. When creating a new file system, Amazon * FSx was unable to create the file system.

  • * MISCONFIGURED indicates that the file system is in a failed but * recoverable state.

  • UPDATING indicates that the * file system is undergoing a customer initiated update.

*/ inline void SetLifecycle(const FileSystemLifecycle& value) { m_lifecycleHasBeenSet = true; m_lifecycle = value; } /** *

The lifecycle status of the file system, following are the possible values * and what they mean:

  • AVAILABLE - The file system * is in a healthy state, and is reachable and available for use.

  • *

    CREATING - Amazon FSx is creating the new file system.

    *
  • DELETING - Amazon FSx is deleting an existing file * system.

  • FAILED - An existing file system has * experienced an unrecoverable failure. When creating a new file system, Amazon * FSx was unable to create the file system.

  • * MISCONFIGURED indicates that the file system is in a failed but * recoverable state.

  • UPDATING indicates that the * file system is undergoing a customer initiated update.

*/ inline void SetLifecycle(FileSystemLifecycle&& value) { m_lifecycleHasBeenSet = true; m_lifecycle = std::move(value); } /** *

The lifecycle status of the file system, following are the possible values * and what they mean:

  • AVAILABLE - The file system * is in a healthy state, and is reachable and available for use.

  • *

    CREATING - Amazon FSx is creating the new file system.

    *
  • DELETING - Amazon FSx is deleting an existing file * system.

  • FAILED - An existing file system has * experienced an unrecoverable failure. When creating a new file system, Amazon * FSx was unable to create the file system.

  • * MISCONFIGURED indicates that the file system is in a failed but * recoverable state.

  • UPDATING indicates that the * file system is undergoing a customer initiated update.

*/ inline FileSystem& WithLifecycle(const FileSystemLifecycle& value) { SetLifecycle(value); return *this;} /** *

The lifecycle status of the file system, following are the possible values * and what they mean:

  • AVAILABLE - The file system * is in a healthy state, and is reachable and available for use.

  • *

    CREATING - Amazon FSx is creating the new file system.

    *
  • DELETING - Amazon FSx is deleting an existing file * system.

  • FAILED - An existing file system has * experienced an unrecoverable failure. When creating a new file system, Amazon * FSx was unable to create the file system.

  • * MISCONFIGURED indicates that the file system is in a failed but * recoverable state.

  • UPDATING indicates that the * file system is undergoing a customer initiated update.

*/ inline FileSystem& WithLifecycle(FileSystemLifecycle&& value) { SetLifecycle(std::move(value)); return *this;} inline const FileSystemFailureDetails& GetFailureDetails() const{ return m_failureDetails; } inline bool FailureDetailsHasBeenSet() const { return m_failureDetailsHasBeenSet; } inline void SetFailureDetails(const FileSystemFailureDetails& value) { m_failureDetailsHasBeenSet = true; m_failureDetails = value; } inline void SetFailureDetails(FileSystemFailureDetails&& value) { m_failureDetailsHasBeenSet = true; m_failureDetails = std::move(value); } inline FileSystem& WithFailureDetails(const FileSystemFailureDetails& value) { SetFailureDetails(value); return *this;} inline FileSystem& WithFailureDetails(FileSystemFailureDetails&& value) { SetFailureDetails(std::move(value)); return *this;} /** *

The storage capacity of the file system in gigabytes (GB).

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

The storage capacity of the file system in gigabytes (GB).

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

The storage capacity of the file system in gigabytes (GB).

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

The storage capacity of the file system in gigabytes (GB).

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

The storage type of the file system. Valid values are SSD and * HDD. If set to SSD, the file system uses solid state * drive storage. If set to HDD, the file system uses hard disk drive * storage.

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

The storage type of the file system. Valid values are SSD and * HDD. If set to SSD, the file system uses solid state * drive storage. If set to HDD, the file system uses hard disk drive * storage.

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

The storage type of the file system. Valid values are SSD and * HDD. If set to SSD, the file system uses solid state * drive storage. If set to HDD, the file system uses hard disk drive * storage.

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

The storage type of the file system. Valid values are SSD and * HDD. If set to SSD, the file system uses solid state * drive storage. If set to HDD, the file system uses hard disk drive * storage.

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

The storage type of the file system. Valid values are SSD and * HDD. If set to SSD, the file system uses solid state * drive storage. If set to HDD, the file system uses hard disk drive * storage.

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

The storage type of the file system. Valid values are SSD and * HDD. If set to SSD, the file system uses solid state * drive storage. If set to HDD, the file system uses hard disk drive * storage.

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

The ID of the primary VPC for the file system.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The ID of the primary VPC for the file system.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The ID of the primary VPC for the file system.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The ID of the primary VPC for the file system.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The ID of the primary VPC for the file system.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The ID of the primary VPC for the file system.

*/ inline FileSystem& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The ID of the primary VPC for the file system.

*/ inline FileSystem& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The ID of the primary VPC for the file system.

*/ inline FileSystem& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

Specifies the IDs of the subnets that the file system is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

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

Specifies the IDs of the subnets that the file system is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

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

Specifies the IDs of the subnets that the file system is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

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

Specifies the IDs of the subnets that the file system is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

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

Specifies the IDs of the subnets that the file system is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

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

Specifies the IDs of the subnets that the file system is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

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

Specifies the IDs of the subnets that the file system is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

*/ inline FileSystem& 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 is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

*/ inline FileSystem& 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 is accessible from. For * Windows MULTI_AZ_1 file system deployment type, there are two * subnet IDs, one for the preferred file server and one for the standby file * server. The preferred file server subnet identified in the * PreferredSubnetID property. All other file systems have only one * subnet ID.

For Lustre file systems, and Single-AZ Windows file systems, * this is the ID of the subnet that contains the endpoint for the file system. For * MULTI_AZ_1 Windows file systems, the endpoint for the file system * is available in the PreferredSubnetID.

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

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline const Aws::Vector& GetNetworkInterfaceIds() const{ return m_networkInterfaceIds; } /** *

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline bool NetworkInterfaceIdsHasBeenSet() const { return m_networkInterfaceIdsHasBeenSet; } /** *

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline void SetNetworkInterfaceIds(const Aws::Vector& value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds = value; } /** *

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline void SetNetworkInterfaceIds(Aws::Vector&& value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds = std::move(value); } /** *

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline FileSystem& WithNetworkInterfaceIds(const Aws::Vector& value) { SetNetworkInterfaceIds(value); return *this;} /** *

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline FileSystem& WithNetworkInterfaceIds(Aws::Vector&& value) { SetNetworkInterfaceIds(std::move(value)); return *this;} /** *

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline FileSystem& AddNetworkInterfaceIds(const Aws::String& value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds.push_back(value); return *this; } /** *

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline FileSystem& AddNetworkInterfaceIds(Aws::String&& value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds.push_back(std::move(value)); return *this; } /** *

The IDs of the elastic network interface from which a specific file system is * accessible. The elastic network interface is automatically created in the same * VPC that the Amazon FSx file system was created in. For more information, see Elastic * Network Interfaces in the Amazon EC2 User Guide.

For an * Amazon FSx for Windows File Server file system, you can have one network * interface ID. For an Amazon FSx for Lustre file system, you can have more than * one.

*/ inline FileSystem& AddNetworkInterfaceIds(const char* value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds.push_back(value); return *this; } /** *

The DNS name for the file system.

*/ inline const Aws::String& GetDNSName() const{ return m_dNSName; } /** *

The DNS name for the file system.

*/ inline bool DNSNameHasBeenSet() const { return m_dNSNameHasBeenSet; } /** *

The DNS name for the file system.

*/ inline void SetDNSName(const Aws::String& value) { m_dNSNameHasBeenSet = true; m_dNSName = value; } /** *

The DNS name for the file system.

*/ inline void SetDNSName(Aws::String&& value) { m_dNSNameHasBeenSet = true; m_dNSName = std::move(value); } /** *

The DNS name for the file system.

*/ inline void SetDNSName(const char* value) { m_dNSNameHasBeenSet = true; m_dNSName.assign(value); } /** *

The DNS name for the file system.

*/ inline FileSystem& WithDNSName(const Aws::String& value) { SetDNSName(value); return *this;} /** *

The DNS name for the file system.

*/ inline FileSystem& WithDNSName(Aws::String&& value) { SetDNSName(std::move(value)); return *this;} /** *

The DNS name for the file system.

*/ inline FileSystem& WithDNSName(const char* value) { SetDNSName(value); return *this;} /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * file system's data for Amazon FSx for Windows File Server file systems and * persistent Amazon FSx for Lustre file systems at rest. In either case, if not * specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre * file systems are always encrypted at rest using Amazon FSx managed keys. For * more information, see Encrypt * in the AWS Key Management Service API Reference.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * file system's data for Amazon FSx for Windows File Server file systems and * persistent Amazon FSx for Lustre file systems at rest. In either case, if not * specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre * file systems are always encrypted at rest using Amazon FSx managed keys. For * more information, see Encrypt * in the AWS Key Management Service API Reference.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * file system's data for Amazon FSx for Windows File Server file systems and * persistent Amazon FSx for Lustre file systems at rest. In either case, if not * specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre * file systems are always encrypted at rest using Amazon FSx managed keys. For * more information, see Encrypt * in the AWS Key Management Service API Reference.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * file system's data for Amazon FSx for Windows File Server file systems and * persistent Amazon FSx for Lustre file systems at rest. In either case, if not * specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre * file systems are always encrypted at rest using Amazon FSx managed keys. For * more information, see Encrypt * in the AWS Key Management Service API Reference.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * file system's data for Amazon FSx for Windows File Server file systems and * persistent Amazon FSx for Lustre file systems at rest. In either case, if not * specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre * file systems are always encrypted at rest using Amazon FSx managed keys. For * more information, see Encrypt * in the AWS Key Management Service API Reference.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * file system's data for Amazon FSx for Windows File Server file systems and * persistent Amazon FSx for Lustre file systems at rest. In either case, if not * specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre * file systems are always encrypted at rest using Amazon FSx managed keys. For * more information, see Encrypt * in the AWS Key Management Service API Reference.

*/ inline FileSystem& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * file system's data for Amazon FSx for Windows File Server file systems and * persistent Amazon FSx for Lustre file systems at rest. In either case, if not * specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre * file systems are always encrypted at rest using Amazon FSx managed keys. For * more information, see Encrypt * in the AWS Key Management Service API Reference.

*/ inline FileSystem& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * file system's data for Amazon FSx for Windows File Server file systems and * persistent Amazon FSx for Lustre file systems at rest. In either case, if not * specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre * file systems are always encrypted at rest using Amazon FSx managed keys. For * more information, see Encrypt * in the AWS Key Management Service API Reference.

*/ inline FileSystem& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

The Amazon Resource Name (ARN) for the file system resource.

*/ inline const Aws::String& GetResourceARN() const{ return m_resourceARN; } /** *

The Amazon Resource Name (ARN) for the file system resource.

*/ inline bool ResourceARNHasBeenSet() const { return m_resourceARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the file system resource.

*/ inline void SetResourceARN(const Aws::String& value) { m_resourceARNHasBeenSet = true; m_resourceARN = value; } /** *

The Amazon Resource Name (ARN) for the file system resource.

*/ inline void SetResourceARN(Aws::String&& value) { m_resourceARNHasBeenSet = true; m_resourceARN = std::move(value); } /** *

The Amazon Resource Name (ARN) for the file system resource.

*/ inline void SetResourceARN(const char* value) { m_resourceARNHasBeenSet = true; m_resourceARN.assign(value); } /** *

The Amazon Resource Name (ARN) for the file system resource.

*/ inline FileSystem& WithResourceARN(const Aws::String& value) { SetResourceARN(value); return *this;} /** *

The Amazon Resource Name (ARN) for the file system resource.

*/ inline FileSystem& WithResourceARN(Aws::String&& value) { SetResourceARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the file system resource.

*/ inline FileSystem& WithResourceARN(const char* value) { SetResourceARN(value); return *this;} /** *

The tags to associate with the file system. For more information, see Tagging * Your Amazon EC2 Resources in the Amazon EC2 User Guide.

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

The tags to associate with the file system. For more information, see Tagging * Your Amazon EC2 Resources in the Amazon EC2 User Guide.

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

The tags to associate with the file system. For more information, see Tagging * Your Amazon EC2 Resources in the Amazon EC2 User Guide.

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

The tags to associate with the file system. For more information, see Tagging * Your Amazon EC2 Resources in the Amazon EC2 User Guide.

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

The tags to associate with the file system. For more information, see Tagging * Your Amazon EC2 Resources in the Amazon EC2 User Guide.

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

The tags to associate with the file system. For more information, see Tagging * Your Amazon EC2 Resources in the Amazon EC2 User Guide.

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

The tags to associate with the file system. For more information, see Tagging * Your Amazon EC2 Resources in the Amazon EC2 User Guide.

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

The tags to associate with the file system. For more information, see Tagging * Your Amazon EC2 Resources in the Amazon EC2 User Guide.

*/ inline FileSystem& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The configuration for this Microsoft Windows file system.

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

The configuration for this Microsoft Windows file system.

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

The configuration for this Microsoft Windows file system.

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

The configuration for this Microsoft Windows file system.

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

The configuration for this Microsoft Windows file system.

*/ inline FileSystem& WithWindowsConfiguration(const WindowsFileSystemConfiguration& value) { SetWindowsConfiguration(value); return *this;} /** *

The configuration for this Microsoft Windows file system.

*/ inline FileSystem& WithWindowsConfiguration(WindowsFileSystemConfiguration&& value) { SetWindowsConfiguration(std::move(value)); return *this;} inline const LustreFileSystemConfiguration& GetLustreConfiguration() const{ return m_lustreConfiguration; } inline bool LustreConfigurationHasBeenSet() const { return m_lustreConfigurationHasBeenSet; } inline void SetLustreConfiguration(const LustreFileSystemConfiguration& value) { m_lustreConfigurationHasBeenSet = true; m_lustreConfiguration = value; } inline void SetLustreConfiguration(LustreFileSystemConfiguration&& value) { m_lustreConfigurationHasBeenSet = true; m_lustreConfiguration = std::move(value); } inline FileSystem& WithLustreConfiguration(const LustreFileSystemConfiguration& value) { SetLustreConfiguration(value); return *this;} inline FileSystem& WithLustreConfiguration(LustreFileSystemConfiguration&& value) { SetLustreConfiguration(std::move(value)); return *this;} /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Windows * file system that you have initiated using the UpdateFileSystem * action.

*/ inline const Aws::Vector& GetAdministrativeActions() const{ return m_administrativeActions; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Windows * file system that you have initiated using the UpdateFileSystem * action.

*/ inline bool AdministrativeActionsHasBeenSet() const { return m_administrativeActionsHasBeenSet; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Windows * file system that you have initiated using the UpdateFileSystem * action.

*/ inline void SetAdministrativeActions(const Aws::Vector& value) { m_administrativeActionsHasBeenSet = true; m_administrativeActions = value; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Windows * file system that you have initiated using the UpdateFileSystem * action.

*/ inline void SetAdministrativeActions(Aws::Vector&& value) { m_administrativeActionsHasBeenSet = true; m_administrativeActions = std::move(value); } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Windows * file system that you have initiated using the UpdateFileSystem * action.

*/ inline FileSystem& WithAdministrativeActions(const Aws::Vector& value) { SetAdministrativeActions(value); return *this;} /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Windows * file system that you have initiated using the UpdateFileSystem * action.

*/ inline FileSystem& WithAdministrativeActions(Aws::Vector&& value) { SetAdministrativeActions(std::move(value)); return *this;} /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Windows * file system that you have initiated using the UpdateFileSystem * action.

*/ inline FileSystem& AddAdministrativeActions(const AdministrativeAction& value) { m_administrativeActionsHasBeenSet = true; m_administrativeActions.push_back(value); return *this; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Windows * file system that you have initiated using the UpdateFileSystem * action.

*/ inline FileSystem& AddAdministrativeActions(AdministrativeAction&& value) { m_administrativeActionsHasBeenSet = true; m_administrativeActions.push_back(std::move(value)); return *this; } private: Aws::String m_ownerId; bool m_ownerIdHasBeenSet; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet; Aws::String m_fileSystemId; bool m_fileSystemIdHasBeenSet; FileSystemType m_fileSystemType; bool m_fileSystemTypeHasBeenSet; FileSystemLifecycle m_lifecycle; bool m_lifecycleHasBeenSet; FileSystemFailureDetails m_failureDetails; bool m_failureDetailsHasBeenSet; int m_storageCapacity; bool m_storageCapacityHasBeenSet; StorageType m_storageType; bool m_storageTypeHasBeenSet; Aws::String m_vpcId; bool m_vpcIdHasBeenSet; Aws::Vector m_subnetIds; bool m_subnetIdsHasBeenSet; Aws::Vector m_networkInterfaceIds; bool m_networkInterfaceIdsHasBeenSet; Aws::String m_dNSName; bool m_dNSNameHasBeenSet; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet; Aws::String m_resourceARN; bool m_resourceARNHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; WindowsFileSystemConfiguration m_windowsConfiguration; bool m_windowsConfigurationHasBeenSet; LustreFileSystemConfiguration m_lustreConfiguration; bool m_lustreConfigurationHasBeenSet; Aws::Vector m_administrativeActions; bool m_administrativeActionsHasBeenSet; }; } // namespace Model } // namespace FSx } // namespace Aws