/*
* 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
{
///
/// Container for the parameters to the CreateReplicationGroup operation.
/// Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication
/// group.
///
///
///
/// This API can be used to create a standalone regional replication group or a secondary
/// replication group associated with a Global datastore.
///
///
///
/// A Redis (cluster mode disabled) replication group is a collection of clusters, where
/// one of the clusters is a read/write primary and the others are read-only replicas.
/// Writes to the primary are asynchronously propagated to the replicas.
///
///
///
/// A Redis cluster-mode enabled cluster is comprised of from 1 to 90 shards (API/CLI:
/// node groups). Each shard has a primary node and up to 5 read-only replica nodes. The
/// configuration can range from 90 shards and 0 replicas to 15 shards and 5 replicas,
/// which is the maximum number or replicas allowed.
///
///
///
/// The node or shard limit can be increased to a maximum of 500 per cluster if the Redis
/// engine version is 5.0.6 or higher. For example, you can choose to configure a 500
/// node cluster that ranges between 83 shards (one primary and 5 replicas per shard)
/// and 500 shards (single primary and no replicas). Make sure there are enough available
/// IP addresses to accommodate the increase. Common pitfalls include the subnets in the
/// subnet group have too small a CIDR range or the subnets are shared and heavily used
/// by other clusters. For more information, see Creating
/// a Subnet Group. For versions below 5.0.6, the limit is 250 per cluster.
///
///
///
/// To request a limit increase, see Amazon
/// Service Limits and choose the limit type Nodes per cluster per instance type.
///
///
///
///
/// When a Redis (cluster mode disabled) replication group has been successfully created,
/// you can add one or more read replicas to it, up to a total of 5 read replicas. If
/// you need to increase or decrease the number of node groups (console: shards), you
/// can avail yourself of ElastiCache for Redis' scaling. For more information, see Scaling
/// ElastiCache for Redis Clusters in the ElastiCache User Guide.
///
///
///
/// This operation is valid for Redis only.
///
///
///
public partial class CreateReplicationGroupRequest : AmazonElastiCacheRequest
{
private bool? _atRestEncryptionEnabled;
private string _authToken;
private bool? _automaticFailoverEnabled;
private bool? _autoMinorVersionUpgrade;
private string _cacheNodeType;
private string _cacheParameterGroupName;
private List _cacheSecurityGroupNames = new List();
private string _cacheSubnetGroupName;
private ClusterMode _clusterMode;
private bool? _dataTieringEnabled;
private string _engine;
private string _engineVersion;
private string _globalReplicationGroupId;
private IpDiscovery _ipDiscovery;
private string _kmsKeyId;
private List _logDeliveryConfigurations = new List();
private bool? _multiAZEnabled;
private NetworkType _networkType;
private List _nodeGroupConfiguration = new List();
private string _notificationTopicArn;
private int? _numCacheClusters;
private int? _numNodeGroups;
private int? _port;
private List _preferredCacheClusterAZs = new List();
private string _preferredMaintenanceWindow;
private string _primaryClusterId;
private int? _replicasPerNodeGroup;
private string _replicationGroupDescription;
private string _replicationGroupId;
private List _securityGroupIds = new List();
private List _snapshotArns = new List();
private string _snapshotName;
private int? _snapshotRetentionLimit;
private string _snapshotWindow;
private List _tags = new List();
private bool? _transitEncryptionEnabled;
private TransitEncryptionMode _transitEncryptionMode;
private List _userGroupIds = new List();
///
/// 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 replication
/// group is created. To enable encryption at rest on a replication group you must set
/// AtRestEncryptionEnabled
to true
when you create the replication
/// group.
///
///
///
/// 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 AuthToken.
///
/// Reserved parameter. The password used to access a password protected server.
///
///
///
/// AuthToken
can be specified only on replication groups where TransitEncryptionEnabled
/// is true
.
///
///
///
/// For HIPAA compliance, you must specify TransitEncryptionEnabled
as true
,
/// an AuthToken
, and a CacheSubnetGroup
.
///
///
///
/// Password constraints:
///
/// -
///
/// Must be only printable ASCII characters.
///
///
-
///
/// Must be at least 16 characters and no more than 128 characters in length.
///
///
-
///
/// The only permitted printable special characters are !, &, #, $, ^, <, >,
/// and -. Other printable special characters cannot be used in the AUTH token.
///
///
///
/// For more information, see AUTH password
/// at http://redis.io/commands/AUTH.
///
///
public string AuthToken
{
get { return this._authToken; }
set { this._authToken = value; }
}
// Check to see if AuthToken property is set
internal bool IsSetAuthToken()
{
return this._authToken != null;
}
///
/// Gets and sets the property AutomaticFailoverEnabled.
///
/// Specifies whether a read-only replica is automatically promoted to read/write primary
/// if the existing primary fails.
///
///
///
/// AutomaticFailoverEnabled
must be enabled for Redis (cluster mode enabled)
/// replication groups.
///
///
///
/// Default: false
///
///
public bool AutomaticFailoverEnabled
{
get { return this._automaticFailoverEnabled.GetValueOrDefault(); }
set { this._automaticFailoverEnabled = value; }
}
// Check to see if AutomaticFailoverEnabled property is set
internal bool IsSetAutomaticFailoverEnabled()
{
return this._automaticFailoverEnabled.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 CacheNodeType.
///
/// The compute and memory capacity of the nodes in the node group (shard).
///
///
///
/// 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 name of the parameter group to associate with this replication group. If this
/// argument is omitted, the default cache parameter group for the specified engine is
/// used.
///
///
///
/// If you are running Redis version 3.2.4 or later, only one node group (shard), and
/// want to use a default parameter group, we recommend that you specify the parameter
/// group by name.
///
/// -
///
/// To create a Redis (cluster mode disabled) replication group, use
CacheParameterGroupName=default.redis3.2
.
///
/// -
///
/// To create a Redis (cluster mode enabled) replication group, use
CacheParameterGroupName=default.redis3.2.cluster.on
.
///
///
///
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 CacheSecurityGroupNames.
///
/// A list of cache security group names to associate with this replication group.
///
///
public List CacheSecurityGroupNames
{
get { return this._cacheSecurityGroupNames; }
set { this._cacheSecurityGroupNames = value; }
}
// Check to see if CacheSecurityGroupNames property is set
internal bool IsSetCacheSecurityGroupNames()
{
return this._cacheSecurityGroupNames != null && this._cacheSecurityGroupNames.Count > 0;
}
///
/// Gets and sets the property CacheSubnetGroupName.
///
/// The name of the cache subnet group to be used for the replication group.
///
///
///
/// If you're going to launch your cluster in an Amazon VPC, you need to create a subnet
/// group before you start creating a cluster. For more information, see Subnets
/// and Subnet Groups.
///
///
///
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 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 DataTieringEnabled.
///
/// 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 bool DataTieringEnabled
{
get { return this._dataTieringEnabled.GetValueOrDefault(); }
set { this._dataTieringEnabled = value; }
}
// Check to see if DataTieringEnabled property is set
internal bool IsSetDataTieringEnabled()
{
return this._dataTieringEnabled.HasValue;
}
///
/// Gets and sets the property Engine.
///
/// The name of the cache engine to be used for the clusters in this replication group.
/// The value must be set to Redis
.
///
///
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 number of the cache engine to be used for the clusters in this replication
/// group. To view the supported cache engine versions, use the DescribeCacheEngineVersions
/// operation.
///
///
///
/// Important: You can upgrade to a newer engine version (see Selecting
/// a Cache Engine and Version) in the ElastiCache User Guide, but you cannot
/// downgrade to an earlier engine version. If you want to use an earlier engine version,
/// you must delete the existing cluster or replication group and create it anew with
/// the earlier engine version.
///
///
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 GlobalReplicationGroupId.
///
/// The name of the Global datastore
///
///
public string GlobalReplicationGroupId
{
get { return this._globalReplicationGroupId; }
set { this._globalReplicationGroupId = value; }
}
// Check to see if GlobalReplicationGroupId property is set
internal bool IsSetGlobalReplicationGroupId()
{
return this._globalReplicationGroupId != null;
}
///
/// Gets and sets the property IpDiscovery.
///
/// The network type you choose when creating a replication group, 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.
///
/// Specifies 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 MultiAZEnabled.
///
/// A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more
/// information, see Minimizing
/// Downtime: Multi-AZ.
///
///
public bool MultiAZEnabled
{
get { return this._multiAZEnabled.GetValueOrDefault(); }
set { this._multiAZEnabled = value; }
}
// Check to see if MultiAZEnabled property is set
internal bool IsSetMultiAZEnabled()
{
return this._multiAZEnabled.HasValue;
}
///
/// 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 NodeGroupConfiguration.
///
/// A list of node group (shard) configuration options. Each node group (shard) configuration
/// has the following members: PrimaryAvailabilityZone
, ReplicaAvailabilityZones
,
/// ReplicaCount
, and Slots
.
///
///
///
/// If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled)
/// replication group, you can use this parameter to individually configure each node
/// group (shard), or you can omit this parameter. However, it is required when seeding
/// a Redis (cluster mode enabled) cluster from a S3 rdb file. You must configure each
/// node group (shard) using this parameter because you must specify the slots for each
/// node group.
///
///
public List NodeGroupConfiguration
{
get { return this._nodeGroupConfiguration; }
set { this._nodeGroupConfiguration = value; }
}
// Check to see if NodeGroupConfiguration property is set
internal bool IsSetNodeGroupConfiguration()
{
return this._nodeGroupConfiguration != null && this._nodeGroupConfiguration.Count > 0;
}
///
/// Gets and sets the property NotificationTopicArn.
///
/// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic
/// to which notifications are sent.
///
///
///
/// The Amazon SNS topic owner must be the same as the cluster owner.
///
///
///
public string NotificationTopicArn
{
get { return this._notificationTopicArn; }
set { this._notificationTopicArn = value; }
}
// Check to see if NotificationTopicArn property is set
internal bool IsSetNotificationTopicArn()
{
return this._notificationTopicArn != null;
}
///
/// Gets and sets the property NumCacheClusters.
///
/// The number of clusters this replication group initially has.
///
///
///
/// This parameter is not used if there is more than one node group (shard). You should
/// use ReplicasPerNodeGroup
instead.
///
///
///
/// If AutomaticFailoverEnabled
is true
, the value of this parameter
/// must be at least 2. If AutomaticFailoverEnabled
is false
/// you can omit this parameter (it will default to 1), or you can explicitly set it to
/// a value between 2 and 6.
///
///
///
/// The maximum permitted value for NumCacheClusters
is 6 (1 primary plus
/// 5 replicas).
///
///
public int NumCacheClusters
{
get { return this._numCacheClusters.GetValueOrDefault(); }
set { this._numCacheClusters = value; }
}
// Check to see if NumCacheClusters property is set
internal bool IsSetNumCacheClusters()
{
return this._numCacheClusters.HasValue;
}
///
/// Gets and sets the property NumNodeGroups.
///
/// An optional parameter that specifies the number of node groups (shards) for this Redis
/// (cluster mode enabled) replication group. For Redis (cluster mode disabled) either
/// omit this parameter or set it to 1.
///
///
///
/// Default: 1
///
///
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 on which each member of the replication group accepts connections.
///
///
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 PreferredCacheClusterAZs.
///
/// A list of EC2 Availability Zones in which the replication group's clusters are created.
/// The order of the Availability Zones in the list is the order in which clusters are
/// allocated. The primary cluster is created in the first AZ in the list.
///
///
///
/// This parameter is not used if there is more than one node group (shard). You should
/// use NodeGroupConfiguration
instead.
///
///
///
/// If you are creating your replication group in an Amazon VPC (recommended), you can
/// only locate clusters in Availability Zones associated with the subnets in the selected
/// subnet group.
///
///
///
/// The number of Availability Zones listed must equal the value of NumCacheClusters
.
///
///
///
/// Default: system chosen Availability Zones.
///
///
public List PreferredCacheClusterAZs
{
get { return this._preferredCacheClusterAZs; }
set { this._preferredCacheClusterAZs = value; }
}
// Check to see if PreferredCacheClusterAZs property is set
internal bool IsSetPreferredCacheClusterAZs()
{
return this._preferredCacheClusterAZs != null && this._preferredCacheClusterAZs.Count > 0;
}
///
/// 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:
///
///
///
/// 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 PrimaryClusterId.
///
/// The identifier of the cluster that serves as the primary for this replication group.
/// This cluster must already exist and have a status of available
.
///
///
///
/// This parameter is not required if NumCacheClusters
, NumNodeGroups
,
/// or ReplicasPerNodeGroup
is specified.
///
///
public string PrimaryClusterId
{
get { return this._primaryClusterId; }
set { this._primaryClusterId = value; }
}
// Check to see if PrimaryClusterId property is set
internal bool IsSetPrimaryClusterId()
{
return this._primaryClusterId != null;
}
///
/// Gets and sets the property ReplicasPerNodeGroup.
///
/// An optional parameter that specifies the number of replica nodes in each node group
/// (shard). Valid values are 0 to 5.
///
///
public int ReplicasPerNodeGroup
{
get { return this._replicasPerNodeGroup.GetValueOrDefault(); }
set { this._replicasPerNodeGroup = value; }
}
// Check to see if ReplicasPerNodeGroup property is set
internal bool IsSetReplicasPerNodeGroup()
{
return this._replicasPerNodeGroup.HasValue;
}
///
/// Gets and sets the property ReplicationGroupDescription.
///
/// A user-created description for the replication group.
///
///
[AWSProperty(Required=true)]
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 replication group identifier. This parameter is stored as a lowercase string.
///
///
///
/// Constraints:
///
/// -
///
/// A name must contain from 1 to 40 alphanumeric characters or hyphens.
///
///
-
///
/// The first character must be a letter.
///
///
-
///
/// A name cannot end with a hyphen or contain two consecutive hyphens.
///
///
///
[AWSProperty(Required=true)]
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 SecurityGroupIds.
///
/// One or more Amazon VPC security groups associated with this replication group.
///
///
///
/// Use this parameter only when you are creating a replication group in an Amazon Virtual
/// Private Cloud (Amazon VPC).
///
///
public List SecurityGroupIds
{
get { return this._securityGroupIds; }
set { this._securityGroupIds = value; }
}
// Check to see if SecurityGroupIds property is set
internal bool IsSetSecurityGroupIds()
{
return this._securityGroupIds != null && this._securityGroupIds.Count > 0;
}
///
/// Gets and sets the property SnapshotArns.
///
/// A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot
/// files stored in Amazon S3. The snapshot files are used to populate the new replication
/// group. The Amazon S3 object name in the ARN cannot contain any commas. The new replication
/// group will have the number of node groups (console: shards) specified by the parameter
/// NumNodeGroups or the number of node groups configured by NodeGroupConfiguration
/// regardless of the number of ARNs specified here.
///
///
///
/// Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb
///
///
public List SnapshotArns
{
get { return this._snapshotArns; }
set { this._snapshotArns = value; }
}
// Check to see if SnapshotArns property is set
internal bool IsSetSnapshotArns()
{
return this._snapshotArns != null && this._snapshotArns.Count > 0;
}
///
/// Gets and sets the property SnapshotName.
///
/// The name of a snapshot from which to restore data into the new replication group.
/// The snapshot status changes to restoring
while the new replication group
/// is being created.
///
///
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.
///
/// The number of days for which ElastiCache retains automatic 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.
///
///
///
/// Default: 0 (i.e., automatic backups are disabled for this cluster).
///
///
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 node group (shard).
///
///
///
/// Example: 05:00-09:00
///
///
///
/// If you do not specify this parameter, ElastiCache automatically chooses an appropriate
/// time range.
///
///
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 Tags.
///
/// A list of tags to be added to this resource. Tags are comma-separated key,value pairs
/// (e.g. Key=myKey
, Value=myKeyValue
. You can include multiple
/// tags as shown following: Key=myKey
, Value=myKeyValue
Key=mySecondKey
,
/// Value=mySecondKeyValue
. Tags on replication groups will be replicated
/// to all nodes.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property TransitEncryptionEnabled.
///
/// A flag that enables in-transit encryption when set to true
.
///
///
///
/// This parameter is valid only if the Engine
parameter is redis
,
/// the EngineVersion
parameter is 3.2.6
, 4.x
or
/// later, and the cluster is being created in an Amazon VPC.
///
///
///
/// If you enable in-transit encryption, you must also specify a value for CacheSubnetGroup
.
///
///
///
/// Required: Only available when creating a replication group in an Amazon VPC
/// using redis version 3.2.6
, 4.x
or later.
///
///
///
/// Default: false
///
///
///
/// For HIPAA compliance, you must specify TransitEncryptionEnabled
as true
,
/// an AuthToken
, and a CacheSubnetGroup
.
///
///
///
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.
///
///
///
/// When setting TransitEncryptionEnabled
to true
, you can set
/// your TransitEncryptionMode
to preferred
in the same request,
/// to allow both encrypted and unencrypted connections at the same time. Once you migrate
/// all your Redis clients to use encrypted connections you can modify the value to required
/// to allow encrypted connections only.
///
///
///
/// Setting TransitEncryptionMode
to required
is a two-step
/// process that requires you to first set the TransitEncryptionMode
to preferred
,
/// after that you can set TransitEncryptionMode
to required
.
///
///
///
/// This process will not trigger the replacement of the replication group.
///
///
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 user group to associate with the replication group.
///
///
[AWSProperty(Min=1)]
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;
}
}
}