/*
* 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 redshift-2012-12-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.Redshift.Model
{
///
/// Describes a snapshot.
///
public partial class Snapshot
{
private List _accountsWithRestoreAccess = new List();
private double? _actualIncrementalBackupSizeInMegaBytes;
private string _availabilityZone;
private double? _backupProgressInMegaBytes;
private DateTime? _clusterCreateTime;
private string _clusterIdentifier;
private string _clusterVersion;
private double? _currentBackupRateInMegaBytesPerSecond;
private string _dbName;
private long? _elapsedTimeInSeconds;
private bool? _encrypted;
private bool? _encryptedWithHSM;
private string _engineFullVersion;
private bool? _enhancedVpcRouting;
private long? _estimatedSecondsToCompletion;
private string _kmsKeyId;
private string _maintenanceTrackName;
private int? _manualSnapshotRemainingDays;
private int? _manualSnapshotRetentionPeriod;
private string _masterUsername;
private string _nodeType;
private int? _numberOfNodes;
private string _ownerAccount;
private int? _port;
private List _restorableNodeTypes = new List();
private DateTime? _snapshotCreateTime;
private string _snapshotIdentifier;
private DateTime? _snapshotRetentionStartTime;
private string _snapshotType;
private string _sourceRegion;
private string _status;
private List _tags = new List();
private double? _totalBackupSizeInMegaBytes;
private string _vpcId;
///
/// Gets and sets the property AccountsWithRestoreAccess.
///
/// A list of the Amazon Web Services accounts authorized to restore the snapshot. Returns
/// null
if no accounts are authorized. Visible only to the snapshot owner.
///
///
///
public List AccountsWithRestoreAccess
{
get { return this._accountsWithRestoreAccess; }
set { this._accountsWithRestoreAccess = value; }
}
// Check to see if AccountsWithRestoreAccess property is set
internal bool IsSetAccountsWithRestoreAccess()
{
return this._accountsWithRestoreAccess != null && this._accountsWithRestoreAccess.Count > 0;
}
///
/// Gets and sets the property ActualIncrementalBackupSizeInMegaBytes.
///
/// The size of the incremental backup.
///
///
public double ActualIncrementalBackupSizeInMegaBytes
{
get { return this._actualIncrementalBackupSizeInMegaBytes.GetValueOrDefault(); }
set { this._actualIncrementalBackupSizeInMegaBytes = value; }
}
// Check to see if ActualIncrementalBackupSizeInMegaBytes property is set
internal bool IsSetActualIncrementalBackupSizeInMegaBytes()
{
return this._actualIncrementalBackupSizeInMegaBytes.HasValue;
}
///
/// Gets and sets the property AvailabilityZone.
///
/// The Availability Zone in which the cluster was created.
///
///
[AWSProperty(Max=2147483647)]
public string AvailabilityZone
{
get { return this._availabilityZone; }
set { this._availabilityZone = value; }
}
// Check to see if AvailabilityZone property is set
internal bool IsSetAvailabilityZone()
{
return this._availabilityZone != null;
}
///
/// Gets and sets the property BackupProgressInMegaBytes.
///
/// The number of megabytes that have been transferred to the snapshot backup.
///
///
public double BackupProgressInMegaBytes
{
get { return this._backupProgressInMegaBytes.GetValueOrDefault(); }
set { this._backupProgressInMegaBytes = value; }
}
// Check to see if BackupProgressInMegaBytes property is set
internal bool IsSetBackupProgressInMegaBytes()
{
return this._backupProgressInMegaBytes.HasValue;
}
///
/// Gets and sets the property ClusterCreateTime.
///
/// The time (UTC) when the cluster was originally created.
///
///
public DateTime ClusterCreateTime
{
get { return this._clusterCreateTime.GetValueOrDefault(); }
set { this._clusterCreateTime = value; }
}
// Check to see if ClusterCreateTime property is set
internal bool IsSetClusterCreateTime()
{
return this._clusterCreateTime.HasValue;
}
///
/// Gets and sets the property ClusterIdentifier.
///
/// The identifier of the cluster for which the snapshot was taken.
///
///
[AWSProperty(Max=2147483647)]
public string ClusterIdentifier
{
get { return this._clusterIdentifier; }
set { this._clusterIdentifier = value; }
}
// Check to see if ClusterIdentifier property is set
internal bool IsSetClusterIdentifier()
{
return this._clusterIdentifier != null;
}
///
/// Gets and sets the property ClusterVersion.
///
/// The version ID of the Amazon Redshift engine that is running on the cluster.
///
///
[AWSProperty(Max=2147483647)]
public string ClusterVersion
{
get { return this._clusterVersion; }
set { this._clusterVersion = value; }
}
// Check to see if ClusterVersion property is set
internal bool IsSetClusterVersion()
{
return this._clusterVersion != null;
}
///
/// Gets and sets the property CurrentBackupRateInMegaBytesPerSecond.
///
/// The number of megabytes per second being transferred to the snapshot backup. Returns
/// 0
for a completed backup.
///
///
public double CurrentBackupRateInMegaBytesPerSecond
{
get { return this._currentBackupRateInMegaBytesPerSecond.GetValueOrDefault(); }
set { this._currentBackupRateInMegaBytesPerSecond = value; }
}
// Check to see if CurrentBackupRateInMegaBytesPerSecond property is set
internal bool IsSetCurrentBackupRateInMegaBytesPerSecond()
{
return this._currentBackupRateInMegaBytesPerSecond.HasValue;
}
///
/// Gets and sets the property DBName.
///
/// The name of the database that was created when the cluster was created.
///
///
[AWSProperty(Max=2147483647)]
public string DBName
{
get { return this._dbName; }
set { this._dbName = value; }
}
// Check to see if DBName property is set
internal bool IsSetDBName()
{
return this._dbName != null;
}
///
/// Gets and sets the property ElapsedTimeInSeconds.
///
/// The amount of time an in-progress snapshot backup has been running, or the amount
/// of time it took a completed backup to finish.
///
///
public long ElapsedTimeInSeconds
{
get { return this._elapsedTimeInSeconds.GetValueOrDefault(); }
set { this._elapsedTimeInSeconds = value; }
}
// Check to see if ElapsedTimeInSeconds property is set
internal bool IsSetElapsedTimeInSeconds()
{
return this._elapsedTimeInSeconds.HasValue;
}
///
/// Gets and sets the property Encrypted.
///
/// If true
, the data in the snapshot is encrypted at rest.
///
///
public bool Encrypted
{
get { return this._encrypted.GetValueOrDefault(); }
set { this._encrypted = value; }
}
// Check to see if Encrypted property is set
internal bool IsSetEncrypted()
{
return this._encrypted.HasValue;
}
///
/// Gets and sets the property EncryptedWithHSM.
///
/// A boolean that indicates whether the snapshot data is encrypted using the HSM keys
/// of the source cluster. true
indicates that the data is encrypted using
/// HSM keys.
///
///
public bool EncryptedWithHSM
{
get { return this._encryptedWithHSM.GetValueOrDefault(); }
set { this._encryptedWithHSM = value; }
}
// Check to see if EncryptedWithHSM property is set
internal bool IsSetEncryptedWithHSM()
{
return this._encryptedWithHSM.HasValue;
}
///
/// Gets and sets the property EngineFullVersion.
///
/// The cluster version of the cluster used to create the snapshot. For example, 1.0.15503.
///
///
///
[AWSProperty(Max=2147483647)]
public string EngineFullVersion
{
get { return this._engineFullVersion; }
set { this._engineFullVersion = value; }
}
// Check to see if EngineFullVersion property is set
internal bool IsSetEngineFullVersion()
{
return this._engineFullVersion != null;
}
///
/// Gets and sets the property EnhancedVpcRouting.
///
/// An option that specifies whether to create the cluster with enhanced VPC routing enabled.
/// To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC.
/// For more information, see Enhanced
/// VPC Routing in the Amazon Redshift Cluster Management Guide.
///
///
///
/// If this option is true
, enhanced VPC routing is enabled.
///
///
///
/// Default: false
///
///
public bool EnhancedVpcRouting
{
get { return this._enhancedVpcRouting.GetValueOrDefault(); }
set { this._enhancedVpcRouting = value; }
}
// Check to see if EnhancedVpcRouting property is set
internal bool IsSetEnhancedVpcRouting()
{
return this._enhancedVpcRouting.HasValue;
}
///
/// Gets and sets the property EstimatedSecondsToCompletion.
///
/// The estimate of the time remaining before the snapshot backup will complete. Returns
/// 0
for a completed backup.
///
///
public long EstimatedSecondsToCompletion
{
get { return this._estimatedSecondsToCompletion.GetValueOrDefault(); }
set { this._estimatedSecondsToCompletion = value; }
}
// Check to see if EstimatedSecondsToCompletion property is set
internal bool IsSetEstimatedSecondsToCompletion()
{
return this._estimatedSecondsToCompletion.HasValue;
}
///
/// Gets and sets the property KmsKeyId.
///
/// The Key Management Service (KMS) key ID of the encryption key that was used to encrypt
/// data in the cluster from which the snapshot was taken.
///
///
[AWSProperty(Max=2147483647)]
public string KmsKeyId
{
get { return this._kmsKeyId; }
set { this._kmsKeyId = value; }
}
// Check to see if KmsKeyId property is set
internal bool IsSetKmsKeyId()
{
return this._kmsKeyId != null;
}
///
/// Gets and sets the property MaintenanceTrackName.
///
/// The name of the maintenance track for the snapshot.
///
///
[AWSProperty(Max=2147483647)]
public string MaintenanceTrackName
{
get { return this._maintenanceTrackName; }
set { this._maintenanceTrackName = value; }
}
// Check to see if MaintenanceTrackName property is set
internal bool IsSetMaintenanceTrackName()
{
return this._maintenanceTrackName != null;
}
///
/// Gets and sets the property ManualSnapshotRemainingDays.
///
/// The number of days until a manual snapshot will pass its retention period.
///
///
public int ManualSnapshotRemainingDays
{
get { return this._manualSnapshotRemainingDays.GetValueOrDefault(); }
set { this._manualSnapshotRemainingDays = value; }
}
// Check to see if ManualSnapshotRemainingDays property is set
internal bool IsSetManualSnapshotRemainingDays()
{
return this._manualSnapshotRemainingDays.HasValue;
}
///
/// Gets and sets the property ManualSnapshotRetentionPeriod.
///
/// The number of days that a manual snapshot is retained. If the value is -1, the manual
/// snapshot is retained indefinitely.
///
///
///
/// The value must be either -1 or an integer between 1 and 3,653.
///
///
public int ManualSnapshotRetentionPeriod
{
get { return this._manualSnapshotRetentionPeriod.GetValueOrDefault(); }
set { this._manualSnapshotRetentionPeriod = value; }
}
// Check to see if ManualSnapshotRetentionPeriod property is set
internal bool IsSetManualSnapshotRetentionPeriod()
{
return this._manualSnapshotRetentionPeriod.HasValue;
}
///
/// Gets and sets the property MasterUsername.
///
/// The admin user name for the cluster.
///
///
[AWSProperty(Max=2147483647)]
public string MasterUsername
{
get { return this._masterUsername; }
set { this._masterUsername = value; }
}
// Check to see if MasterUsername property is set
internal bool IsSetMasterUsername()
{
return this._masterUsername != null;
}
///
/// Gets and sets the property NodeType.
///
/// The node type of the nodes in the cluster.
///
///
[AWSProperty(Max=2147483647)]
public string NodeType
{
get { return this._nodeType; }
set { this._nodeType = value; }
}
// Check to see if NodeType property is set
internal bool IsSetNodeType()
{
return this._nodeType != null;
}
///
/// Gets and sets the property NumberOfNodes.
///
/// The number of nodes in the cluster.
///
///
public int NumberOfNodes
{
get { return this._numberOfNodes.GetValueOrDefault(); }
set { this._numberOfNodes = value; }
}
// Check to see if NumberOfNodes property is set
internal bool IsSetNumberOfNodes()
{
return this._numberOfNodes.HasValue;
}
///
/// Gets and sets the property OwnerAccount.
///
/// For manual snapshots, the Amazon Web Services account used to create or copy the snapshot.
/// For automatic snapshots, the owner of the cluster. The owner can perform all snapshot
/// actions, such as sharing a manual snapshot.
///
///
[AWSProperty(Max=2147483647)]
public string OwnerAccount
{
get { return this._ownerAccount; }
set { this._ownerAccount = value; }
}
// Check to see if OwnerAccount property is set
internal bool IsSetOwnerAccount()
{
return this._ownerAccount != null;
}
///
/// Gets and sets the property Port.
///
/// The port that the cluster is listening on.
///
///
public int Port
{
get { return this._port.GetValueOrDefault(); }
set { this._port = value; }
}
// Check to see if Port property is set
internal bool IsSetPort()
{
return this._port.HasValue;
}
///
/// Gets and sets the property RestorableNodeTypes.
///
/// The list of node types that this cluster snapshot is able to restore into.
///
///
public List RestorableNodeTypes
{
get { return this._restorableNodeTypes; }
set { this._restorableNodeTypes = value; }
}
// Check to see if RestorableNodeTypes property is set
internal bool IsSetRestorableNodeTypes()
{
return this._restorableNodeTypes != null && this._restorableNodeTypes.Count > 0;
}
///
/// Gets and sets the property SnapshotCreateTime.
///
/// The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains
/// a copy of the cluster data as of this exact time.
///
///
public DateTime SnapshotCreateTime
{
get { return this._snapshotCreateTime.GetValueOrDefault(); }
set { this._snapshotCreateTime = value; }
}
// Check to see if SnapshotCreateTime property is set
internal bool IsSetSnapshotCreateTime()
{
return this._snapshotCreateTime.HasValue;
}
///
/// Gets and sets the property SnapshotIdentifier.
///
/// The snapshot identifier that is provided in the request.
///
///
[AWSProperty(Max=2147483647)]
public string SnapshotIdentifier
{
get { return this._snapshotIdentifier; }
set { this._snapshotIdentifier = value; }
}
// Check to see if SnapshotIdentifier property is set
internal bool IsSetSnapshotIdentifier()
{
return this._snapshotIdentifier != null;
}
///
/// Gets and sets the property SnapshotRetentionStartTime.
///
/// A timestamp representing the start of the retention period for the snapshot.
///
///
public DateTime SnapshotRetentionStartTime
{
get { return this._snapshotRetentionStartTime.GetValueOrDefault(); }
set { this._snapshotRetentionStartTime = value; }
}
// Check to see if SnapshotRetentionStartTime property is set
internal bool IsSetSnapshotRetentionStartTime()
{
return this._snapshotRetentionStartTime.HasValue;
}
///
/// Gets and sets the property SnapshotType.
///
/// The snapshot type. Snapshots created using CreateClusterSnapshot and CopyClusterSnapshot
/// are of type "manual".
///
///
[AWSProperty(Max=2147483647)]
public string SnapshotType
{
get { return this._snapshotType; }
set { this._snapshotType = value; }
}
// Check to see if SnapshotType property is set
internal bool IsSetSnapshotType()
{
return this._snapshotType != null;
}
///
/// Gets and sets the property SourceRegion.
///
/// The source region from which the snapshot was copied.
///
///
[AWSProperty(Max=2147483647)]
public string SourceRegion
{
get { return this._sourceRegion; }
set { this._sourceRegion = value; }
}
// Check to see if SourceRegion property is set
internal bool IsSetSourceRegion()
{
return this._sourceRegion != null;
}
///
/// Gets and sets the property Status.
///
/// The snapshot status. The value of the status depends on the API operation used:
///
///
///
[AWSProperty(Max=2147483647)]
public string Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property Tags.
///
/// The list of tags for the cluster snapshot.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property TotalBackupSizeInMegaBytes.
///
/// The size of the complete set of backup data that would be used to restore the cluster.
///
///
public double TotalBackupSizeInMegaBytes
{
get { return this._totalBackupSizeInMegaBytes.GetValueOrDefault(); }
set { this._totalBackupSizeInMegaBytes = value; }
}
// Check to see if TotalBackupSizeInMegaBytes property is set
internal bool IsSetTotalBackupSizeInMegaBytes()
{
return this._totalBackupSizeInMegaBytes.HasValue;
}
///
/// Gets and sets the property VpcId.
///
/// The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise,
/// this field is not in the output.
///
///
[AWSProperty(Max=2147483647)]
public string VpcId
{
get { return this._vpcId; }
set { this._vpcId = value; }
}
// Check to see if VpcId property is set
internal bool IsSetVpcId()
{
return this._vpcId != null;
}
}
}