/*
* 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 storagegateway-2013-06-30.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.StorageGateway.Model
{
///
/// Describes an iSCSI cached volume.
///
public partial class CachediSCSIVolume
{
private DateTime? _createdDate;
private string _kmsKey;
private string _sourceSnapshotId;
private string _targetName;
private string _volumeARN;
private string _volumeAttachmentStatus;
private string _volumeId;
private VolumeiSCSIAttributes _volumeiSCSIAttributes;
private double? _volumeProgress;
private long? _volumeSizeInBytes;
private string _volumeStatus;
private string _volumeType;
private long? _volumeUsedInBytes;
///
/// Gets and sets the property CreatedDate.
///
/// The date the volume was created. Volumes created prior to March 28, 2017 don’t have
/// this timestamp.
///
///
public DateTime CreatedDate
{
get { return this._createdDate.GetValueOrDefault(); }
set { this._createdDate = value; }
}
// Check to see if CreatedDate property is set
internal bool IsSetCreatedDate()
{
return this._createdDate.HasValue;
}
///
/// Gets and sets the property KMSKey.
///
[AWSProperty(Min=7, Max=2048)]
public string KMSKey
{
get { return this._kmsKey; }
set { this._kmsKey = value; }
}
// Check to see if KMSKey property is set
internal bool IsSetKMSKey()
{
return this._kmsKey != null;
}
///
/// Gets and sets the property SourceSnapshotId.
///
/// If the cached volume was created from a snapshot, this field contains the snapshot
/// ID used, e.g., snap-78e22663. Otherwise, this field is not included.
///
///
public string SourceSnapshotId
{
get { return this._sourceSnapshotId; }
set { this._sourceSnapshotId = value; }
}
// Check to see if SourceSnapshotId property is set
internal bool IsSetSourceSnapshotId()
{
return this._sourceSnapshotId != null;
}
///
/// Gets and sets the property TargetName.
///
/// The name of the iSCSI target used by an initiator to connect to a volume and used
/// as a suffix for the target ARN. For example, specifying TargetName
as
/// myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume
.
/// The target name must be unique across all volumes on a gateway.
///
///
///
/// If you don't specify a value, Storage Gateway uses the value that was previously used
/// for this volume as the new target name.
///
///
[AWSProperty(Min=1, Max=200)]
public string TargetName
{
get { return this._targetName; }
set { this._targetName = value; }
}
// Check to see if TargetName property is set
internal bool IsSetTargetName()
{
return this._targetName != null;
}
///
/// Gets and sets the property VolumeARN.
///
/// The Amazon Resource Name (ARN) of the storage volume.
///
///
[AWSProperty(Min=50, Max=500)]
public string VolumeARN
{
get { return this._volumeARN; }
set { this._volumeARN = value; }
}
// Check to see if VolumeARN property is set
internal bool IsSetVolumeARN()
{
return this._volumeARN != null;
}
///
/// Gets and sets the property VolumeAttachmentStatus.
///
/// A value that indicates whether a storage volume is attached to or detached from a
/// gateway. For more information, see Moving
/// your volumes to a different gateway.
///
///
[AWSProperty(Min=3, Max=50)]
public string VolumeAttachmentStatus
{
get { return this._volumeAttachmentStatus; }
set { this._volumeAttachmentStatus = value; }
}
// Check to see if VolumeAttachmentStatus property is set
internal bool IsSetVolumeAttachmentStatus()
{
return this._volumeAttachmentStatus != null;
}
///
/// Gets and sets the property VolumeId.
///
/// The unique identifier of the volume, e.g., vol-AE4B946D.
///
///
[AWSProperty(Min=12, Max=30)]
public string VolumeId
{
get { return this._volumeId; }
set { this._volumeId = value; }
}
// Check to see if VolumeId property is set
internal bool IsSetVolumeId()
{
return this._volumeId != null;
}
///
/// Gets and sets the property VolumeiSCSIAttributes.
///
/// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
/// for one stored volume.
///
///
public VolumeiSCSIAttributes VolumeiSCSIAttributes
{
get { return this._volumeiSCSIAttributes; }
set { this._volumeiSCSIAttributes = value; }
}
// Check to see if VolumeiSCSIAttributes property is set
internal bool IsSetVolumeiSCSIAttributes()
{
return this._volumeiSCSIAttributes != null;
}
///
/// Gets and sets the property VolumeProgress.
///
/// Represents the percentage complete if the volume is restoring or bootstrapping that
/// represents the percent of data transferred. This field does not appear in the response
/// if the cached volume is not restoring or bootstrapping.
///
///
public double VolumeProgress
{
get { return this._volumeProgress.GetValueOrDefault(); }
set { this._volumeProgress = value; }
}
// Check to see if VolumeProgress property is set
internal bool IsSetVolumeProgress()
{
return this._volumeProgress.HasValue;
}
///
/// Gets and sets the property VolumeSizeInBytes.
///
/// The size, in bytes, of the volume capacity.
///
///
public long VolumeSizeInBytes
{
get { return this._volumeSizeInBytes.GetValueOrDefault(); }
set { this._volumeSizeInBytes = value; }
}
// Check to see if VolumeSizeInBytes property is set
internal bool IsSetVolumeSizeInBytes()
{
return this._volumeSizeInBytes.HasValue;
}
///
/// Gets and sets the property VolumeStatus.
///
/// One of the VolumeStatus values that indicates the state of the storage volume.
///
///
[AWSProperty(Min=3, Max=50)]
public string VolumeStatus
{
get { return this._volumeStatus; }
set { this._volumeStatus = value; }
}
// Check to see if VolumeStatus property is set
internal bool IsSetVolumeStatus()
{
return this._volumeStatus != null;
}
///
/// Gets and sets the property VolumeType.
///
/// One of the VolumeType enumeration values that describes the type of the volume.
///
///
[AWSProperty(Min=3, Max=100)]
public string VolumeType
{
get { return this._volumeType; }
set { this._volumeType = value; }
}
// Check to see if VolumeType property is set
internal bool IsSetVolumeType()
{
return this._volumeType != null;
}
///
/// Gets and sets the property VolumeUsedInBytes.
///
/// The size of the data stored on the volume in bytes. This value is calculated based
/// on the number of blocks that are touched, instead of the actual amount of data written.
/// This value can be useful for sequential write patterns but less accurate for random
/// write patterns. VolumeUsedInBytes
is different from the compressed size
/// of the volume, which is the value that is used to calculate your bill.
///
///
///
/// This value is not available for volumes created prior to May 13, 2015, until you store
/// data on the volume.
///
///
///
/// If you use a delete tool that overwrites the data on your volume with random data,
/// your usage will not be reduced. This is because the random data is not compressible.
/// If you want to reduce the amount of billed storage on your volume, we recommend overwriting
/// your files with zeros to compress the data to a negligible amount of actual storage.
///
///
///
public long VolumeUsedInBytes
{
get { return this._volumeUsedInBytes.GetValueOrDefault(); }
set { this._volumeUsedInBytes = value; }
}
// Check to see if VolumeUsedInBytes property is set
internal bool IsSetVolumeUsedInBytes()
{
return this._volumeUsedInBytes.HasValue;
}
}
}