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

The ONTAP configuration properties of the FSx for ONTAP file system that you * are creating.

See Also:

AWS * API Reference

*/ class CreateFileSystemOntapConfiguration { public: AWS_FSX_API CreateFileSystemOntapConfiguration(); AWS_FSX_API CreateFileSystemOntapConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API CreateFileSystemOntapConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API Aws::Utils::Json::JsonValue Jsonize() const; inline int GetAutomaticBackupRetentionDays() const{ return m_automaticBackupRetentionDays; } inline bool AutomaticBackupRetentionDaysHasBeenSet() const { return m_automaticBackupRetentionDaysHasBeenSet; } inline void SetAutomaticBackupRetentionDays(int value) { m_automaticBackupRetentionDaysHasBeenSet = true; m_automaticBackupRetentionDays = value; } inline CreateFileSystemOntapConfiguration& WithAutomaticBackupRetentionDays(int value) { SetAutomaticBackupRetentionDays(value); return *this;} inline const Aws::String& GetDailyAutomaticBackupStartTime() const{ return m_dailyAutomaticBackupStartTime; } inline bool DailyAutomaticBackupStartTimeHasBeenSet() const { return m_dailyAutomaticBackupStartTimeHasBeenSet; } inline void SetDailyAutomaticBackupStartTime(const Aws::String& value) { m_dailyAutomaticBackupStartTimeHasBeenSet = true; m_dailyAutomaticBackupStartTime = value; } inline void SetDailyAutomaticBackupStartTime(Aws::String&& value) { m_dailyAutomaticBackupStartTimeHasBeenSet = true; m_dailyAutomaticBackupStartTime = std::move(value); } inline void SetDailyAutomaticBackupStartTime(const char* value) { m_dailyAutomaticBackupStartTimeHasBeenSet = true; m_dailyAutomaticBackupStartTime.assign(value); } inline CreateFileSystemOntapConfiguration& WithDailyAutomaticBackupStartTime(const Aws::String& value) { SetDailyAutomaticBackupStartTime(value); return *this;} inline CreateFileSystemOntapConfiguration& WithDailyAutomaticBackupStartTime(Aws::String&& value) { SetDailyAutomaticBackupStartTime(std::move(value)); return *this;} inline CreateFileSystemOntapConfiguration& WithDailyAutomaticBackupStartTime(const char* value) { SetDailyAutomaticBackupStartTime(value); return *this;} /** *

Specifies the FSx for ONTAP file system deployment type to use in creating * the file system.

  • MULTI_AZ_1 - (Default) A high * availability file system configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability.

  • * SINGLE_AZ_1 - A file system configured for Single-AZ * redundancy.

For information about the use cases for Multi-AZ * and Single-AZ deployments, refer to Choosing * a file system deployment type.

*/ inline const OntapDeploymentType& GetDeploymentType() const{ return m_deploymentType; } /** *

Specifies the FSx for ONTAP file system deployment type to use in creating * the file system.

  • MULTI_AZ_1 - (Default) A high * availability file system configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability.

  • * SINGLE_AZ_1 - A file system configured for Single-AZ * redundancy.

For information about the use cases for Multi-AZ * and Single-AZ deployments, refer to Choosing * a file system deployment type.

*/ inline bool DeploymentTypeHasBeenSet() const { return m_deploymentTypeHasBeenSet; } /** *

Specifies the FSx for ONTAP file system deployment type to use in creating * the file system.

  • MULTI_AZ_1 - (Default) A high * availability file system configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability.

  • * SINGLE_AZ_1 - A file system configured for Single-AZ * redundancy.

For information about the use cases for Multi-AZ * and Single-AZ deployments, refer to Choosing * a file system deployment type.

*/ inline void SetDeploymentType(const OntapDeploymentType& value) { m_deploymentTypeHasBeenSet = true; m_deploymentType = value; } /** *

Specifies the FSx for ONTAP file system deployment type to use in creating * the file system.

  • MULTI_AZ_1 - (Default) A high * availability file system configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability.

  • * SINGLE_AZ_1 - A file system configured for Single-AZ * redundancy.

For information about the use cases for Multi-AZ * and Single-AZ deployments, refer to Choosing * a file system deployment type.

*/ inline void SetDeploymentType(OntapDeploymentType&& value) { m_deploymentTypeHasBeenSet = true; m_deploymentType = std::move(value); } /** *

Specifies the FSx for ONTAP file system deployment type to use in creating * the file system.

  • MULTI_AZ_1 - (Default) A high * availability file system configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability.

  • * SINGLE_AZ_1 - A file system configured for Single-AZ * redundancy.

For information about the use cases for Multi-AZ * and Single-AZ deployments, refer to Choosing * a file system deployment type.

*/ inline CreateFileSystemOntapConfiguration& WithDeploymentType(const OntapDeploymentType& value) { SetDeploymentType(value); return *this;} /** *

Specifies the FSx for ONTAP file system deployment type to use in creating * the file system.

  • MULTI_AZ_1 - (Default) A high * availability file system configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability.

  • * SINGLE_AZ_1 - A file system configured for Single-AZ * redundancy.

For information about the use cases for Multi-AZ * and Single-AZ deployments, refer to Choosing * a file system deployment type.

*/ inline CreateFileSystemOntapConfiguration& WithDeploymentType(OntapDeploymentType&& value) { SetDeploymentType(std::move(value)); return *this;} /** *

(Multi-AZ only) Specifies the IP address range in which the endpoints to * access your file system will be created. By default in the Amazon FSx API, * Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP * addresses from the VPC’s primary CIDR range to use as the endpoint IP address * range for the file system. You can have overlapping endpoint IP addresses for * file systems deployed in the same VPC/route tables, as long as they don't * overlap with any subnet.

*/ inline const Aws::String& GetEndpointIpAddressRange() const{ return m_endpointIpAddressRange; } /** *

(Multi-AZ only) Specifies the IP address range in which the endpoints to * access your file system will be created. By default in the Amazon FSx API, * Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP * addresses from the VPC’s primary CIDR range to use as the endpoint IP address * range for the file system. You can have overlapping endpoint IP addresses for * file systems deployed in the same VPC/route tables, as long as they don't * overlap with any subnet.

*/ inline bool EndpointIpAddressRangeHasBeenSet() const { return m_endpointIpAddressRangeHasBeenSet; } /** *

(Multi-AZ only) Specifies the IP address range in which the endpoints to * access your file system will be created. By default in the Amazon FSx API, * Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP * addresses from the VPC’s primary CIDR range to use as the endpoint IP address * range for the file system. You can have overlapping endpoint IP addresses for * file systems deployed in the same VPC/route tables, as long as they don't * overlap with any subnet.

*/ inline void SetEndpointIpAddressRange(const Aws::String& value) { m_endpointIpAddressRangeHasBeenSet = true; m_endpointIpAddressRange = value; } /** *

(Multi-AZ only) Specifies the IP address range in which the endpoints to * access your file system will be created. By default in the Amazon FSx API, * Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP * addresses from the VPC’s primary CIDR range to use as the endpoint IP address * range for the file system. You can have overlapping endpoint IP addresses for * file systems deployed in the same VPC/route tables, as long as they don't * overlap with any subnet.

*/ inline void SetEndpointIpAddressRange(Aws::String&& value) { m_endpointIpAddressRangeHasBeenSet = true; m_endpointIpAddressRange = std::move(value); } /** *

(Multi-AZ only) Specifies the IP address range in which the endpoints to * access your file system will be created. By default in the Amazon FSx API, * Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP * addresses from the VPC’s primary CIDR range to use as the endpoint IP address * range for the file system. You can have overlapping endpoint IP addresses for * file systems deployed in the same VPC/route tables, as long as they don't * overlap with any subnet.

*/ inline void SetEndpointIpAddressRange(const char* value) { m_endpointIpAddressRangeHasBeenSet = true; m_endpointIpAddressRange.assign(value); } /** *

(Multi-AZ only) Specifies the IP address range in which the endpoints to * access your file system will be created. By default in the Amazon FSx API, * Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP * addresses from the VPC’s primary CIDR range to use as the endpoint IP address * range for the file system. You can have overlapping endpoint IP addresses for * file systems deployed in the same VPC/route tables, as long as they don't * overlap with any subnet.

*/ inline CreateFileSystemOntapConfiguration& WithEndpointIpAddressRange(const Aws::String& value) { SetEndpointIpAddressRange(value); return *this;} /** *

(Multi-AZ only) Specifies the IP address range in which the endpoints to * access your file system will be created. By default in the Amazon FSx API, * Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP * addresses from the VPC’s primary CIDR range to use as the endpoint IP address * range for the file system. You can have overlapping endpoint IP addresses for * file systems deployed in the same VPC/route tables, as long as they don't * overlap with any subnet.

*/ inline CreateFileSystemOntapConfiguration& WithEndpointIpAddressRange(Aws::String&& value) { SetEndpointIpAddressRange(std::move(value)); return *this;} /** *

(Multi-AZ only) Specifies the IP address range in which the endpoints to * access your file system will be created. By default in the Amazon FSx API, * Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP * addresses from the VPC’s primary CIDR range to use as the endpoint IP address * range for the file system. You can have overlapping endpoint IP addresses for * file systems deployed in the same VPC/route tables, as long as they don't * overlap with any subnet.

*/ inline CreateFileSystemOntapConfiguration& WithEndpointIpAddressRange(const char* value) { SetEndpointIpAddressRange(value); return *this;} /** *

The ONTAP administrative password for the fsxadmin user with * which you administer your file system using the NetApp ONTAP CLI and REST * API.

*/ inline const Aws::String& GetFsxAdminPassword() const{ return m_fsxAdminPassword; } /** *

The ONTAP administrative password for the fsxadmin user with * which you administer your file system using the NetApp ONTAP CLI and REST * API.

*/ inline bool FsxAdminPasswordHasBeenSet() const { return m_fsxAdminPasswordHasBeenSet; } /** *

The ONTAP administrative password for the fsxadmin user with * which you administer your file system using the NetApp ONTAP CLI and REST * API.

*/ inline void SetFsxAdminPassword(const Aws::String& value) { m_fsxAdminPasswordHasBeenSet = true; m_fsxAdminPassword = value; } /** *

The ONTAP administrative password for the fsxadmin user with * which you administer your file system using the NetApp ONTAP CLI and REST * API.

*/ inline void SetFsxAdminPassword(Aws::String&& value) { m_fsxAdminPasswordHasBeenSet = true; m_fsxAdminPassword = std::move(value); } /** *

The ONTAP administrative password for the fsxadmin user with * which you administer your file system using the NetApp ONTAP CLI and REST * API.

*/ inline void SetFsxAdminPassword(const char* value) { m_fsxAdminPasswordHasBeenSet = true; m_fsxAdminPassword.assign(value); } /** *

The ONTAP administrative password for the fsxadmin user with * which you administer your file system using the NetApp ONTAP CLI and REST * API.

*/ inline CreateFileSystemOntapConfiguration& WithFsxAdminPassword(const Aws::String& value) { SetFsxAdminPassword(value); return *this;} /** *

The ONTAP administrative password for the fsxadmin user with * which you administer your file system using the NetApp ONTAP CLI and REST * API.

*/ inline CreateFileSystemOntapConfiguration& WithFsxAdminPassword(Aws::String&& value) { SetFsxAdminPassword(std::move(value)); return *this;} /** *

The ONTAP administrative password for the fsxadmin user with * which you administer your file system using the NetApp ONTAP CLI and REST * API.

*/ inline CreateFileSystemOntapConfiguration& WithFsxAdminPassword(const char* value) { SetFsxAdminPassword(value); return *this;} /** *

The SSD IOPS configuration for the FSx for ONTAP file system.

*/ inline const DiskIopsConfiguration& GetDiskIopsConfiguration() const{ return m_diskIopsConfiguration; } /** *

The SSD IOPS configuration for the FSx for ONTAP file system.

*/ inline bool DiskIopsConfigurationHasBeenSet() const { return m_diskIopsConfigurationHasBeenSet; } /** *

The SSD IOPS configuration for the FSx for ONTAP file system.

*/ inline void SetDiskIopsConfiguration(const DiskIopsConfiguration& value) { m_diskIopsConfigurationHasBeenSet = true; m_diskIopsConfiguration = value; } /** *

The SSD IOPS configuration for the FSx for ONTAP file system.

*/ inline void SetDiskIopsConfiguration(DiskIopsConfiguration&& value) { m_diskIopsConfigurationHasBeenSet = true; m_diskIopsConfiguration = std::move(value); } /** *

The SSD IOPS configuration for the FSx for ONTAP file system.

*/ inline CreateFileSystemOntapConfiguration& WithDiskIopsConfiguration(const DiskIopsConfiguration& value) { SetDiskIopsConfiguration(value); return *this;} /** *

The SSD IOPS configuration for the FSx for ONTAP file system.

*/ inline CreateFileSystemOntapConfiguration& WithDiskIopsConfiguration(DiskIopsConfiguration&& value) { SetDiskIopsConfiguration(std::move(value)); return *this;} /** *

Required when DeploymentType is set to MULTI_AZ_1. * This specifies the subnet in which you want the preferred file server to be * located.

*/ inline const Aws::String& GetPreferredSubnetId() const{ return m_preferredSubnetId; } /** *

Required when DeploymentType is set to MULTI_AZ_1. * This specifies the subnet in which you want the preferred file server to be * located.

*/ inline bool PreferredSubnetIdHasBeenSet() const { return m_preferredSubnetIdHasBeenSet; } /** *

Required when DeploymentType is set to MULTI_AZ_1. * This specifies the subnet in which you want the preferred file server to be * located.

*/ inline void SetPreferredSubnetId(const Aws::String& value) { m_preferredSubnetIdHasBeenSet = true; m_preferredSubnetId = value; } /** *

Required when DeploymentType is set to MULTI_AZ_1. * This specifies the subnet in which you want the preferred file server to be * located.

*/ inline void SetPreferredSubnetId(Aws::String&& value) { m_preferredSubnetIdHasBeenSet = true; m_preferredSubnetId = std::move(value); } /** *

Required when DeploymentType is set to MULTI_AZ_1. * This specifies the subnet in which you want the preferred file server to be * located.

*/ inline void SetPreferredSubnetId(const char* value) { m_preferredSubnetIdHasBeenSet = true; m_preferredSubnetId.assign(value); } /** *

Required when DeploymentType is set to MULTI_AZ_1. * This specifies the subnet in which you want the preferred file server to be * located.

*/ inline CreateFileSystemOntapConfiguration& WithPreferredSubnetId(const Aws::String& value) { SetPreferredSubnetId(value); return *this;} /** *

Required when DeploymentType is set to MULTI_AZ_1. * This specifies the subnet in which you want the preferred file server to be * located.

*/ inline CreateFileSystemOntapConfiguration& WithPreferredSubnetId(Aws::String&& value) { SetPreferredSubnetId(std::move(value)); return *this;} /** *

Required when DeploymentType is set to MULTI_AZ_1. * This specifies the subnet in which you want the preferred file server to be * located.

*/ inline CreateFileSystemOntapConfiguration& WithPreferredSubnetId(const char* value) { SetPreferredSubnetId(value); return *this;} /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline const Aws::Vector& GetRouteTableIds() const{ return m_routeTableIds; } /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline bool RouteTableIdsHasBeenSet() const { return m_routeTableIdsHasBeenSet; } /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline void SetRouteTableIds(const Aws::Vector& value) { m_routeTableIdsHasBeenSet = true; m_routeTableIds = value; } /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline void SetRouteTableIds(Aws::Vector&& value) { m_routeTableIdsHasBeenSet = true; m_routeTableIds = std::move(value); } /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline CreateFileSystemOntapConfiguration& WithRouteTableIds(const Aws::Vector& value) { SetRouteTableIds(value); return *this;} /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline CreateFileSystemOntapConfiguration& WithRouteTableIds(Aws::Vector&& value) { SetRouteTableIds(std::move(value)); return *this;} /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline CreateFileSystemOntapConfiguration& AddRouteTableIds(const Aws::String& value) { m_routeTableIdsHasBeenSet = true; m_routeTableIds.push_back(value); return *this; } /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline CreateFileSystemOntapConfiguration& AddRouteTableIds(Aws::String&& value) { m_routeTableIdsHasBeenSet = true; m_routeTableIds.push_back(std::move(value)); return *this; } /** *

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in * which your file system's endpoints will be created. You should specify all VPC * route tables associated with the subnets in which your clients are located. By * default, Amazon FSx selects your VPC's default route table.

*/ inline CreateFileSystemOntapConfiguration& AddRouteTableIds(const char* value) { m_routeTableIdsHasBeenSet = true; m_routeTableIds.push_back(value); return *this; } /** *

Sets the throughput capacity for the file system that you're creating. Valid * values are 128, 256, 512, 1024, 2048, and 4096 MBps.

*/ inline int GetThroughputCapacity() const{ return m_throughputCapacity; } /** *

Sets the throughput capacity for the file system that you're creating. Valid * values are 128, 256, 512, 1024, 2048, and 4096 MBps.

*/ inline bool ThroughputCapacityHasBeenSet() const { return m_throughputCapacityHasBeenSet; } /** *

Sets the throughput capacity for the file system that you're creating. Valid * values are 128, 256, 512, 1024, 2048, and 4096 MBps.

*/ inline void SetThroughputCapacity(int value) { m_throughputCapacityHasBeenSet = true; m_throughputCapacity = value; } /** *

Sets the throughput capacity for the file system that you're creating. Valid * values are 128, 256, 512, 1024, 2048, and 4096 MBps.

*/ inline CreateFileSystemOntapConfiguration& WithThroughputCapacity(int value) { SetThroughputCapacity(value); return *this;} inline const Aws::String& GetWeeklyMaintenanceStartTime() const{ return m_weeklyMaintenanceStartTime; } inline bool WeeklyMaintenanceStartTimeHasBeenSet() const { return m_weeklyMaintenanceStartTimeHasBeenSet; } inline void SetWeeklyMaintenanceStartTime(const Aws::String& value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime = value; } inline void SetWeeklyMaintenanceStartTime(Aws::String&& value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime = std::move(value); } inline void SetWeeklyMaintenanceStartTime(const char* value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime.assign(value); } inline CreateFileSystemOntapConfiguration& WithWeeklyMaintenanceStartTime(const Aws::String& value) { SetWeeklyMaintenanceStartTime(value); return *this;} inline CreateFileSystemOntapConfiguration& WithWeeklyMaintenanceStartTime(Aws::String&& value) { SetWeeklyMaintenanceStartTime(std::move(value)); return *this;} inline CreateFileSystemOntapConfiguration& WithWeeklyMaintenanceStartTime(const char* value) { SetWeeklyMaintenanceStartTime(value); return *this;} private: int m_automaticBackupRetentionDays; bool m_automaticBackupRetentionDaysHasBeenSet = false; Aws::String m_dailyAutomaticBackupStartTime; bool m_dailyAutomaticBackupStartTimeHasBeenSet = false; OntapDeploymentType m_deploymentType; bool m_deploymentTypeHasBeenSet = false; Aws::String m_endpointIpAddressRange; bool m_endpointIpAddressRangeHasBeenSet = false; Aws::String m_fsxAdminPassword; bool m_fsxAdminPasswordHasBeenSet = false; DiskIopsConfiguration m_diskIopsConfiguration; bool m_diskIopsConfigurationHasBeenSet = false; Aws::String m_preferredSubnetId; bool m_preferredSubnetIdHasBeenSet = false; Aws::Vector m_routeTableIds; bool m_routeTableIdsHasBeenSet = false; int m_throughputCapacity; bool m_throughputCapacityHasBeenSet = false; Aws::String m_weeklyMaintenanceStartTime; bool m_weeklyMaintenanceStartTimeHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws