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

Configuration for the FSx for NetApp ONTAP file system.

See * Also:

AWS * API Reference

*/ class OntapFileSystemConfiguration { public: AWS_FSX_API OntapFileSystemConfiguration(); AWS_FSX_API OntapFileSystemConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API OntapFileSystemConfiguration& 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 OntapFileSystemConfiguration& 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 OntapFileSystemConfiguration& WithDailyAutomaticBackupStartTime(const Aws::String& value) { SetDailyAutomaticBackupStartTime(value); return *this;} inline OntapFileSystemConfiguration& WithDailyAutomaticBackupStartTime(Aws::String&& value) { SetDailyAutomaticBackupStartTime(std::move(value)); return *this;} inline OntapFileSystemConfiguration& WithDailyAutomaticBackupStartTime(const char* value) { SetDailyAutomaticBackupStartTime(value); return *this;} /** *

Specifies the FSx for ONTAP file system deployment type in use in 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 * Multi-AZ or Single-AZ file system deployment.

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

Specifies the FSx for ONTAP file system deployment type in use in 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 * Multi-AZ or Single-AZ file system deployment.

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

Specifies the FSx for ONTAP file system deployment type in use in 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 * Multi-AZ or Single-AZ file system deployment.

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

Specifies the FSx for ONTAP file system deployment type in use in 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 * Multi-AZ or Single-AZ file system deployment.

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

Specifies the FSx for ONTAP file system deployment type in use in 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 * Multi-AZ or Single-AZ file system deployment.

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

Specifies the FSx for ONTAP file system deployment type in use in 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 * Multi-AZ or Single-AZ file system deployment.

*/ inline OntapFileSystemConfiguration& 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ inline OntapFileSystemConfiguration& 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.

*/ inline OntapFileSystemConfiguration& 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.

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

The Management and Intercluster endpoints that are * used to access data or to manage the file system using the NetApp ONTAP CLI, * REST API, or NetApp SnapMirror.

*/ inline const FileSystemEndpoints& GetEndpoints() const{ return m_endpoints; } /** *

The Management and Intercluster endpoints that are * used to access data or to manage the file system using the NetApp ONTAP CLI, * REST API, or NetApp SnapMirror.

*/ inline bool EndpointsHasBeenSet() const { return m_endpointsHasBeenSet; } /** *

The Management and Intercluster endpoints that are * used to access data or to manage the file system using the NetApp ONTAP CLI, * REST API, or NetApp SnapMirror.

*/ inline void SetEndpoints(const FileSystemEndpoints& value) { m_endpointsHasBeenSet = true; m_endpoints = value; } /** *

The Management and Intercluster endpoints that are * used to access data or to manage the file system using the NetApp ONTAP CLI, * REST API, or NetApp SnapMirror.

*/ inline void SetEndpoints(FileSystemEndpoints&& value) { m_endpointsHasBeenSet = true; m_endpoints = std::move(value); } /** *

The Management and Intercluster endpoints that are * used to access data or to manage the file system using the NetApp ONTAP CLI, * REST API, or NetApp SnapMirror.

*/ inline OntapFileSystemConfiguration& WithEndpoints(const FileSystemEndpoints& value) { SetEndpoints(value); return *this;} /** *

The Management and Intercluster endpoints that are * used to access data or to manage the file system using the NetApp ONTAP CLI, * REST API, or NetApp SnapMirror.

*/ inline OntapFileSystemConfiguration& WithEndpoints(FileSystemEndpoints&& value) { SetEndpoints(std::move(value)); return *this;} /** *

The SSD IOPS configuration for the ONTAP file system, specifying the number * of provisioned IOPS and the provision mode.

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

The SSD IOPS configuration for the ONTAP file system, specifying the number * of provisioned IOPS and the provision mode.

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

The SSD IOPS configuration for the ONTAP file system, specifying the number * of provisioned IOPS and the provision mode.

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

The SSD IOPS configuration for the ONTAP file system, specifying the number * of provisioned IOPS and the provision mode.

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

The SSD IOPS configuration for the ONTAP file system, specifying the number * of provisioned IOPS and the provision mode.

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

The SSD IOPS configuration for the ONTAP file system, specifying the number * of provisioned IOPS and the provision mode.

*/ inline OntapFileSystemConfiguration& WithDiskIopsConfiguration(DiskIopsConfiguration&& value) { SetDiskIopsConfiguration(std::move(value)); return *this;} inline const Aws::String& GetPreferredSubnetId() const{ return m_preferredSubnetId; } inline bool PreferredSubnetIdHasBeenSet() const { return m_preferredSubnetIdHasBeenSet; } inline void SetPreferredSubnetId(const Aws::String& value) { m_preferredSubnetIdHasBeenSet = true; m_preferredSubnetId = value; } inline void SetPreferredSubnetId(Aws::String&& value) { m_preferredSubnetIdHasBeenSet = true; m_preferredSubnetId = std::move(value); } inline void SetPreferredSubnetId(const char* value) { m_preferredSubnetIdHasBeenSet = true; m_preferredSubnetId.assign(value); } inline OntapFileSystemConfiguration& WithPreferredSubnetId(const Aws::String& value) { SetPreferredSubnetId(value); return *this;} inline OntapFileSystemConfiguration& WithPreferredSubnetId(Aws::String&& value) { SetPreferredSubnetId(std::move(value)); return *this;} inline OntapFileSystemConfiguration& WithPreferredSubnetId(const char* value) { SetPreferredSubnetId(value); return *this;} /** *

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

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

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

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

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

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

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

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

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

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

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

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

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

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

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

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

(Multi-AZ only) The VPC route tables in which your file system's endpoints * are created.

*/ inline OntapFileSystemConfiguration& AddRouteTableIds(const char* value) { m_routeTableIdsHasBeenSet = true; m_routeTableIds.push_back(value); return *this; } inline int GetThroughputCapacity() const{ return m_throughputCapacity; } inline bool ThroughputCapacityHasBeenSet() const { return m_throughputCapacityHasBeenSet; } inline void SetThroughputCapacity(int value) { m_throughputCapacityHasBeenSet = true; m_throughputCapacity = value; } inline OntapFileSystemConfiguration& 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 OntapFileSystemConfiguration& WithWeeklyMaintenanceStartTime(const Aws::String& value) { SetWeeklyMaintenanceStartTime(value); return *this;} inline OntapFileSystemConfiguration& WithWeeklyMaintenanceStartTime(Aws::String&& value) { SetWeeklyMaintenanceStartTime(std::move(value)); return *this;} inline OntapFileSystemConfiguration& WithWeeklyMaintenanceStartTime(const char* value) { SetWeeklyMaintenanceStartTime(value); return *this;} /** *

You can use the fsxadmin user account to access the NetApp ONTAP * CLI and REST API. The password value is always redacted in the response.

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

You can use the fsxadmin user account to access the NetApp ONTAP * CLI and REST API. The password value is always redacted in the response.

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

You can use the fsxadmin user account to access the NetApp ONTAP * CLI and REST API. The password value is always redacted in the response.

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

You can use the fsxadmin user account to access the NetApp ONTAP * CLI and REST API. The password value is always redacted in the response.

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

You can use the fsxadmin user account to access the NetApp ONTAP * CLI and REST API. The password value is always redacted in the response.

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

You can use the fsxadmin user account to access the NetApp ONTAP * CLI and REST API. The password value is always redacted in the response.

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

You can use the fsxadmin user account to access the NetApp ONTAP * CLI and REST API. The password value is always redacted in the response.

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

You can use the fsxadmin user account to access the NetApp ONTAP * CLI and REST API. The password value is always redacted in the response.

*/ inline OntapFileSystemConfiguration& WithFsxAdminPassword(const char* value) { SetFsxAdminPassword(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; FileSystemEndpoints m_endpoints; bool m_endpointsHasBeenSet = 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; Aws::String m_fsxAdminPassword; bool m_fsxAdminPasswordHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws