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