/*
* 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 elasticache-2015-02-02.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.ElastiCache.Model
{
///
/// Represents a copy of an entire Redis cluster as of the time when the snapshot was
/// taken.
///
public partial class Snapshot
{
private string _arn;
private AutomaticFailoverStatus _automaticFailover;
private bool? _autoMinorVersionUpgrade;
private DateTime? _cacheClusterCreateTime;
private string _cacheClusterId;
private string _cacheNodeType;
private string _cacheParameterGroupName;
private string _cacheSubnetGroupName;
private DataTieringStatus _dataTiering;
private string _engine;
private string _engineVersion;
private string _kmsKeyId;
private List _nodeSnapshots = new List();
private int? _numCacheNodes;
private int? _numNodeGroups;
private int? _port;
private string _preferredAvailabilityZone;
private string _preferredMaintenanceWindow;
private string _preferredOutpostArn;
private string _replicationGroupDescription;
private string _replicationGroupId;
private string _snapshotName;
private int? _snapshotRetentionLimit;
private string _snapshotSource;
private string _snapshotStatus;
private string _snapshotWindow;
private string _topicArn;
private string _vpcId;
///
/// Gets and sets the property ARN.
///
/// The ARN (Amazon Resource Name) of the snapshot.
///
///
public string ARN
{
get { return this._arn; }
set { this._arn = value; }
}
// Check to see if ARN property is set
internal bool IsSetARN()
{
return this._arn != null;
}
///
/// Gets and sets the property AutomaticFailover.
///
/// Indicates the status of automatic failover for the source Redis replication group.
///
///
public AutomaticFailoverStatus AutomaticFailover
{
get { return this._automaticFailover; }
set { this._automaticFailover = value; }
}
// Check to see if AutomaticFailover property is set
internal bool IsSetAutomaticFailover()
{
return this._automaticFailover != null;
}
///
/// Gets and sets the property AutoMinorVersionUpgrade.
///
/// If you are running Redis engine version 6.0 or later, set this parameter to yes if
/// you want to opt-in to the next auto minor version upgrade campaign. This parameter
/// is disabled for previous versions.
///
///
public bool AutoMinorVersionUpgrade
{
get { return this._autoMinorVersionUpgrade.GetValueOrDefault(); }
set { this._autoMinorVersionUpgrade = value; }
}
// Check to see if AutoMinorVersionUpgrade property is set
internal bool IsSetAutoMinorVersionUpgrade()
{
return this._autoMinorVersionUpgrade.HasValue;
}
///
/// Gets and sets the property CacheClusterCreateTime.
///
/// The date and time when the source cluster was created.
///
///
public DateTime CacheClusterCreateTime
{
get { return this._cacheClusterCreateTime.GetValueOrDefault(); }
set { this._cacheClusterCreateTime = value; }
}
// Check to see if CacheClusterCreateTime property is set
internal bool IsSetCacheClusterCreateTime()
{
return this._cacheClusterCreateTime.HasValue;
}
///
/// Gets and sets the property CacheClusterId.
///
/// The user-supplied identifier of the source cluster.
///
///
public string CacheClusterId
{
get { return this._cacheClusterId; }
set { this._cacheClusterId = value; }
}
// Check to see if CacheClusterId property is set
internal bool IsSetCacheClusterId()
{
return this._cacheClusterId != null;
}
///
/// Gets and sets the property CacheNodeType.
///
/// The name of the compute and memory capacity node type for the source cluster.
///
///
///
/// The following node types are supported by ElastiCache. Generally speaking, the current
/// generation types provide more memory and computational power at lower cost when compared
/// to their equivalent previous generation counterparts.
///
/// -
///
/// General purpose:
///
///
-
///
/// Current generation:
///
///
///
/// M6g node types (available only for Redis engine version 5.0.6 onward and for
/// Memcached engine version 1.5.16 onward):
cache.m6g.large
, cache.m6g.xlarge
,
/// cache.m6g.2xlarge
, cache.m6g.4xlarge
, cache.m6g.8xlarge
,
/// cache.m6g.12xlarge
, cache.m6g.16xlarge
///
///
///
/// For region availability, see Supported
/// Node Types
///
///
///
/// M5 node types: cache.m5.large
, cache.m5.xlarge
,
/// cache.m5.2xlarge
, cache.m5.4xlarge
, cache.m5.12xlarge
,
/// cache.m5.24xlarge
///
///
///
/// M4 node types: cache.m4.large
, cache.m4.xlarge
,
/// cache.m4.2xlarge
, cache.m4.4xlarge
, cache.m4.10xlarge
///
///
///
///
/// T4g node types (available only for Redis engine version 5.0.6 onward and Memcached
/// engine version 1.5.16 onward): cache.t4g.micro
, cache.t4g.small
,
/// cache.t4g.medium
///
///
///
/// T3 node types: cache.t3.micro
, cache.t3.small
, cache.t3.medium
///
///
///
///
/// T2 node types: cache.t2.micro
, cache.t2.small
, cache.t2.medium
///
///
/// -
///
/// Previous generation: (not recommended. Existing clusters are still supported but creation
/// of new clusters is not supported for these types.)
///
///
///
/// T1 node types:
cache.t1.micro
///
///
///
/// M1 node types: cache.m1.small
, cache.m1.medium
,
/// cache.m1.large
, cache.m1.xlarge
///
///
///
/// M3 node types: cache.m3.medium
, cache.m3.large
,
/// cache.m3.xlarge
, cache.m3.2xlarge
///
///
-
///
/// Compute optimized:
///
///
-
///
/// Previous generation: (not recommended. Existing clusters are still supported but creation
/// of new clusters is not supported for these types.)
///
///
///
/// C1 node types:
cache.c1.xlarge
///
///
-
///
/// Memory optimized:
///
///
-
///
/// Current generation:
///
///
///
/// R6g node types (available only for Redis engine version 5.0.6 onward and for
/// Memcached engine version 1.5.16 onward).
///
///
///
///
cache.r6g.large
, cache.r6g.xlarge
, cache.r6g.2xlarge
,
/// cache.r6g.4xlarge
, cache.r6g.8xlarge
, cache.r6g.12xlarge
,
/// cache.r6g.16xlarge
///
///
///
/// For region availability, see Supported
/// Node Types
///
///
///
/// R5 node types: cache.r5.large
, cache.r5.xlarge
,
/// cache.r5.2xlarge
, cache.r5.4xlarge
, cache.r5.12xlarge
,
/// cache.r5.24xlarge
///
///
///
/// R4 node types: cache.r4.large
, cache.r4.xlarge
,
/// cache.r4.2xlarge
, cache.r4.4xlarge
, cache.r4.8xlarge
,
/// cache.r4.16xlarge
///
/// -
///
/// Previous generation: (not recommended. Existing clusters are still supported but creation
/// of new clusters is not supported for these types.)
///
///
///
/// M2 node types:
cache.m2.xlarge
, cache.m2.2xlarge
,
/// cache.m2.4xlarge
///
///
///
/// R3 node types: cache.r3.large
, cache.r3.xlarge
,
/// cache.r3.2xlarge
, cache.r3.4xlarge
, cache.r3.8xlarge
///
///
///
///
/// Additional node type info
///
/// -
///
/// All current generation instance types are created in Amazon VPC by default.
///
///
-
///
/// Redis append-only files (AOF) are not supported for T1 or T2 instances.
///
///
-
///
/// Redis Multi-AZ with automatic failover is not supported on T1 instances.
///
///
-
///
/// Redis configuration variables
appendonly
and appendfsync
/// are not supported on Redis version 2.8.22 and later.
///
///
///
public string CacheNodeType
{
get { return this._cacheNodeType; }
set { this._cacheNodeType = value; }
}
// Check to see if CacheNodeType property is set
internal bool IsSetCacheNodeType()
{
return this._cacheNodeType != null;
}
///
/// Gets and sets the property CacheParameterGroupName.
///
/// The cache parameter group that is associated with the source cluster.
///
///
public string CacheParameterGroupName
{
get { return this._cacheParameterGroupName; }
set { this._cacheParameterGroupName = value; }
}
// Check to see if CacheParameterGroupName property is set
internal bool IsSetCacheParameterGroupName()
{
return this._cacheParameterGroupName != null;
}
///
/// Gets and sets the property CacheSubnetGroupName.
///
/// The name of the cache subnet group associated with the source cluster.
///
///
public string CacheSubnetGroupName
{
get { return this._cacheSubnetGroupName; }
set { this._cacheSubnetGroupName = value; }
}
// Check to see if CacheSubnetGroupName property is set
internal bool IsSetCacheSubnetGroupName()
{
return this._cacheSubnetGroupName != null;
}
///
/// Gets and sets the property DataTiering.
///
/// Enables data tiering. Data tiering is only supported for replication groups using
/// the r6gd node type. This parameter must be set to true when using r6gd nodes. For
/// more information, see Data
/// tiering.
///
///
public DataTieringStatus DataTiering
{
get { return this._dataTiering; }
set { this._dataTiering = value; }
}
// Check to see if DataTiering property is set
internal bool IsSetDataTiering()
{
return this._dataTiering != null;
}
///
/// Gets and sets the property Engine.
///
/// The name of the cache engine (memcached
or redis
) used by
/// the source cluster.
///
///
public string Engine
{
get { return this._engine; }
set { this._engine = value; }
}
// Check to see if Engine property is set
internal bool IsSetEngine()
{
return this._engine != null;
}
///
/// Gets and sets the property EngineVersion.
///
/// The version of the cache engine version that is used by the source cluster.
///
///
public string EngineVersion
{
get { return this._engineVersion; }
set { this._engineVersion = value; }
}
// Check to see if EngineVersion property is set
internal bool IsSetEngineVersion()
{
return this._engineVersion != null;
}
///
/// Gets and sets the property KmsKeyId.
///
/// The ID of the KMS key used to encrypt the snapshot.
///
///
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 NodeSnapshots.
///
/// A list of the cache nodes in the source cluster.
///
///
public List NodeSnapshots
{
get { return this._nodeSnapshots; }
set { this._nodeSnapshots = value; }
}
// Check to see if NodeSnapshots property is set
internal bool IsSetNodeSnapshots()
{
return this._nodeSnapshots != null && this._nodeSnapshots.Count > 0;
}
///
/// Gets and sets the property NumCacheNodes.
///
/// The number of cache nodes in the source cluster.
///
///
///
/// For clusters running Redis, this value must be 1. For clusters running Memcached,
/// this value must be between 1 and 40.
///
///
public int NumCacheNodes
{
get { return this._numCacheNodes.GetValueOrDefault(); }
set { this._numCacheNodes = value; }
}
// Check to see if NumCacheNodes property is set
internal bool IsSetNumCacheNodes()
{
return this._numCacheNodes.HasValue;
}
///
/// Gets and sets the property NumNodeGroups.
///
/// The number of node groups (shards) in this snapshot. When restoring from a snapshot,
/// the number of node groups (shards) in the snapshot and in the restored replication
/// group must be the same.
///
///
public int NumNodeGroups
{
get { return this._numNodeGroups.GetValueOrDefault(); }
set { this._numNodeGroups = value; }
}
// Check to see if NumNodeGroups property is set
internal bool IsSetNumNodeGroups()
{
return this._numNodeGroups.HasValue;
}
///
/// Gets and sets the property Port.
///
/// The port number used by each cache nodes in the source cluster.
///
///
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 PreferredAvailabilityZone.
///
/// The name of the Availability Zone in which the source cluster is located.
///
///
public string PreferredAvailabilityZone
{
get { return this._preferredAvailabilityZone; }
set { this._preferredAvailabilityZone = value; }
}
// Check to see if PreferredAvailabilityZone property is set
internal bool IsSetPreferredAvailabilityZone()
{
return this._preferredAvailabilityZone != null;
}
///
/// Gets and sets the property PreferredMaintenanceWindow.
///
/// Specifies the weekly time range during which maintenance on the cluster is performed.
/// It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC).
/// The minimum maintenance window is a 60 minute period.
///
///
///
/// Valid values for ddd
are:
///
/// -
///
///
sun
///
/// -
///
///
mon
///
/// -
///
///
tue
///
/// -
///
///
wed
///
/// -
///
///
thu
///
/// -
///
///
fri
///
/// -
///
///
sat
///
///
///
/// Example: sun:23:00-mon:01:30
///
///
public string PreferredMaintenanceWindow
{
get { return this._preferredMaintenanceWindow; }
set { this._preferredMaintenanceWindow = value; }
}
// Check to see if PreferredMaintenanceWindow property is set
internal bool IsSetPreferredMaintenanceWindow()
{
return this._preferredMaintenanceWindow != null;
}
///
/// Gets and sets the property PreferredOutpostArn.
///
/// The ARN (Amazon Resource Name) of the preferred outpost.
///
///
public string PreferredOutpostArn
{
get { return this._preferredOutpostArn; }
set { this._preferredOutpostArn = value; }
}
// Check to see if PreferredOutpostArn property is set
internal bool IsSetPreferredOutpostArn()
{
return this._preferredOutpostArn != null;
}
///
/// Gets and sets the property ReplicationGroupDescription.
///
/// A description of the source replication group.
///
///
public string ReplicationGroupDescription
{
get { return this._replicationGroupDescription; }
set { this._replicationGroupDescription = value; }
}
// Check to see if ReplicationGroupDescription property is set
internal bool IsSetReplicationGroupDescription()
{
return this._replicationGroupDescription != null;
}
///
/// Gets and sets the property ReplicationGroupId.
///
/// The unique identifier of the source replication group.
///
///
public string ReplicationGroupId
{
get { return this._replicationGroupId; }
set { this._replicationGroupId = value; }
}
// Check to see if ReplicationGroupId property is set
internal bool IsSetReplicationGroupId()
{
return this._replicationGroupId != null;
}
///
/// Gets and sets the property SnapshotName.
///
/// The name of a snapshot. For an automatic snapshot, the name is system-generated. For
/// a manual snapshot, this is the user-provided name.
///
///
public string SnapshotName
{
get { return this._snapshotName; }
set { this._snapshotName = value; }
}
// Check to see if SnapshotName property is set
internal bool IsSetSnapshotName()
{
return this._snapshotName != null;
}
///
/// Gets and sets the property SnapshotRetentionLimit.
///
/// For an automatic snapshot, the number of days for which ElastiCache retains the snapshot
/// before deleting it.
///
///
///
/// For manual snapshots, this field reflects the SnapshotRetentionLimit
/// for the source cluster when the snapshot was created. This field is otherwise ignored:
/// Manual snapshots do not expire, and can only be deleted using the DeleteSnapshot
/// operation.
///
///
///
/// Important If the value of SnapshotRetentionLimit is set to zero (0), backups
/// are turned off.
///
///
public int SnapshotRetentionLimit
{
get { return this._snapshotRetentionLimit.GetValueOrDefault(); }
set { this._snapshotRetentionLimit = value; }
}
// Check to see if SnapshotRetentionLimit property is set
internal bool IsSetSnapshotRetentionLimit()
{
return this._snapshotRetentionLimit.HasValue;
}
///
/// Gets and sets the property SnapshotSource.
///
/// Indicates whether the snapshot is from an automatic backup (automated
)
/// or was created manually (manual
).
///
///
public string SnapshotSource
{
get { return this._snapshotSource; }
set { this._snapshotSource = value; }
}
// Check to see if SnapshotSource property is set
internal bool IsSetSnapshotSource()
{
return this._snapshotSource != null;
}
///
/// Gets and sets the property SnapshotStatus.
///
/// The status of the snapshot. Valid values: creating
| available
/// | restoring
| copying
| deleting
.
///
///
public string SnapshotStatus
{
get { return this._snapshotStatus; }
set { this._snapshotStatus = value; }
}
// Check to see if SnapshotStatus property is set
internal bool IsSetSnapshotStatus()
{
return this._snapshotStatus != null;
}
///
/// Gets and sets the property SnapshotWindow.
///
/// The daily time range during which ElastiCache takes daily snapshots of the source
/// cluster.
///
///
public string SnapshotWindow
{
get { return this._snapshotWindow; }
set { this._snapshotWindow = value; }
}
// Check to see if SnapshotWindow property is set
internal bool IsSetSnapshotWindow()
{
return this._snapshotWindow != null;
}
///
/// Gets and sets the property TopicArn.
///
/// The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing
/// notifications.
///
///
public string TopicArn
{
get { return this._topicArn; }
set { this._topicArn = value; }
}
// Check to see if TopicArn property is set
internal bool IsSetTopicArn()
{
return this._topicArn != null;
}
///
/// Gets and sets the property VpcId.
///
/// The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for
/// the source cluster.
///
///
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;
}
}
}