/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the fsx-2018-03-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.FSx.Model
{
///
/// The configuration for the Amazon FSx for Lustre file system.
///
public partial class LustreFileSystemConfiguration
{
private int? _automaticBackupRetentionDays;
private bool? _copyTagsToBackups;
private string _dailyAutomaticBackupStartTime;
private DataCompressionType _dataCompressionType;
private DataRepositoryConfiguration _dataRepositoryConfiguration;
private LustreDeploymentType _deploymentType;
private DriveCacheType _driveCacheType;
private LustreLogConfiguration _logConfiguration;
private string _mountName;
private int? _perUnitStorageThroughput;
private LustreRootSquashConfiguration _rootSquashConfiguration;
private string _weeklyMaintenanceStartTime;
///
/// Gets and sets the property AutomaticBackupRetentionDays.
///
[AWSProperty(Min=0, Max=90)]
public int AutomaticBackupRetentionDays
{
get { return this._automaticBackupRetentionDays.GetValueOrDefault(); }
set { this._automaticBackupRetentionDays = value; }
}
// Check to see if AutomaticBackupRetentionDays property is set
internal bool IsSetAutomaticBackupRetentionDays()
{
return this._automaticBackupRetentionDays.HasValue;
}
///
/// Gets and sets the property 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)
///
///
public bool CopyTagsToBackups
{
get { return this._copyTagsToBackups.GetValueOrDefault(); }
set { this._copyTagsToBackups = value; }
}
// Check to see if CopyTagsToBackups property is set
internal bool IsSetCopyTagsToBackups()
{
return this._copyTagsToBackups.HasValue;
}
///
/// Gets and sets the property DailyAutomaticBackupStartTime.
///
[AWSProperty(Min=5, Max=5)]
public string DailyAutomaticBackupStartTime
{
get { return this._dailyAutomaticBackupStartTime; }
set { this._dailyAutomaticBackupStartTime = value; }
}
// Check to see if DailyAutomaticBackupStartTime property is set
internal bool IsSetDailyAutomaticBackupStartTime()
{
return this._dailyAutomaticBackupStartTime != null;
}
///
/// Gets and sets the property 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.
///
///
public DataCompressionType DataCompressionType
{
get { return this._dataCompressionType; }
set { this._dataCompressionType = value; }
}
// Check to see if DataCompressionType property is set
internal bool IsSetDataCompressionType()
{
return this._dataCompressionType != null;
}
///
/// Gets and sets the property DataRepositoryConfiguration.
///
public DataRepositoryConfiguration DataRepositoryConfiguration
{
get { return this._dataRepositoryConfiguration; }
set { this._dataRepositoryConfiguration = value; }
}
// Check to see if DataRepositoryConfiguration property is set
internal bool IsSetDataRepositoryConfiguration()
{
return this._dataRepositoryConfiguration != null;
}
///
/// Gets and sets the property 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
.
///
///
public LustreDeploymentType DeploymentType
{
get { return this._deploymentType; }
set { this._deploymentType = value; }
}
// Check to see if DeploymentType property is set
internal bool IsSetDeploymentType()
{
return this._deploymentType != null;
}
///
/// Gets and sets the property 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.
///
///
public DriveCacheType DriveCacheType
{
get { return this._driveCacheType; }
set { this._driveCacheType = value; }
}
// Check to see if DriveCacheType property is set
internal bool IsSetDriveCacheType()
{
return this._driveCacheType != null;
}
///
/// Gets and sets the property LogConfiguration.
///
/// The Lustre logging configuration. Lustre logging writes the enabled log events for
/// your file system to Amazon CloudWatch Logs.
///
///
public LustreLogConfiguration LogConfiguration
{
get { return this._logConfiguration; }
set { this._logConfiguration = value; }
}
// Check to see if LogConfiguration property is set
internal bool IsSetLogConfiguration()
{
return this._logConfiguration != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=8)]
public string MountName
{
get { return this._mountName; }
set { this._mountName = value; }
}
// Check to see if MountName property is set
internal bool IsSetMountName()
{
return this._mountName != null;
}
///
/// Gets and sets the property 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.
///
///
///
[AWSProperty(Min=12, Max=1000)]
public int PerUnitStorageThroughput
{
get { return this._perUnitStorageThroughput.GetValueOrDefault(); }
set { this._perUnitStorageThroughput = value; }
}
// Check to see if PerUnitStorageThroughput property is set
internal bool IsSetPerUnitStorageThroughput()
{
return this._perUnitStorageThroughput.HasValue;
}
///
/// Gets and sets the property 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.
///
///
public LustreRootSquashConfiguration RootSquashConfiguration
{
get { return this._rootSquashConfiguration; }
set { this._rootSquashConfiguration = value; }
}
// Check to see if RootSquashConfiguration property is set
internal bool IsSetRootSquashConfiguration()
{
return this._rootSquashConfiguration != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=7, Max=7)]
public string WeeklyMaintenanceStartTime
{
get { return this._weeklyMaintenanceStartTime; }
set { this._weeklyMaintenanceStartTime = value; }
}
// Check to see if WeeklyMaintenanceStartTime property is set
internal bool IsSetWeeklyMaintenanceStartTime()
{
return this._weeklyMaintenanceStartTime != null;
}
}
}