/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include 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 LustreFileSystemConfiguration { public: AWS_FSX_API LustreFileSystemConfiguration(); AWS_FSX_API LustreFileSystemConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API LustreFileSystemConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The preferred start time to perform weekly maintenance, formatted d:HH:MM in * the UTC time zone. Here, 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. Here, 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. Here, 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. Here, 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. Here, 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. Here, 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. Here, 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. Here, 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 and * PERSISTENT_2 deployment type is used for longer-term storage and * workloads and encryption of data in transit. PERSISTENT_2 is built * on Lustre v2.12 and offers higher PerUnitStorageThroughput (up to * 1000 MB/s/TiB) along with a lower minimum storage capacity requirement (600 * GiB). To learn more about FSx for Lustre deployment types, see * FSx for Lustre deployment options.

The default is * 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 and * PERSISTENT_2 deployment type is used for longer-term storage and * workloads and encryption of data in transit. PERSISTENT_2 is built * on Lustre v2.12 and offers higher PerUnitStorageThroughput (up to * 1000 MB/s/TiB) along with a lower minimum storage capacity requirement (600 * GiB). To learn more about FSx for Lustre deployment types, see * FSx for Lustre deployment options.

The default is * 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 and * PERSISTENT_2 deployment type is used for longer-term storage and * workloads and encryption of data in transit. PERSISTENT_2 is built * on Lustre v2.12 and offers higher PerUnitStorageThroughput (up to * 1000 MB/s/TiB) along with a lower minimum storage capacity requirement (600 * GiB). To learn more about FSx for Lustre deployment types, see * FSx for Lustre deployment options.

The default is * 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 and * PERSISTENT_2 deployment type is used for longer-term storage and * workloads and encryption of data in transit. PERSISTENT_2 is built * on Lustre v2.12 and offers higher PerUnitStorageThroughput (up to * 1000 MB/s/TiB) along with a lower minimum storage capacity requirement (600 * GiB). To learn more about FSx for Lustre deployment types, see * FSx for Lustre deployment options.

The default is * 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 and * PERSISTENT_2 deployment type is used for longer-term storage and * workloads and encryption of data in transit. PERSISTENT_2 is built * on Lustre v2.12 and offers higher PerUnitStorageThroughput (up to * 1000 MB/s/TiB) along with a lower minimum storage capacity requirement (600 * GiB). To learn more about FSx for Lustre deployment types, see * FSx for Lustre deployment options.

The default is * 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 and * PERSISTENT_2 deployment type is used for longer-term storage and * workloads and encryption of data in transit. PERSISTENT_2 is built * on Lustre v2.12 and offers higher PerUnitStorageThroughput (up to * 1000 MB/s/TiB) along with a lower minimum storage capacity requirement (600 * GiB). To learn more about FSx for Lustre deployment types, see * FSx for Lustre deployment options.

The default is * 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 and * PERSISTENT_2 deployment types.

Valid values:

  • *

    For PERSISTENT_1 SSD storage: 50, 100, 200.

  • *

    For PERSISTENT_1 HDD storage: 12, 40.

  • For * PERSISTENT_2 SSD storage: 125, 250, 500, 1000.

*/ 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 and * PERSISTENT_2 deployment types.

Valid values:

  • *

    For PERSISTENT_1 SSD storage: 50, 100, 200.

  • *

    For PERSISTENT_1 HDD storage: 12, 40.

  • For * PERSISTENT_2 SSD storage: 125, 250, 500, 1000.

*/ 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 and * PERSISTENT_2 deployment types.

Valid values:

  • *

    For PERSISTENT_1 SSD storage: 50, 100, 200.

  • *

    For PERSISTENT_1 HDD storage: 12, 40.

  • For * PERSISTENT_2 SSD storage: 125, 250, 500, 1000.

*/ 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 and * PERSISTENT_2 deployment types.

Valid values:

  • *

    For PERSISTENT_1 SSD storage: 50, 100, 200.

  • *

    For PERSISTENT_1 HDD storage: 12, 40.

  • For * PERSISTENT_2 SSD storage: 125, 250, 500, 1000.

*/ 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, PERSISTENT_1, and * PERSISTENT_2 deployment types, this value is a string that is * unique within an Amazon Web Services 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, PERSISTENT_1, and * PERSISTENT_2 deployment types, this value is a string that is * unique within an Amazon Web Services 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, PERSISTENT_1, and * PERSISTENT_2 deployment types, this value is a string that is * unique within an Amazon Web Services 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, PERSISTENT_1, and * PERSISTENT_2 deployment types, this value is a string that is * unique within an Amazon Web Services 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, PERSISTENT_1, and * PERSISTENT_2 deployment types, this value is a string that is * unique within an Amazon Web Services 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, PERSISTENT_1, and * PERSISTENT_2 deployment types, this value is a string that is * unique within an Amazon Web Services 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, PERSISTENT_1, and * PERSISTENT_2 deployment types, this value is a string that is * unique within an Amazon Web Services 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, PERSISTENT_1, and * PERSISTENT_2 deployment types, this value is a string that is * unique within an Amazon Web Services 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 are 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 are 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 are 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 are 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 * StorageType is HDD. When set to READ the file system * has an SSD storage cache that is sized to 20% of the file system's storage * capacity. This improves the performance for frequently accessed files by caching * up to 20% of the total storage capacity.

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 * StorageType is HDD. When set to READ the file system * has an SSD storage cache that is sized to 20% of the file system's storage * capacity. This improves the performance for frequently accessed files by caching * up to 20% of the total storage capacity.

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 * StorageType is HDD. When set to READ the file system * has an SSD storage cache that is sized to 20% of the file system's storage * capacity. This improves the performance for frequently accessed files by caching * up to 20% of the total storage capacity.

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 * StorageType is HDD. When set to READ the file system * has an SSD storage cache that is sized to 20% of the file system's storage * capacity. This improves the performance for frequently accessed files by caching * up to 20% of the total storage capacity.

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 * StorageType is HDD. When set to READ the file system * has an SSD storage cache that is sized to 20% of the file system's storage * capacity. This improves the performance for frequently accessed files by caching * up to 20% of the total storage capacity.

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 * StorageType is HDD. When set to READ the file system * has an SSD storage cache that is sized to 20% of the file system's storage * capacity. This improves the performance for frequently accessed files by caching * up to 20% of the total storage capacity.

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

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

The data compression configuration for the file system. * DataCompressionType can have the following values:

  • *

    NONE - Data compression is turned off for the file system.

    *
  • LZ4 - Data compression is turned on with the LZ4 * algorithm.

For more information, see Lustre * data compression.

*/ inline const DataCompressionType& GetDataCompressionType() const{ return m_dataCompressionType; } /** *

The data compression configuration for the file system. * DataCompressionType can have the following values:

  • *

    NONE - Data compression is turned off for the file system.

    *
  • LZ4 - Data compression is turned on with the LZ4 * algorithm.

For more information, see Lustre * data compression.

*/ inline bool DataCompressionTypeHasBeenSet() const { return m_dataCompressionTypeHasBeenSet; } /** *

The data compression configuration for the file system. * DataCompressionType can have the following values:

  • *

    NONE - Data compression is turned off for the file system.

    *
  • LZ4 - Data compression is turned on with the LZ4 * algorithm.

For more information, see Lustre * data compression.

*/ inline void SetDataCompressionType(const DataCompressionType& value) { m_dataCompressionTypeHasBeenSet = true; m_dataCompressionType = value; } /** *

The data compression configuration for the file system. * DataCompressionType can have the following values:

  • *

    NONE - Data compression is turned off for the file system.

    *
  • LZ4 - Data compression is turned on with the LZ4 * algorithm.

For more information, see Lustre * data compression.

*/ inline void SetDataCompressionType(DataCompressionType&& value) { m_dataCompressionTypeHasBeenSet = true; m_dataCompressionType = std::move(value); } /** *

The data compression configuration for the file system. * DataCompressionType can have the following values:

  • *

    NONE - Data compression is turned off for the file system.

    *
  • LZ4 - Data compression is turned on with the LZ4 * algorithm.

For more information, see Lustre * data compression.

*/ inline LustreFileSystemConfiguration& WithDataCompressionType(const DataCompressionType& value) { SetDataCompressionType(value); return *this;} /** *

The data compression configuration for the file system. * DataCompressionType can have the following values:

  • *

    NONE - Data compression is turned off for the file system.

    *
  • LZ4 - Data compression is turned on with the LZ4 * algorithm.

For more information, see Lustre * data compression.

*/ inline LustreFileSystemConfiguration& WithDataCompressionType(DataCompressionType&& value) { SetDataCompressionType(std::move(value)); return *this;} /** *

The Lustre logging configuration. Lustre logging writes the enabled log * events for your file system to Amazon CloudWatch Logs.

*/ inline const LustreLogConfiguration& GetLogConfiguration() const{ return m_logConfiguration; } /** *

The Lustre logging configuration. Lustre logging writes the enabled log * events for your file system to Amazon CloudWatch Logs.

*/ inline bool LogConfigurationHasBeenSet() const { return m_logConfigurationHasBeenSet; } /** *

The Lustre logging configuration. Lustre logging writes the enabled log * events for your file system to Amazon CloudWatch Logs.

*/ inline void SetLogConfiguration(const LustreLogConfiguration& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = value; } /** *

The Lustre logging configuration. Lustre logging writes the enabled log * events for your file system to Amazon CloudWatch Logs.

*/ inline void SetLogConfiguration(LustreLogConfiguration&& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = std::move(value); } /** *

The Lustre logging configuration. Lustre logging writes the enabled log * events for your file system to Amazon CloudWatch Logs.

*/ inline LustreFileSystemConfiguration& WithLogConfiguration(const LustreLogConfiguration& value) { SetLogConfiguration(value); return *this;} /** *

The Lustre logging configuration. Lustre logging writes the enabled log * events for your file system to Amazon CloudWatch Logs.

*/ inline LustreFileSystemConfiguration& WithLogConfiguration(LustreLogConfiguration&& value) { SetLogConfiguration(std::move(value)); return *this;} /** *

The Lustre root squash configuration for an Amazon FSx for Lustre file * system. When enabled, root squash restricts root-level access from clients that * try to access your file system as a root user.

*/ inline const LustreRootSquashConfiguration& GetRootSquashConfiguration() const{ return m_rootSquashConfiguration; } /** *

The Lustre root squash configuration for an Amazon FSx for Lustre file * system. When enabled, root squash restricts root-level access from clients that * try to access your file system as a root user.

*/ inline bool RootSquashConfigurationHasBeenSet() const { return m_rootSquashConfigurationHasBeenSet; } /** *

The Lustre root squash configuration for an Amazon FSx for Lustre file * system. When enabled, root squash restricts root-level access from clients that * try to access your file system as a root user.

*/ inline void SetRootSquashConfiguration(const LustreRootSquashConfiguration& value) { m_rootSquashConfigurationHasBeenSet = true; m_rootSquashConfiguration = value; } /** *

The Lustre root squash configuration for an Amazon FSx for Lustre file * system. When enabled, root squash restricts root-level access from clients that * try to access your file system as a root user.

*/ inline void SetRootSquashConfiguration(LustreRootSquashConfiguration&& value) { m_rootSquashConfigurationHasBeenSet = true; m_rootSquashConfiguration = std::move(value); } /** *

The Lustre root squash configuration for an Amazon FSx for Lustre file * system. When enabled, root squash restricts root-level access from clients that * try to access your file system as a root user.

*/ inline LustreFileSystemConfiguration& WithRootSquashConfiguration(const LustreRootSquashConfiguration& value) { SetRootSquashConfiguration(value); return *this;} /** *

The Lustre root squash configuration for an Amazon FSx for Lustre file * system. When enabled, root squash restricts root-level access from clients that * try to access your file system as a root user.

*/ inline LustreFileSystemConfiguration& WithRootSquashConfiguration(LustreRootSquashConfiguration&& value) { SetRootSquashConfiguration(std::move(value)); return *this;} private: Aws::String m_weeklyMaintenanceStartTime; bool m_weeklyMaintenanceStartTimeHasBeenSet = false; DataRepositoryConfiguration m_dataRepositoryConfiguration; bool m_dataRepositoryConfigurationHasBeenSet = false; LustreDeploymentType m_deploymentType; bool m_deploymentTypeHasBeenSet = false; int m_perUnitStorageThroughput; bool m_perUnitStorageThroughputHasBeenSet = false; Aws::String m_mountName; bool m_mountNameHasBeenSet = false; Aws::String m_dailyAutomaticBackupStartTime; bool m_dailyAutomaticBackupStartTimeHasBeenSet = false; int m_automaticBackupRetentionDays; bool m_automaticBackupRetentionDaysHasBeenSet = false; bool m_copyTagsToBackups; bool m_copyTagsToBackupsHasBeenSet = false; DriveCacheType m_driveCacheType; bool m_driveCacheTypeHasBeenSet = false; DataCompressionType m_dataCompressionType; bool m_dataCompressionTypeHasBeenSet = false; LustreLogConfiguration m_logConfiguration; bool m_logConfigurationHasBeenSet = false; LustreRootSquashConfiguration m_rootSquashConfiguration; bool m_rootSquashConfigurationHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws