/* * 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 Redis replication group. /// public partial class ReplicationGroup { private string _arn; private bool? _atRestEncryptionEnabled; private bool? _authTokenEnabled; private DateTime? _authTokenLastModifiedDate; private AutomaticFailoverStatus _automaticFailover; private bool? _autoMinorVersionUpgrade; private string _cacheNodeType; private bool? _clusterEnabled; private ClusterMode _clusterMode; private Endpoint _configurationEndpoint; private DataTieringStatus _dataTiering; private string _description; private GlobalReplicationGroupInfo _globalReplicationGroupInfo; private IpDiscovery _ipDiscovery; private string _kmsKeyId; private List _logDeliveryConfigurations = new List(); private List _memberClusters = new List(); private List _memberClustersOutpostArns = new List(); private MultiAZStatus _multiAZ; private NetworkType _networkType; private List _nodeGroups = new List(); private ReplicationGroupPendingModifiedValues _pendingModifiedValues; private DateTime? _replicationGroupCreateTime; private string _replicationGroupId; private int? _snapshotRetentionLimit; private string _snapshottingClusterId; private string _snapshotWindow; private string _status; private bool? _transitEncryptionEnabled; private TransitEncryptionMode _transitEncryptionMode; private List _userGroupIds = new List(); /// /// Gets and sets the property ARN. /// /// The ARN (Amazon Resource Name) of the replication group. /// /// 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 encryption at-rest 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 AutomaticFailover. /// /// Indicates the status of automatic failover for this 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 CacheNodeType. /// /// The name of the compute and memory capacity node type for each node in the replication /// group. /// /// 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 ClusterEnabled. /// /// A flag indicating whether or not this replication group is cluster enabled; i.e., /// whether its data can be partitioned across multiple shards (API/CLI: node groups). /// /// /// /// Valid values: true | false /// /// public bool ClusterEnabled { get { return this._clusterEnabled.GetValueOrDefault(); } set { this._clusterEnabled = value; } } // Check to see if ClusterEnabled property is set internal bool IsSetClusterEnabled() { return this._clusterEnabled.HasValue; } /// /// Gets and sets the property ClusterMode. /// /// Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you must first /// set the cluster mode to Compatible. Compatible mode allows your Redis clients to connect /// using both cluster mode enabled and cluster mode disabled. After you migrate all Redis /// clients to use cluster mode enabled, you can then complete cluster mode configuration /// and set the cluster mode to Enabled. /// /// public ClusterMode ClusterMode { get { return this._clusterMode; } set { this._clusterMode = value; } } // Check to see if ClusterMode property is set internal bool IsSetClusterMode() { return this._clusterMode != null; } /// /// Gets and sets the property ConfigurationEndpoint. /// /// The configuration endpoint for this replication group. Use the configuration endpoint /// to connect to this replication group. /// /// 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 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 Description. /// /// The user supplied description of the replication group. /// /// public string Description { get { return this._description; } set { this._description = value; } } // Check to see if Description property is set internal bool IsSetDescription() { return this._description != null; } /// /// Gets and sets the property GlobalReplicationGroupInfo. /// /// The name of the Global datastore and role of this replication group in the Global /// datastore. /// /// public GlobalReplicationGroupInfo GlobalReplicationGroupInfo { get { return this._globalReplicationGroupInfo; } set { this._globalReplicationGroupInfo = value; } } // Check to see if GlobalReplicationGroupInfo property is set internal bool IsSetGlobalReplicationGroupInfo() { return this._globalReplicationGroupInfo != null; } /// /// Gets and sets the property IpDiscovery. /// /// The network type you choose when modifying a 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 KmsKeyId. /// /// The ID of the KMS key used to encrypt the disk in the cluster. /// /// 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 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 MemberClusters. /// /// The names of all the cache clusters that are part of this replication group. /// /// public List MemberClusters { get { return this._memberClusters; } set { this._memberClusters = value; } } // Check to see if MemberClusters property is set internal bool IsSetMemberClusters() { return this._memberClusters != null && this._memberClusters.Count > 0; } /// /// Gets and sets the property MemberClustersOutpostArns. /// /// The outpost ARNs of the replication group's member clusters. /// /// public List MemberClustersOutpostArns { get { return this._memberClustersOutpostArns; } set { this._memberClustersOutpostArns = value; } } // Check to see if MemberClustersOutpostArns property is set internal bool IsSetMemberClustersOutpostArns() { return this._memberClustersOutpostArns != null && this._memberClustersOutpostArns.Count > 0; } /// /// Gets and sets the property MultiAZ. /// /// A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more /// information, see Minimizing /// Downtime: Multi-AZ /// /// public MultiAZStatus MultiAZ { get { return this._multiAZ; } set { this._multiAZ = value; } } // Check to see if MultiAZ property is set internal bool IsSetMultiAZ() { return this._multiAZ != null; } /// /// 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 NodeGroups. /// /// A list of node groups in this replication group. For Redis (cluster mode disabled) /// replication groups, this is a single-element list. For Redis (cluster mode enabled) /// replication groups, the list contains an entry for each node group (shard). /// /// public List NodeGroups { get { return this._nodeGroups; } set { this._nodeGroups = value; } } // Check to see if NodeGroups property is set internal bool IsSetNodeGroups() { return this._nodeGroups != null && this._nodeGroups.Count > 0; } /// /// Gets and sets the property PendingModifiedValues. /// /// A group of settings to be applied to the replication group, either immediately or /// during the next maintenance window. /// /// public ReplicationGroupPendingModifiedValues 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 ReplicationGroupCreateTime. /// /// The date and time when the cluster was created. /// /// public DateTime ReplicationGroupCreateTime { get { return this._replicationGroupCreateTime.GetValueOrDefault(); } set { this._replicationGroupCreateTime = value; } } // Check to see if ReplicationGroupCreateTime property is set internal bool IsSetReplicationGroupCreateTime() { return this._replicationGroupCreateTime.HasValue; } /// /// Gets and sets the property ReplicationGroupId. /// /// The identifier for the 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 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 SnapshottingClusterId. /// /// The cluster ID that is used as the daily snapshot source for the replication group. /// /// public string SnapshottingClusterId { get { return this._snapshottingClusterId; } set { this._snapshottingClusterId = value; } } // Check to see if SnapshottingClusterId property is set internal bool IsSetSnapshottingClusterId() { return this._snapshottingClusterId != null; } /// /// Gets and sets the property SnapshotWindow. /// /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot /// of your node group (shard). /// /// /// /// Example: 05:00-09:00 /// /// /// /// If you do not specify this parameter, ElastiCache automatically chooses an appropriate /// time range. /// /// /// /// This parameter is only valid if the Engine parameter is redis. /// /// /// 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 Status. /// /// The current state of this replication group - creating, available, /// modifying, deleting, create-failed, snapshotting. /// /// 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 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; } /// /// Gets and sets the property UserGroupIds. /// /// The ID of the user group associated to the replication group. /// /// public List UserGroupIds { get { return this._userGroupIds; } set { this._userGroupIds = value; } } // Check to see if UserGroupIds property is set internal bool IsSetUserGroupIds() { return this._userGroupIds != null && this._userGroupIds.Count > 0; } } }