/** * 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 configuration for the Amazon FSx for Lustre file system.

See * Also:

AWS * API Reference

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

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

*/ inline LustreFileSystemConfiguration& 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. d is the weekday number, from 1 through 7, beginning with * Monday and ending with Sunday.

*/ inline LustreFileSystemConfiguration& 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. d is the weekday number, from 1 through 7, beginning with * Monday and ending with Sunday.

*/ inline LustreFileSystemConfiguration& WithWeeklyMaintenanceStartTime(const char* value) { SetWeeklyMaintenanceStartTime(value); return *this;} inline const DataRepositoryConfiguration& GetDataRepositoryConfiguration() const{ return m_dataRepositoryConfiguration; } inline bool DataRepositoryConfigurationHasBeenSet() const { return m_dataRepositoryConfigurationHasBeenSet; } inline void SetDataRepositoryConfiguration(const DataRepositoryConfiguration& value) { m_dataRepositoryConfigurationHasBeenSet = true; m_dataRepositoryConfiguration = value; } inline void SetDataRepositoryConfiguration(DataRepositoryConfiguration&& value) { m_dataRepositoryConfigurationHasBeenSet = true; m_dataRepositoryConfiguration = std::move(value); } inline LustreFileSystemConfiguration& WithDataRepositoryConfiguration(const DataRepositoryConfiguration& value) { SetDataRepositoryConfiguration(value); return *this;} inline LustreFileSystemConfiguration& WithDataRepositoryConfiguration(DataRepositoryConfiguration&& value) { SetDataRepositoryConfiguration(std::move(value)); return *this;} /** *

The deployment type of the FSX for Lustre file system. Scratch deployment * type is designed for temporary storage and shorter-term processing of * data.

SCRATCH_1 and SCRATCH_2 deployment types * are best suited for when you need temporary storage and shorter-term processing * of data. The SCRATCH_2 deployment type provides in-transit * encryption of data and higher burst throughput capacity than * SCRATCH_1.

The PERSISTENT_1 deployment type is * used for longer-term storage and workloads and encryption of data in transit. To * learn more about deployment types, see * FSx for Lustre Deployment Options. (Default = SCRATCH_1)

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

The deployment type of the FSX for Lustre file system. Scratch deployment * type is designed for temporary storage and shorter-term processing of * data.

SCRATCH_1 and SCRATCH_2 deployment types * are best suited for when you need temporary storage and shorter-term processing * of data. The SCRATCH_2 deployment type provides in-transit * encryption of data and higher burst throughput capacity than * SCRATCH_1.

The PERSISTENT_1 deployment type is * used for longer-term storage and workloads and encryption of data in transit. To * learn more about deployment types, see * FSx for Lustre Deployment Options. (Default = SCRATCH_1)

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

The deployment type of the FSX for Lustre file system. Scratch deployment * type is designed for temporary storage and shorter-term processing of * data.

SCRATCH_1 and SCRATCH_2 deployment types * are best suited for when you need temporary storage and shorter-term processing * of data. The SCRATCH_2 deployment type provides in-transit * encryption of data and higher burst throughput capacity than * SCRATCH_1.

The PERSISTENT_1 deployment type is * used for longer-term storage and workloads and encryption of data in transit. To * learn more about deployment types, see * FSx for Lustre Deployment Options. (Default = SCRATCH_1)

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

The deployment type of the FSX for Lustre file system. Scratch deployment * type is designed for temporary storage and shorter-term processing of * data.

SCRATCH_1 and SCRATCH_2 deployment types * are best suited for when you need temporary storage and shorter-term processing * of data. The SCRATCH_2 deployment type provides in-transit * encryption of data and higher burst throughput capacity than * SCRATCH_1.

The PERSISTENT_1 deployment type is * used for longer-term storage and workloads and encryption of data in transit. To * learn more about deployment types, see * FSx for Lustre Deployment Options. (Default = SCRATCH_1)

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

The deployment type of the FSX for Lustre file system. Scratch deployment * type is designed for temporary storage and shorter-term processing of * data.

SCRATCH_1 and SCRATCH_2 deployment types * are best suited for when you need temporary storage and shorter-term processing * of data. The SCRATCH_2 deployment type provides in-transit * encryption of data and higher burst throughput capacity than * SCRATCH_1.

The PERSISTENT_1 deployment type is * used for longer-term storage and workloads and encryption of data in transit. To * learn more about deployment types, see * FSx for Lustre Deployment Options. (Default = SCRATCH_1)

*/ inline LustreFileSystemConfiguration& WithDeploymentType(const LustreDeploymentType& value) { SetDeploymentType(value); return *this;} /** *

The deployment type of the FSX for Lustre file system. Scratch deployment * type is designed for temporary storage and shorter-term processing of * data.

SCRATCH_1 and SCRATCH_2 deployment types * are best suited for when you need temporary storage and shorter-term processing * of data. The SCRATCH_2 deployment type provides in-transit * encryption of data and higher burst throughput capacity than * SCRATCH_1.

The PERSISTENT_1 deployment type is * used for longer-term storage and workloads and encryption of data in transit. To * learn more about deployment types, see * FSx for Lustre Deployment Options. (Default = SCRATCH_1)

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

Per unit storage throughput represents the megabytes per second of read or * write throughput per 1 tebibyte of storage provisioned. File system throughput * capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput * (MB/s/TiB). This option is only valid for PERSISTENT_1 deployment * types.

Valid values for SSD storage: 50, 100, 200. Valid values for HDD * storage: 12, 40.

*/ inline int GetPerUnitStorageThroughput() const{ return m_perUnitStorageThroughput; } /** *

Per unit storage throughput represents the megabytes per second of read or * write throughput per 1 tebibyte of storage provisioned. File system throughput * capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput * (MB/s/TiB). This option is only valid for PERSISTENT_1 deployment * types.

Valid values for SSD storage: 50, 100, 200. Valid values for HDD * storage: 12, 40.

*/ inline bool PerUnitStorageThroughputHasBeenSet() const { return m_perUnitStorageThroughputHasBeenSet; } /** *

Per unit storage throughput represents the megabytes per second of read or * write throughput per 1 tebibyte of storage provisioned. File system throughput * capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput * (MB/s/TiB). This option is only valid for PERSISTENT_1 deployment * types.

Valid values for SSD storage: 50, 100, 200. Valid values for HDD * storage: 12, 40.

*/ inline void SetPerUnitStorageThroughput(int value) { m_perUnitStorageThroughputHasBeenSet = true; m_perUnitStorageThroughput = value; } /** *

Per unit storage throughput represents the megabytes per second of read or * write throughput per 1 tebibyte of storage provisioned. File system throughput * capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput * (MB/s/TiB). This option is only valid for PERSISTENT_1 deployment * types.

Valid values for SSD storage: 50, 100, 200. Valid values for HDD * storage: 12, 40.

*/ inline LustreFileSystemConfiguration& WithPerUnitStorageThroughput(int value) { SetPerUnitStorageThroughput(value); return *this;} /** *

You use the MountName value when mounting the file system.

*

For the SCRATCH_1 deployment type, this value is always * "fsx". For SCRATCH_2 and PERSISTENT_1 * deployment types, this value is a string that is unique within an AWS Region. *

*/ inline const Aws::String& GetMountName() const{ return m_mountName; } /** *

You use the MountName value when mounting the file system.

*

For the SCRATCH_1 deployment type, this value is always * "fsx". For SCRATCH_2 and PERSISTENT_1 * deployment types, this value is a string that is unique within an AWS Region. *

*/ inline bool MountNameHasBeenSet() const { return m_mountNameHasBeenSet; } /** *

You use the MountName value when mounting the file system.

*

For the SCRATCH_1 deployment type, this value is always * "fsx". For SCRATCH_2 and PERSISTENT_1 * deployment types, this value is a string that is unique within an AWS Region. *

*/ inline void SetMountName(const Aws::String& value) { m_mountNameHasBeenSet = true; m_mountName = value; } /** *

You use the MountName value when mounting the file system.

*

For the SCRATCH_1 deployment type, this value is always * "fsx". For SCRATCH_2 and PERSISTENT_1 * deployment types, this value is a string that is unique within an AWS Region. *

*/ inline void SetMountName(Aws::String&& value) { m_mountNameHasBeenSet = true; m_mountName = std::move(value); } /** *

You use the MountName value when mounting the file system.

*

For the SCRATCH_1 deployment type, this value is always * "fsx". For SCRATCH_2 and PERSISTENT_1 * deployment types, this value is a string that is unique within an AWS Region. *

*/ inline void SetMountName(const char* value) { m_mountNameHasBeenSet = true; m_mountName.assign(value); } /** *

You use the MountName value when mounting the file system.

*

For the SCRATCH_1 deployment type, this value is always * "fsx". For SCRATCH_2 and PERSISTENT_1 * deployment types, this value is a string that is unique within an AWS Region. *

*/ inline LustreFileSystemConfiguration& WithMountName(const Aws::String& value) { SetMountName(value); return *this;} /** *

You use the MountName value when mounting the file system.

*

For the SCRATCH_1 deployment type, this value is always * "fsx". For SCRATCH_2 and PERSISTENT_1 * deployment types, this value is a string that is unique within an AWS Region. *

*/ inline LustreFileSystemConfiguration& WithMountName(Aws::String&& value) { SetMountName(std::move(value)); return *this;} /** *

You use the MountName value when mounting the file system.

*

For the SCRATCH_1 deployment type, this value is always * "fsx". For SCRATCH_2 and PERSISTENT_1 * deployment types, this value is a string that is unique within an AWS Region. *

*/ inline LustreFileSystemConfiguration& WithMountName(const char* value) { SetMountName(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 LustreFileSystemConfiguration& WithDailyAutomaticBackupStartTime(const Aws::String& value) { SetDailyAutomaticBackupStartTime(value); return *this;} inline LustreFileSystemConfiguration& WithDailyAutomaticBackupStartTime(Aws::String&& value) { SetDailyAutomaticBackupStartTime(std::move(value)); return *this;} inline LustreFileSystemConfiguration& WithDailyAutomaticBackupStartTime(const char* value) { SetDailyAutomaticBackupStartTime(value); return *this;} 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 LustreFileSystemConfiguration& WithAutomaticBackupRetentionDays(int value) { SetAutomaticBackupRetentionDays(value); return *this;} /** *

A boolean flag indicating whether tags on the file system should be copied to * backups. If it's set to true, all tags on the file system are copied to all * automatic backups and any user-initiated backups where the user doesn't specify * any 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. (Default = false)

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

A boolean flag indicating whether tags on the file system should be copied to * backups. If it's set to true, all tags on the file system are copied to all * automatic backups and any user-initiated backups where the user doesn't specify * any 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. (Default = false)

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

A boolean flag indicating whether tags on the file system should be copied to * backups. If it's set to true, all tags on the file system are copied to all * automatic backups and any user-initiated backups where the user doesn't specify * any 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. (Default = false)

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

A boolean flag indicating whether tags on the file system should be copied to * backups. If it's set to true, all tags on the file system are copied to all * automatic backups and any user-initiated backups where the user doesn't specify * any 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. (Default = false)

*/ inline LustreFileSystemConfiguration& WithCopyTagsToBackups(bool value) { SetCopyTagsToBackups(value); return *this;} /** *

The type of drive cache used by PERSISTENT_1 file systems that are * provisioned with HDD storage devices. This parameter is required when storage * type is HDD. Set to READ, improve the performance for frequently * accessed files and allows 20% of the total storage capacity of the file system * to be cached.

This parameter is required when StorageType * is set to HDD.

*/ inline const DriveCacheType& GetDriveCacheType() const{ return m_driveCacheType; } /** *

The type of drive cache used by PERSISTENT_1 file systems that are * provisioned with HDD storage devices. This parameter is required when storage * type is HDD. Set to READ, improve the performance for frequently * accessed files and allows 20% of the total storage capacity of the file system * to be cached.

This parameter is required when StorageType * is set to HDD.

*/ inline bool DriveCacheTypeHasBeenSet() const { return m_driveCacheTypeHasBeenSet; } /** *

The type of drive cache used by PERSISTENT_1 file systems that are * provisioned with HDD storage devices. This parameter is required when storage * type is HDD. Set to READ, improve the performance for frequently * accessed files and allows 20% of the total storage capacity of the file system * to be cached.

This parameter is required when StorageType * is set to HDD.

*/ inline void SetDriveCacheType(const DriveCacheType& value) { m_driveCacheTypeHasBeenSet = true; m_driveCacheType = value; } /** *

The type of drive cache used by PERSISTENT_1 file systems that are * provisioned with HDD storage devices. This parameter is required when storage * type is HDD. Set to READ, improve the performance for frequently * accessed files and allows 20% of the total storage capacity of the file system * to be cached.

This parameter is required when StorageType * is set to HDD.

*/ inline void SetDriveCacheType(DriveCacheType&& value) { m_driveCacheTypeHasBeenSet = true; m_driveCacheType = std::move(value); } /** *

The type of drive cache used by PERSISTENT_1 file systems that are * provisioned with HDD storage devices. This parameter is required when storage * type is HDD. Set to READ, improve the performance for frequently * accessed files and allows 20% of the total storage capacity of the file system * to be cached.

This parameter is required when StorageType * is set to HDD.

*/ inline LustreFileSystemConfiguration& WithDriveCacheType(const DriveCacheType& value) { SetDriveCacheType(value); return *this;} /** *

The type of drive cache used by PERSISTENT_1 file systems that are * provisioned with HDD storage devices. This parameter is required when storage * type is HDD. Set to READ, improve the performance for frequently * accessed files and allows 20% of the total storage capacity of the file system * to be cached.

This parameter is required when StorageType * is set to HDD.

*/ inline LustreFileSystemConfiguration& WithDriveCacheType(DriveCacheType&& value) { SetDriveCacheType(std::move(value)); return *this;} private: Aws::String m_weeklyMaintenanceStartTime; bool m_weeklyMaintenanceStartTimeHasBeenSet; DataRepositoryConfiguration m_dataRepositoryConfiguration; bool m_dataRepositoryConfigurationHasBeenSet; LustreDeploymentType m_deploymentType; bool m_deploymentTypeHasBeenSet; int m_perUnitStorageThroughput; bool m_perUnitStorageThroughputHasBeenSet; Aws::String m_mountName; bool m_mountNameHasBeenSet; Aws::String m_dailyAutomaticBackupStartTime; bool m_dailyAutomaticBackupStartTimeHasBeenSet; int m_automaticBackupRetentionDays; bool m_automaticBackupRetentionDaysHasBeenSet; bool m_copyTagsToBackups; bool m_copyTagsToBackupsHasBeenSet; DriveCacheType m_driveCacheType; bool m_driveCacheTypeHasBeenSet; }; } // namespace Model } // namespace FSx } // namespace Aws