/*
* 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 of an Amazon FSx for OpenZFS volume.
///
public partial class OpenZFSVolumeConfiguration
{
private bool? _copyTagsToSnapshots;
private OpenZFSDataCompressionType _dataCompressionType;
private bool? _deleteClonedVolumes;
private bool? _deleteIntermediateSnaphots;
private List _nfsExports = new List();
private OpenZFSOriginSnapshotConfiguration _originSnapshot;
private string _parentVolumeId;
private bool? _readOnly;
private int? _recordSizeKiB;
private string _restoreToSnapshot;
private int? _storageCapacityQuotaGiB;
private int? _storageCapacityReservationGiB;
private List _userAndGroupQuotas = new List();
private string _volumePath;
///
/// Gets and sets the property CopyTagsToSnapshots.
///
/// A Boolean value indicating whether tags for the volume should be copied to snapshots.
/// This value defaults to false
. If it's set to true
, all tags
/// for the volume are copied to snapshots 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 snapshots. If you specify one or more tags when creating the snapshot,
/// no tags are copied from the volume, regardless of this value.
///
///
public bool CopyTagsToSnapshots
{
get { return this._copyTagsToSnapshots.GetValueOrDefault(); }
set { this._copyTagsToSnapshots = value; }
}
// Check to see if CopyTagsToSnapshots property is set
internal bool IsSetCopyTagsToSnapshots()
{
return this._copyTagsToSnapshots.HasValue;
}
///
/// Gets and sets the property DataCompressionType.
///
/// Specifies the method used to compress the data on the volume. The compression type
/// is NONE
by default.
///
/// -
///
///
NONE
- Doesn't compress the data on the volume. NONE
is
/// the default.
///
/// -
///
///
ZSTD
- Compresses the data in the volume using the Zstandard (ZSTD)
/// compression algorithm. Compared to LZ4, Z-Standard provides a better compression ratio
/// to minimize on-disk storage utilization.
///
/// -
///
///
LZ4
- Compresses the data in the volume using the LZ4 compression algorithm.
/// Compared to Z-Standard, LZ4 is less compute-intensive and delivers higher write throughput
/// speeds.
///
///
///
public OpenZFSDataCompressionType 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 DeleteClonedVolumes.
///
/// A Boolean value indicating whether dependent clone volumes created from intermediate
/// snapshots should be deleted when a volume is restored from snapshot.
///
///
public bool DeleteClonedVolumes
{
get { return this._deleteClonedVolumes.GetValueOrDefault(); }
set { this._deleteClonedVolumes = value; }
}
// Check to see if DeleteClonedVolumes property is set
internal bool IsSetDeleteClonedVolumes()
{
return this._deleteClonedVolumes.HasValue;
}
///
/// Gets and sets the property DeleteIntermediateSnaphots.
///
/// A Boolean value indicating whether snapshots between the current state and the specified
/// snapshot should be deleted when a volume is restored from snapshot.
///
///
public bool DeleteIntermediateSnaphots
{
get { return this._deleteIntermediateSnaphots.GetValueOrDefault(); }
set { this._deleteIntermediateSnaphots = value; }
}
// Check to see if DeleteIntermediateSnaphots property is set
internal bool IsSetDeleteIntermediateSnaphots()
{
return this._deleteIntermediateSnaphots.HasValue;
}
///
/// Gets and sets the property NfsExports.
///
/// The configuration object for mounting a Network File System (NFS) file system.
///
///
[AWSProperty(Max=1)]
public List NfsExports
{
get { return this._nfsExports; }
set { this._nfsExports = value; }
}
// Check to see if NfsExports property is set
internal bool IsSetNfsExports()
{
return this._nfsExports != null && this._nfsExports.Count > 0;
}
///
/// Gets and sets the property OriginSnapshot.
///
/// The configuration object that specifies the snapshot to use as the origin of the data
/// for the volume.
///
///
public OpenZFSOriginSnapshotConfiguration OriginSnapshot
{
get { return this._originSnapshot; }
set { this._originSnapshot = value; }
}
// Check to see if OriginSnapshot property is set
internal bool IsSetOriginSnapshot()
{
return this._originSnapshot != null;
}
///
/// Gets and sets the property ParentVolumeId.
///
/// The ID of the parent volume.
///
///
[AWSProperty(Min=23, Max=23)]
public string ParentVolumeId
{
get { return this._parentVolumeId; }
set { this._parentVolumeId = value; }
}
// Check to see if ParentVolumeId property is set
internal bool IsSetParentVolumeId()
{
return this._parentVolumeId != null;
}
///
/// Gets and sets the property ReadOnly.
///
/// A Boolean value indicating whether the volume is read-only.
///
///
public bool ReadOnly
{
get { return this._readOnly.GetValueOrDefault(); }
set { this._readOnly = value; }
}
// Check to see if ReadOnly property is set
internal bool IsSetReadOnly()
{
return this._readOnly.HasValue;
}
///
/// Gets and sets the property RecordSizeKiB.
///
/// The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are 4, 8, 16,
/// 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. Most workloads should
/// use the default record size. For guidance on when to set a custom record size, see
/// the Amazon FSx for OpenZFS User Guide.
///
///
[AWSProperty(Min=4, Max=1024)]
public int RecordSizeKiB
{
get { return this._recordSizeKiB.GetValueOrDefault(); }
set { this._recordSizeKiB = value; }
}
// Check to see if RecordSizeKiB property is set
internal bool IsSetRecordSizeKiB()
{
return this._recordSizeKiB.HasValue;
}
///
/// Gets and sets the property RestoreToSnapshot.
///
/// Specifies the ID of the snapshot to which the volume was restored.
///
///
[AWSProperty(Min=11, Max=28)]
public string RestoreToSnapshot
{
get { return this._restoreToSnapshot; }
set { this._restoreToSnapshot = value; }
}
// Check to see if RestoreToSnapshot property is set
internal bool IsSetRestoreToSnapshot()
{
return this._restoreToSnapshot != null;
}
///
/// Gets and sets the property StorageCapacityQuotaGiB.
///
/// The maximum amount of storage in gibibtyes (GiB) that the volume can use from its
/// parent. You can specify a quota larger than the storage on the parent volume.
///
///
[AWSProperty(Min=0, Max=2147483647)]
public int StorageCapacityQuotaGiB
{
get { return this._storageCapacityQuotaGiB.GetValueOrDefault(); }
set { this._storageCapacityQuotaGiB = value; }
}
// Check to see if StorageCapacityQuotaGiB property is set
internal bool IsSetStorageCapacityQuotaGiB()
{
return this._storageCapacityQuotaGiB.HasValue;
}
///
/// Gets and sets the property StorageCapacityReservationGiB.
///
/// The amount of storage in gibibytes (GiB) to reserve from the parent volume. You can't
/// reserve more storage than the parent volume has reserved.
///
///
[AWSProperty(Min=0, Max=2147483647)]
public int StorageCapacityReservationGiB
{
get { return this._storageCapacityReservationGiB.GetValueOrDefault(); }
set { this._storageCapacityReservationGiB = value; }
}
// Check to see if StorageCapacityReservationGiB property is set
internal bool IsSetStorageCapacityReservationGiB()
{
return this._storageCapacityReservationGiB.HasValue;
}
///
/// Gets and sets the property UserAndGroupQuotas.
///
/// An object specifying how much storage users or groups can use on the volume.
///
///
[AWSProperty(Max=500)]
public List UserAndGroupQuotas
{
get { return this._userAndGroupQuotas; }
set { this._userAndGroupQuotas = value; }
}
// Check to see if UserAndGroupQuotas property is set
internal bool IsSetUserAndGroupQuotas()
{
return this._userAndGroupQuotas != null && this._userAndGroupQuotas.Count > 0;
}
///
/// Gets and sets the property VolumePath.
///
/// The path to the volume from the root volume. For example, fsx/parentVolume/volume1
.
///
///
[AWSProperty(Min=1, Max=2048)]
public string VolumePath
{
get { return this._volumePath; }
set { this._volumePath = value; }
}
// Check to see if VolumePath property is set
internal bool IsSetVolumePath()
{
return this._volumePath != null;
}
}
}