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