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