/*
* 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 Lustre configuration for the file system being created.
///
///
///
/// The following parameters are not supported for file systems with a data repository
/// association created with .
///
/// -
///
///
AutoImportPolicy
///
/// -
///
///
ExportPath
///
/// -
///
///
ImportedChunkSize
///
/// -
///
///
ImportPath
///
///
///
public partial class CreateFileSystemLustreConfiguration
{
private AutoImportPolicyType _autoImportPolicy;
private int? _automaticBackupRetentionDays;
private bool? _copyTagsToBackups;
private string _dailyAutomaticBackupStartTime;
private DataCompressionType _dataCompressionType;
private LustreDeploymentType _deploymentType;
private DriveCacheType _driveCacheType;
private string _exportPath;
private int? _importedFileChunkSize;
private string _importPath;
private LustreLogCreateConfiguration _logConfiguration;
private int? _perUnitStorageThroughput;
private LustreRootSquashConfiguration _rootSquashConfiguration;
private string _weeklyMaintenanceStartTime;
///
/// Gets and sets the property AutoImportPolicy.
///
/// (Optional) When you create your file system, your existing S3 objects appear as file
/// and directory listings. Use this parameter to choose how Amazon FSx keeps your file
/// and directory listings up to date as you add or modify objects in your linked S3 bucket.
/// AutoImportPolicy
can have the following values:
///
/// -
///
///
NONE
- (Default) AutoImport is off. Amazon FSx only updates file and
/// directory listings from the linked S3 bucket when the file system is created. FSx
/// does not update file and directory listings for any new or changed objects after choosing
/// this option.
///
/// -
///
///
NEW
- AutoImport is on. Amazon FSx automatically imports directory listings
/// of any new objects added to the linked S3 bucket that do not currently exist in the
/// FSx file system.
///
/// -
///
///
NEW_CHANGED
- AutoImport is on. Amazon FSx automatically imports file
/// and directory listings of any new objects added to the S3 bucket and any existing
/// objects that are changed in the S3 bucket after you choose this option.
///
/// -
///
///
NEW_CHANGED_DELETED
- AutoImport is on. Amazon FSx automatically imports
/// file and directory listings of any new objects added to the S3 bucket, any existing
/// objects that are changed in the S3 bucket, and any objects that were deleted in the
/// S3 bucket.
///
///
///
/// For more information, see
/// Automatically import updates from your S3 bucket.
///
///
///
/// This parameter is not supported for file systems with a data repository association.
///
///
///
public AutoImportPolicyType AutoImportPolicy
{
get { return this._autoImportPolicy; }
set { this._autoImportPolicy = value; }
}
// Check to see if AutoImportPolicy property is set
internal bool IsSetAutoImportPolicy()
{
return this._autoImportPolicy != null;
}
///
/// Gets and sets the property AutomaticBackupRetentionDays.
///
/// The number of days to retain automatic backups. Setting this property to 0
/// disables automatic backups. You can retain automatic backups for a maximum of 90 days.
/// The default is 0
.
///
///
[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.
///
/// (Optional) Not available for use with file systems that are linked to a data repository.
/// A boolean flag indicating whether tags for the file system should be copied to backups.
/// The default value is false. If CopyTagsToBackups
is set to true, all
/// file system tags are copied to all automatic and user-initiated backups when the user
/// doesn't specify any backup-specific tags. If CopyTagsToBackups
is set
/// to true and you specify one or more backup 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
)
///
///
///
/// For more information, see
/// Working with backups in the Amazon FSx for Lustre User Guide.
///
///
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.
///
/// Sets the data compression configuration for the file system. DataCompressionType
/// can have the following values:
///
/// -
///
///
NONE
- (Default) Data compression is turned off when the file system
/// is created.
///
/// -
///
///
LZ4
- Data compression is turned on with the LZ4 algorithm.
///
///
///
/// For more information, see Lustre
/// data compression in the Amazon FSx for Lustre User Guide.
///
///
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 DeploymentType.
///
/// (Optional) Choose SCRATCH_1
and SCRATCH_2
deployment types
/// 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
.
///
///
///
/// Choose PERSISTENT_1
for longer-term storage and for throughput-focused
/// workloads that aren’t latency-sensitive. PERSISTENT_1
supports encryption
/// of data in transit, and is available in all Amazon Web Services Regions in which FSx
/// for Lustre is available.
///
///
///
/// Choose PERSISTENT_2
for longer-term storage and for latency-sensitive
/// workloads that require the highest levels of IOPS/throughput. PERSISTENT_2
/// supports SSD storage, and offers higher PerUnitStorageThroughput
(up
/// to 1000 MB/s/TiB). PERSISTENT_2
is available in a limited number of Amazon
/// Web Services Regions. For more information, and an up-to-date list of Amazon Web Services
/// Regions in which PERSISTENT_2
is available, see File
/// system deployment options for FSx for Lustre in the Amazon FSx for Lustre User
/// Guide.
///
///
///
/// If you choose PERSISTENT_2
, and you set FileSystemTypeVersion
/// to 2.10
, the CreateFileSystem
operation fails.
///
///
///
/// Encryption of data in transit is automatically turned on when you access SCRATCH_2
,
/// PERSISTENT_1
and PERSISTENT_2
file systems from Amazon EC2
/// instances that support automatic encryption in the Amazon Web Services Regions where
/// they are available. For more information about encryption in transit for FSx for Lustre
/// file systems, see Encrypting
/// data in transit in the Amazon FSx for Lustre User Guide.
///
///
///
/// (Default = 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 storage type is HDD. Set
/// this property to READ
to improve the performance for frequently accessed
/// files by caching up to 20% of the total storage capacity of the file system.
///
///
///
/// 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 ExportPath.
///
/// (Optional) Specifies the path in the Amazon S3 bucket where the root of your Amazon
/// FSx file system is exported. The path must use the same Amazon S3 bucket as specified
/// in ImportPath. You can provide an optional prefix to which new and changed data is
/// to be exported from your Amazon FSx for Lustre file system. If an ExportPath
/// value is not provided, Amazon FSx sets a default export path, s3://import-bucket/FSxLustre[creation-timestamp]
.
/// The timestamp is in UTC format, for example s3://import-bucket/FSxLustre20181105T222312Z
.
///
///
///
/// The Amazon S3 export bucket must be the same as the import bucket specified by ImportPath
.
/// If you specify only a bucket name, such as s3://import-bucket
, you get
/// a 1:1 mapping of file system objects to S3 bucket objects. This mapping means that
/// the input data in S3 is overwritten on export. If you provide a custom prefix in the
/// export path, such as s3://import-bucket/[custom-optional-prefix]
, Amazon
/// FSx exports the contents of your file system to that export prefix in the Amazon S3
/// bucket.
///
///
///
/// This parameter is not supported for file systems with a data repository association.
///
///
///
[AWSProperty(Min=3, Max=4357)]
public string ExportPath
{
get { return this._exportPath; }
set { this._exportPath = value; }
}
// Check to see if ExportPath property is set
internal bool IsSetExportPath()
{
return this._exportPath != null;
}
///
/// Gets and sets the property ImportedFileChunkSize.
///
/// (Optional) For files imported from a data repository, this value determines the stripe
/// count and maximum amount of data per file (in MiB) stored on a single physical disk.
/// The maximum number of disks that a single file can be striped across is limited by
/// the total number of disks that make up the file system.
///
///
///
/// The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500
/// GiB). Amazon S3 objects have a maximum size of 5 TB.
///
///
///
/// This parameter is not supported for file systems with a data repository association.
///
///
///
[AWSProperty(Min=1, Max=512000)]
public int ImportedFileChunkSize
{
get { return this._importedFileChunkSize.GetValueOrDefault(); }
set { this._importedFileChunkSize = value; }
}
// Check to see if ImportedFileChunkSize property is set
internal bool IsSetImportedFileChunkSize()
{
return this._importedFileChunkSize.HasValue;
}
///
/// Gets and sets the property ImportPath.
///
/// (Optional) The path to the Amazon S3 bucket (including the optional prefix) that you're
/// using as the data repository for your Amazon FSx for Lustre file system. The root
/// of your FSx for Lustre file system will be mapped to the root of the Amazon S3 bucket
/// you select. An example is s3://import-bucket/optional-prefix
. If you
/// specify a prefix after the Amazon S3 bucket name, only object keys with that prefix
/// are loaded into the file system.
///
///
///
/// This parameter is not supported for file systems with a data repository association.
///
///
///
[AWSProperty(Min=3, Max=4357)]
public string ImportPath
{
get { return this._importPath; }
set { this._importPath = value; }
}
// Check to see if ImportPath property is set
internal bool IsSetImportPath()
{
return this._importPath != null;
}
///
/// Gets and sets the property LogConfiguration.
///
/// The Lustre logging configuration used when creating an Amazon FSx for Lustre file
/// system. When logging is enabled, Lustre logs error and warning events for data repositories
/// associated with your file system to Amazon CloudWatch Logs.
///
///
public LustreLogCreateConfiguration 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 PerUnitStorageThroughput.
///
/// Required with PERSISTENT_1
and PERSISTENT_2
deployment types,
/// provisions the amount of read and write throughput for each 1 tebibyte (TiB) of file
/// system storage capacity, in MB/s/TiB. File system throughput capacity is calculated
/// by multiplying file system storage capacity (TiB) by the PerUnitStorageThroughput
/// (MB/s/TiB). For a 2.4-TiB file system, provisioning 50 MB/s/TiB of PerUnitStorageThroughput
/// yields 120 MB/s of file system throughput. You pay for the amount of throughput that
/// you provision.
///
///
///
/// Valid values:
///
/// -
///
/// For
PERSISTENT_1
SSD storage: 50, 100, 200 MB/s/TiB.
///
/// -
///
/// For
PERSISTENT_1
HDD storage: 12, 40 MB/s/TiB.
///
/// -
///
/// For
PERSISTENT_2
SSD storage: 125, 250, 500, 1000 MB/s/TiB.
///
///
///
[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 used when creating 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.
///
/// (Optional) 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.
///
///
[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;
}
}
}