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

The configuration object for the Microsoft Windows file system used in * CreateFileSystem and CreateFileSystemFromBackup * operations.

See Also:

AWS * API Reference

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

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance * that the file system should join when it's created.

*/ inline const Aws::String& GetActiveDirectoryId() const{ return m_activeDirectoryId; } /** *

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance * that the file system should join when it's created.

*/ inline bool ActiveDirectoryIdHasBeenSet() const { return m_activeDirectoryIdHasBeenSet; } /** *

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance * that the file system should join when it's created.

*/ inline void SetActiveDirectoryId(const Aws::String& value) { m_activeDirectoryIdHasBeenSet = true; m_activeDirectoryId = value; } /** *

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance * that the file system should join when it's created.

*/ inline void SetActiveDirectoryId(Aws::String&& value) { m_activeDirectoryIdHasBeenSet = true; m_activeDirectoryId = std::move(value); } /** *

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance * that the file system should join when it's created.

*/ inline void SetActiveDirectoryId(const char* value) { m_activeDirectoryIdHasBeenSet = true; m_activeDirectoryId.assign(value); } /** *

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance * that the file system should join when it's created.

*/ inline CreateFileSystemWindowsConfiguration& WithActiveDirectoryId(const Aws::String& value) { SetActiveDirectoryId(value); return *this;} /** *

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance * that the file system should join when it's created.

*/ inline CreateFileSystemWindowsConfiguration& WithActiveDirectoryId(Aws::String&& value) { SetActiveDirectoryId(std::move(value)); return *this;} /** *

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance * that the file system should join when it's created.

*/ inline CreateFileSystemWindowsConfiguration& WithActiveDirectoryId(const char* value) { SetActiveDirectoryId(value); return *this;} inline const SelfManagedActiveDirectoryConfiguration& GetSelfManagedActiveDirectoryConfiguration() const{ return m_selfManagedActiveDirectoryConfiguration; } inline bool SelfManagedActiveDirectoryConfigurationHasBeenSet() const { return m_selfManagedActiveDirectoryConfigurationHasBeenSet; } inline void SetSelfManagedActiveDirectoryConfiguration(const SelfManagedActiveDirectoryConfiguration& value) { m_selfManagedActiveDirectoryConfigurationHasBeenSet = true; m_selfManagedActiveDirectoryConfiguration = value; } inline void SetSelfManagedActiveDirectoryConfiguration(SelfManagedActiveDirectoryConfiguration&& value) { m_selfManagedActiveDirectoryConfigurationHasBeenSet = true; m_selfManagedActiveDirectoryConfiguration = std::move(value); } inline CreateFileSystemWindowsConfiguration& WithSelfManagedActiveDirectoryConfiguration(const SelfManagedActiveDirectoryConfiguration& value) { SetSelfManagedActiveDirectoryConfiguration(value); return *this;} inline CreateFileSystemWindowsConfiguration& WithSelfManagedActiveDirectoryConfiguration(SelfManagedActiveDirectoryConfiguration&& value) { SetSelfManagedActiveDirectoryConfiguration(std::move(value)); return *this;} /** *

Specifies the file system deployment type, valid values are the * following:

  • MULTI_AZ_1 - Deploys a high * availability file system that is configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability. You can only deploy a Multi-AZ * file system in AWS Regions that have a minimum of three Availability Zones. Also * supports HDD storage type

  • SINGLE_AZ_1 - * (Default) Choose to deploy a file system that is configured for single AZ * redundancy.

  • SINGLE_AZ_2 - The latest generation * Single AZ file system. Specifies a file system that is configured for single AZ * redundancy and supports HDD storage type.

For more * information, see * Availability and Durability: Single-AZ and Multi-AZ File Systems.

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

Specifies the file system deployment type, valid values are the * following:

  • MULTI_AZ_1 - Deploys a high * availability file system that is configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability. You can only deploy a Multi-AZ * file system in AWS Regions that have a minimum of three Availability Zones. Also * supports HDD storage type

  • SINGLE_AZ_1 - * (Default) Choose to deploy a file system that is configured for single AZ * redundancy.

  • SINGLE_AZ_2 - The latest generation * Single AZ file system. Specifies a file system that is configured for single AZ * redundancy and supports HDD storage type.

For more * information, see * Availability and Durability: Single-AZ and Multi-AZ File Systems.

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

Specifies the file system deployment type, valid values are the * following:

  • MULTI_AZ_1 - Deploys a high * availability file system that is configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability. You can only deploy a Multi-AZ * file system in AWS Regions that have a minimum of three Availability Zones. Also * supports HDD storage type

  • SINGLE_AZ_1 - * (Default) Choose to deploy a file system that is configured for single AZ * redundancy.

  • SINGLE_AZ_2 - The latest generation * Single AZ file system. Specifies a file system that is configured for single AZ * redundancy and supports HDD storage type.

For more * information, see * Availability and Durability: Single-AZ and Multi-AZ File Systems.

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

Specifies the file system deployment type, valid values are the * following:

  • MULTI_AZ_1 - Deploys a high * availability file system that is configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability. You can only deploy a Multi-AZ * file system in AWS Regions that have a minimum of three Availability Zones. Also * supports HDD storage type

  • SINGLE_AZ_1 - * (Default) Choose to deploy a file system that is configured for single AZ * redundancy.

  • SINGLE_AZ_2 - The latest generation * Single AZ file system. Specifies a file system that is configured for single AZ * redundancy and supports HDD storage type.

For more * information, see * Availability and Durability: Single-AZ and Multi-AZ File Systems.

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

Specifies the file system deployment type, valid values are the * following:

  • MULTI_AZ_1 - Deploys a high * availability file system that is configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability. You can only deploy a Multi-AZ * file system in AWS Regions that have a minimum of three Availability Zones. Also * supports HDD storage type

  • SINGLE_AZ_1 - * (Default) Choose to deploy a file system that is configured for single AZ * redundancy.

  • SINGLE_AZ_2 - The latest generation * Single AZ file system. Specifies a file system that is configured for single AZ * redundancy and supports HDD storage type.

For more * information, see * Availability and Durability: Single-AZ and Multi-AZ File Systems.

*/ inline CreateFileSystemWindowsConfiguration& WithDeploymentType(const WindowsDeploymentType& value) { SetDeploymentType(value); return *this;} /** *

Specifies the file system deployment type, valid values are the * following:

  • MULTI_AZ_1 - Deploys a high * availability file system that is configured for Multi-AZ redundancy to tolerate * temporary Availability Zone (AZ) unavailability. You can only deploy a Multi-AZ * file system in AWS Regions that have a minimum of three Availability Zones. Also * supports HDD storage type

  • SINGLE_AZ_1 - * (Default) Choose to deploy a file system that is configured for single AZ * redundancy.

  • SINGLE_AZ_2 - The latest generation * Single AZ file system. Specifies a file system that is configured for single AZ * redundancy and supports HDD storage type.

For more * information, see * Availability and Durability: Single-AZ and Multi-AZ File Systems.

*/ inline CreateFileSystemWindowsConfiguration& WithDeploymentType(WindowsDeploymentType&& value) { SetDeploymentType(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. For in-AWS applications, we recommend that you launch your clients in * the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ * data transfer costs and minimize latency.

*/ 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. For in-AWS applications, we recommend that you launch your clients in * the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ * data transfer costs and minimize latency.

*/ 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. For in-AWS applications, we recommend that you launch your clients in * the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ * data transfer costs and minimize latency.

*/ 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. For in-AWS applications, we recommend that you launch your clients in * the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ * data transfer costs and minimize latency.

*/ 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. For in-AWS applications, we recommend that you launch your clients in * the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ * data transfer costs and minimize latency.

*/ 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. For in-AWS applications, we recommend that you launch your clients in * the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ * data transfer costs and minimize latency.

*/ inline CreateFileSystemWindowsConfiguration& 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. For in-AWS applications, we recommend that you launch your clients in * the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ * data transfer costs and minimize latency.

*/ inline CreateFileSystemWindowsConfiguration& 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. For in-AWS applications, we recommend that you launch your clients in * the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ * data transfer costs and minimize latency.

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

The throughput of an Amazon FSx file system, measured in megabytes per * second, in 2 to the nth increments, between 2^3 (8) and 2^11 (2048).

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

The throughput of an Amazon FSx file system, measured in megabytes per * second, in 2 to the nth increments, between 2^3 (8) and 2^11 (2048).

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

The throughput of an Amazon FSx file system, measured in megabytes per * second, in 2 to the nth increments, between 2^3 (8) and 2^11 (2048).

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

The throughput of an Amazon FSx file system, measured in megabytes per * second, in 2 to the nth increments, between 2^3 (8) and 2^11 (2048).

*/ inline CreateFileSystemWindowsConfiguration& WithThroughputCapacity(int value) { SetThroughputCapacity(value); return *this;} /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone, where d is the weekday number, from 1 through 7, beginning * with Monday and ending with Sunday.

*/ inline const Aws::String& GetWeeklyMaintenanceStartTime() const{ return m_weeklyMaintenanceStartTime; } /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone, where d is the weekday number, from 1 through 7, beginning * with Monday and ending with Sunday.

*/ inline bool WeeklyMaintenanceStartTimeHasBeenSet() const { return m_weeklyMaintenanceStartTimeHasBeenSet; } /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone, where d is the weekday number, from 1 through 7, beginning * with Monday and ending with Sunday.

*/ inline void SetWeeklyMaintenanceStartTime(const Aws::String& value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime = value; } /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone, where d is the weekday number, from 1 through 7, beginning * with Monday and ending with Sunday.

*/ inline void SetWeeklyMaintenanceStartTime(Aws::String&& value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime = std::move(value); } /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone, where d is the weekday number, from 1 through 7, beginning * with Monday and ending with Sunday.

*/ inline void SetWeeklyMaintenanceStartTime(const char* value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime.assign(value); } /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone, where d is the weekday number, from 1 through 7, beginning * with Monday and ending with Sunday.

*/ inline CreateFileSystemWindowsConfiguration& WithWeeklyMaintenanceStartTime(const Aws::String& value) { SetWeeklyMaintenanceStartTime(value); return *this;} /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone, where d is the weekday number, from 1 through 7, beginning * with Monday and ending with Sunday.

*/ inline CreateFileSystemWindowsConfiguration& WithWeeklyMaintenanceStartTime(Aws::String&& value) { SetWeeklyMaintenanceStartTime(std::move(value)); return *this;} /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone, where d is the weekday number, from 1 through 7, beginning * with Monday and ending with Sunday.

*/ inline CreateFileSystemWindowsConfiguration& WithWeeklyMaintenanceStartTime(const char* value) { SetWeeklyMaintenanceStartTime(value); return *this;} /** *

The preferred time to take daily automatic backups, formatted HH:MM in the * UTC time zone.

*/ inline const Aws::String& GetDailyAutomaticBackupStartTime() const{ return m_dailyAutomaticBackupStartTime; } /** *

The preferred time to take daily automatic backups, formatted HH:MM in the * UTC time zone.

*/ inline bool DailyAutomaticBackupStartTimeHasBeenSet() const { return m_dailyAutomaticBackupStartTimeHasBeenSet; } /** *

The preferred time to take daily automatic backups, formatted HH:MM in the * UTC time zone.

*/ inline void SetDailyAutomaticBackupStartTime(const Aws::String& value) { m_dailyAutomaticBackupStartTimeHasBeenSet = true; m_dailyAutomaticBackupStartTime = value; } /** *

The preferred time to take daily automatic backups, formatted HH:MM in the * UTC time zone.

*/ inline void SetDailyAutomaticBackupStartTime(Aws::String&& value) { m_dailyAutomaticBackupStartTimeHasBeenSet = true; m_dailyAutomaticBackupStartTime = std::move(value); } /** *

The preferred time to take daily automatic backups, formatted HH:MM in the * UTC time zone.

*/ inline void SetDailyAutomaticBackupStartTime(const char* value) { m_dailyAutomaticBackupStartTimeHasBeenSet = true; m_dailyAutomaticBackupStartTime.assign(value); } /** *

The preferred time to take daily automatic backups, formatted HH:MM in the * UTC time zone.

*/ inline CreateFileSystemWindowsConfiguration& WithDailyAutomaticBackupStartTime(const Aws::String& value) { SetDailyAutomaticBackupStartTime(value); return *this;} /** *

The preferred time to take daily automatic backups, formatted HH:MM in the * UTC time zone.

*/ inline CreateFileSystemWindowsConfiguration& WithDailyAutomaticBackupStartTime(Aws::String&& value) { SetDailyAutomaticBackupStartTime(std::move(value)); return *this;} /** *

The preferred time to take daily automatic backups, formatted HH:MM in the * UTC time zone.

*/ inline CreateFileSystemWindowsConfiguration& WithDailyAutomaticBackupStartTime(const char* value) { SetDailyAutomaticBackupStartTime(value); return *this;} /** *

The number of days to retain automatic backups. The default is to retain * backups for 7 days. Setting this value to 0 disables the creation of automatic * backups. The maximum retention period for backups is 90 days.

*/ inline int GetAutomaticBackupRetentionDays() const{ return m_automaticBackupRetentionDays; } /** *

The number of days to retain automatic backups. The default is to retain * backups for 7 days. Setting this value to 0 disables the creation of automatic * backups. The maximum retention period for backups is 90 days.

*/ inline bool AutomaticBackupRetentionDaysHasBeenSet() const { return m_automaticBackupRetentionDaysHasBeenSet; } /** *

The number of days to retain automatic backups. The default is to retain * backups for 7 days. Setting this value to 0 disables the creation of automatic * backups. The maximum retention period for backups is 90 days.

*/ inline void SetAutomaticBackupRetentionDays(int value) { m_automaticBackupRetentionDaysHasBeenSet = true; m_automaticBackupRetentionDays = value; } /** *

The number of days to retain automatic backups. The default is to retain * backups for 7 days. Setting this value to 0 disables the creation of automatic * backups. The maximum retention period for backups is 90 days.

*/ inline CreateFileSystemWindowsConfiguration& WithAutomaticBackupRetentionDays(int value) { SetAutomaticBackupRetentionDays(value); return *this;} /** *

A boolean flag indicating whether tags for the file system should be copied * to backups. This value defaults to false. If it's set to true, all tags for the * file system are copied to all automatic and user-initiated backups where the * user doesn't specify tags. If this value is true, and you specify one or more * tags, only the specified tags are copied to backups. If you specify one or more * tags when creating a user-initiated backup, no tags are copied from the file * system, regardless of this value.

*/ inline bool GetCopyTagsToBackups() const{ return m_copyTagsToBackups; } /** *

A boolean flag indicating whether tags for the file system should be copied * to backups. This value defaults to false. If it's set to true, all tags for the * file system are copied to all automatic and user-initiated backups where the * user doesn't specify tags. If this value is true, and you specify one or more * tags, only the specified tags are copied to backups. If you specify one or more * tags when creating a user-initiated backup, no tags are copied from the file * system, regardless of this value.

*/ inline bool CopyTagsToBackupsHasBeenSet() const { return m_copyTagsToBackupsHasBeenSet; } /** *

A boolean flag indicating whether tags for the file system should be copied * to backups. This value defaults to false. If it's set to true, all tags for the * file system are copied to all automatic and user-initiated backups where the * user doesn't specify tags. If this value is true, and you specify one or more * tags, only the specified tags are copied to backups. If you specify one or more * tags when creating a user-initiated backup, no tags are copied from the file * system, regardless of this value.

*/ inline void SetCopyTagsToBackups(bool value) { m_copyTagsToBackupsHasBeenSet = true; m_copyTagsToBackups = value; } /** *

A boolean flag indicating whether tags for the file system should be copied * to backups. This value defaults to false. If it's set to true, all tags for the * file system are copied to all automatic and user-initiated backups where the * user doesn't specify tags. If this value is true, and you specify one or more * tags, only the specified tags are copied to backups. If you specify one or more * tags when creating a user-initiated backup, no tags are copied from the file * system, regardless of this value.

*/ inline CreateFileSystemWindowsConfiguration& WithCopyTagsToBackups(bool value) { SetCopyTagsToBackups(value); return *this;} private: Aws::String m_activeDirectoryId; bool m_activeDirectoryIdHasBeenSet; SelfManagedActiveDirectoryConfiguration m_selfManagedActiveDirectoryConfiguration; bool m_selfManagedActiveDirectoryConfigurationHasBeenSet; WindowsDeploymentType m_deploymentType; bool m_deploymentTypeHasBeenSet; Aws::String m_preferredSubnetId; bool m_preferredSubnetIdHasBeenSet; int m_throughputCapacity; bool m_throughputCapacityHasBeenSet; Aws::String m_weeklyMaintenanceStartTime; bool m_weeklyMaintenanceStartTimeHasBeenSet; Aws::String m_dailyAutomaticBackupStartTime; bool m_dailyAutomaticBackupStartTimeHasBeenSet; int m_automaticBackupRetentionDays; bool m_automaticBackupRetentionDaysHasBeenSet; bool m_copyTagsToBackups; bool m_copyTagsToBackupsHasBeenSet; }; } // namespace Model } // namespace FSx } // namespace Aws