/* * 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; } } }