/* * 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 { /// /// Contains all of the attributes of a specific cluster. /// public partial class CacheCluster { private string _arn; private bool? _atRestEncryptionEnabled; private bool? _authTokenEnabled; private DateTime? _authTokenLastModifiedDate; private bool? _autoMinorVersionUpgrade; private DateTime? _cacheClusterCreateTime; private string _cacheClusterId; private string _cacheClusterStatus; private List _cacheNodes = new List(); private string _cacheNodeType; private CacheParameterGroupStatus _cacheParameterGroup; private List _cacheSecurityGroups = new List(); private string _cacheSubnetGroupName; private string _clientDownloadLandingPage; private Endpoint _configurationEndpoint; private string _engine; private string _engineVersion; private IpDiscovery _ipDiscovery; private List _logDeliveryConfigurations = new List(); private NetworkType _networkType; private NotificationConfiguration _notificationConfiguration; private int? _numCacheNodes; private PendingModifiedValues _pendingModifiedValues; private string _preferredAvailabilityZone; private string _preferredMaintenanceWindow; private string _preferredOutpostArn; private string _replicationGroupId; private bool? _replicationGroupLogDeliveryEnabled; private List _securityGroups = new List(); private int? _snapshotRetentionLimit; private string _snapshotWindow; private bool? _transitEncryptionEnabled; private TransitEncryptionMode _transitEncryptionMode; /// /// Gets and sets the property ARN. /// /// The ARN (Amazon Resource Name) of the cache cluster. /// /// 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 AtRestEncryptionEnabled. /// /// A flag that enables encryption at-rest when set to true. /// /// /// /// You cannot modify the value of AtRestEncryptionEnabled after the cluster /// is created. To enable at-rest encryption on a cluster you must set AtRestEncryptionEnabled /// to true when you create a cluster. /// /// /// /// Required: Only available when creating a replication group in an Amazon VPC /// using redis version 3.2.6, 4.x or later. /// /// /// /// Default: false /// /// public bool AtRestEncryptionEnabled { get { return this._atRestEncryptionEnabled.GetValueOrDefault(); } set { this._atRestEncryptionEnabled = value; } } // Check to see if AtRestEncryptionEnabled property is set internal bool IsSetAtRestEncryptionEnabled() { return this._atRestEncryptionEnabled.HasValue; } /// /// Gets and sets the property AuthTokenEnabled. /// /// A flag that enables using an AuthToken (password) when issuing Redis /// commands. /// /// /// /// Default: false /// /// public bool AuthTokenEnabled { get { return this._authTokenEnabled.GetValueOrDefault(); } set { this._authTokenEnabled = value; } } // Check to see if AuthTokenEnabled property is set internal bool IsSetAuthTokenEnabled() { return this._authTokenEnabled.HasValue; } /// /// Gets and sets the property AuthTokenLastModifiedDate. /// /// The date the auth token was last modified /// /// public DateTime AuthTokenLastModifiedDate { get { return this._authTokenLastModifiedDate.GetValueOrDefault(); } set { this._authTokenLastModifiedDate = value; } } // Check to see if AuthTokenLastModifiedDate property is set internal bool IsSetAuthTokenLastModifiedDate() { return this._authTokenLastModifiedDate.HasValue; } /// /// 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 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 cluster. This identifier is a unique key that /// identifies a 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 CacheClusterStatus. /// /// The current state of this cluster, one of the following values: available, /// creating, deleted, deleting, incompatible-network, /// modifying, rebooting cluster nodes, restore-failed, /// or snapshotting. /// /// public string CacheClusterStatus { get { return this._cacheClusterStatus; } set { this._cacheClusterStatus = value; } } // Check to see if CacheClusterStatus property is set internal bool IsSetCacheClusterStatus() { return this._cacheClusterStatus != null; } /// /// Gets and sets the property CacheNodes. /// /// A list of cache nodes that are members of the cluster. /// /// public List CacheNodes { get { return this._cacheNodes; } set { this._cacheNodes = value; } } // Check to see if CacheNodes property is set internal bool IsSetCacheNodes() { return this._cacheNodes != null && this._cacheNodes.Count > 0; } /// /// Gets and sets the property CacheNodeType. /// /// The name of the compute and memory capacity node type for the 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 CacheParameterGroup. /// /// Status of the cache parameter group. /// /// public CacheParameterGroupStatus CacheParameterGroup { get { return this._cacheParameterGroup; } set { this._cacheParameterGroup = value; } } // Check to see if CacheParameterGroup property is set internal bool IsSetCacheParameterGroup() { return this._cacheParameterGroup != null; } /// /// Gets and sets the property CacheSecurityGroups. /// /// A list of cache security group elements, composed of name and status sub-elements. /// /// public List CacheSecurityGroups { get { return this._cacheSecurityGroups; } set { this._cacheSecurityGroups = value; } } // Check to see if CacheSecurityGroups property is set internal bool IsSetCacheSecurityGroups() { return this._cacheSecurityGroups != null && this._cacheSecurityGroups.Count > 0; } /// /// Gets and sets the property CacheSubnetGroupName. /// /// The name of the cache subnet group associated with the 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 ClientDownloadLandingPage. /// /// The URL of the web page where you can download the latest ElastiCache client library. /// /// public string ClientDownloadLandingPage { get { return this._clientDownloadLandingPage; } set { this._clientDownloadLandingPage = value; } } // Check to see if ClientDownloadLandingPage property is set internal bool IsSetClientDownloadLandingPage() { return this._clientDownloadLandingPage != null; } /// /// Gets and sets the property ConfigurationEndpoint. /// /// Represents a Memcached cluster endpoint which can be used by an application to connect /// to any node in the cluster. The configuration endpoint will always have .cfg /// in it. /// /// /// /// Example: mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211 /// /// public Endpoint ConfigurationEndpoint { get { return this._configurationEndpoint; } set { this._configurationEndpoint = value; } } // Check to see if ConfigurationEndpoint property is set internal bool IsSetConfigurationEndpoint() { return this._configurationEndpoint != null; } /// /// Gets and sets the property Engine. /// /// The name of the cache engine (memcached or redis) to be /// used for this 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 that is used in this 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 IpDiscovery. /// /// The network type associated with the cluster, either ipv4 | ipv6. /// IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached /// engine version 1.6.6 on all instances built on the Nitro /// system. /// /// public IpDiscovery IpDiscovery { get { return this._ipDiscovery; } set { this._ipDiscovery = value; } } // Check to see if IpDiscovery property is set internal bool IsSetIpDiscovery() { return this._ipDiscovery != null; } /// /// Gets and sets the property LogDeliveryConfigurations. /// /// Returns the destination, format and type of the logs. /// /// public List LogDeliveryConfigurations { get { return this._logDeliveryConfigurations; } set { this._logDeliveryConfigurations = value; } } // Check to see if LogDeliveryConfigurations property is set internal bool IsSetLogDeliveryConfigurations() { return this._logDeliveryConfigurations != null && this._logDeliveryConfigurations.Count > 0; } /// /// Gets and sets the property NetworkType. /// /// Must be either ipv4 | ipv6 | dual_stack. IPv6 /// is supported for workloads using Redis engine version 6.2 onward or Memcached engine /// version 1.6.6 on all instances built on the Nitro /// system. /// /// public NetworkType NetworkType { get { return this._networkType; } set { this._networkType = value; } } // Check to see if NetworkType property is set internal bool IsSetNetworkType() { return this._networkType != null; } /// /// Gets and sets the property NotificationConfiguration. /// /// Describes a notification topic and its status. Notification topics are used for publishing /// ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). /// /// /// public NotificationConfiguration NotificationConfiguration { get { return this._notificationConfiguration; } set { this._notificationConfiguration = value; } } // Check to see if NotificationConfiguration property is set internal bool IsSetNotificationConfiguration() { return this._notificationConfiguration != null; } /// /// Gets and sets the property NumCacheNodes. /// /// The number of cache nodes in the 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 PendingModifiedValues. /// public PendingModifiedValues PendingModifiedValues { get { return this._pendingModifiedValues; } set { this._pendingModifiedValues = value; } } // Check to see if PendingModifiedValues property is set internal bool IsSetPendingModifiedValues() { return this._pendingModifiedValues != null; } /// /// Gets and sets the property PreferredAvailabilityZone. /// /// The name of the Availability Zone in which the cluster is located or "Multiple" if /// the cache nodes are located in different Availability Zones. /// /// 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 outpost ARN in which the cache cluster is created. /// /// 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 ReplicationGroupId. /// /// The replication group to which this cluster belongs. If this field is empty, the cluster /// is not associated with any 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 ReplicationGroupLogDeliveryEnabled. /// /// A boolean value indicating whether log delivery is enabled for the replication group. /// /// public bool ReplicationGroupLogDeliveryEnabled { get { return this._replicationGroupLogDeliveryEnabled.GetValueOrDefault(); } set { this._replicationGroupLogDeliveryEnabled = value; } } // Check to see if ReplicationGroupLogDeliveryEnabled property is set internal bool IsSetReplicationGroupLogDeliveryEnabled() { return this._replicationGroupLogDeliveryEnabled.HasValue; } /// /// Gets and sets the property SecurityGroups. /// /// A list of VPC Security Groups associated with the cluster. /// /// public List SecurityGroups { get { return this._securityGroups; } set { this._securityGroups = value; } } // Check to see if SecurityGroups property is set internal bool IsSetSecurityGroups() { return this._securityGroups != null && this._securityGroups.Count > 0; } /// /// Gets and sets the property SnapshotRetentionLimit. /// /// The number of days for which ElastiCache retains automatic cluster snapshots before /// deleting them. For example, if you set SnapshotRetentionLimit to 5, a /// snapshot that was taken today is retained for 5 days before being deleted. /// /// /// /// 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 SnapshotWindow. /// /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot /// of your cluster. /// /// /// /// Example: 05:00-09:00 /// /// 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 TransitEncryptionEnabled. /// /// A flag that enables in-transit encryption when set to true. /// /// /// /// Required: Only available when creating a replication group in an Amazon VPC /// using redis version 3.2.6, 4.x or later. /// /// /// /// Default: false /// /// public bool TransitEncryptionEnabled { get { return this._transitEncryptionEnabled.GetValueOrDefault(); } set { this._transitEncryptionEnabled = value; } } // Check to see if TransitEncryptionEnabled property is set internal bool IsSetTransitEncryptionEnabled() { return this._transitEncryptionEnabled.HasValue; } /// /// Gets and sets the property TransitEncryptionMode. /// /// A setting that allows you to migrate your clients to use in-transit encryption, with /// no downtime. /// /// public TransitEncryptionMode TransitEncryptionMode { get { return this._transitEncryptionMode; } set { this._transitEncryptionMode = value; } } // Check to see if TransitEncryptionMode property is set internal bool IsSetTransitEncryptionMode() { return this._transitEncryptionMode != null; } } }