/*
* 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 DecreaseReplicaCount operation.
/// Dynamically decreases the number of replicas in a Redis (cluster mode disabled) replication
/// group or the number of replica nodes in one or more node groups (shards) of a Redis
/// (cluster mode enabled) replication group. This operation is performed with no cluster
/// down time.
///
public partial class DecreaseReplicaCountRequest : AmazonElastiCacheRequest
{
private bool? _applyImmediately;
private int? _newReplicaCount;
private List _replicaConfiguration = new List();
private List _replicasToRemove = new List();
private string _replicationGroupId;
///
/// Gets and sets the property ApplyImmediately.
///
/// If True
, the number of replica nodes is decreased immediately. ApplyImmediately=False
/// is not currently supported.
///
///
[AWSProperty(Required=true)]
public bool ApplyImmediately
{
get { return this._applyImmediately.GetValueOrDefault(); }
set { this._applyImmediately = value; }
}
// Check to see if ApplyImmediately property is set
internal bool IsSetApplyImmediately()
{
return this._applyImmediately.HasValue;
}
///
/// Gets and sets the property NewReplicaCount.
///
/// The number of read replica nodes you want at the completion of this operation. For
/// Redis (cluster mode disabled) replication groups, this is the number of replica nodes
/// in the replication group. For Redis (cluster mode enabled) replication groups, this
/// is the number of replica nodes in each of the replication group's node groups.
///
///
///
/// The minimum number of replicas in a shard or replication group is:
///
/// -
///
/// Redis (cluster mode disabled)
///
///
-
///
/// If Multi-AZ is enabled: 1
///
///
-
///
/// If Multi-AZ is not enabled: 0
///
///
-
///
/// Redis (cluster mode enabled): 0 (though you will not be able to failover to a replica
/// if your primary node fails)
///
///
///
public int NewReplicaCount
{
get { return this._newReplicaCount.GetValueOrDefault(); }
set { this._newReplicaCount = value; }
}
// Check to see if NewReplicaCount property is set
internal bool IsSetNewReplicaCount()
{
return this._newReplicaCount.HasValue;
}
///
/// Gets and sets the property ReplicaConfiguration.
///
/// A list of ConfigureShard
objects that can be used to configure each shard
/// in a Redis (cluster mode enabled) replication group. The ConfigureShard
/// has three members: NewReplicaCount
, NodeGroupId
, and PreferredAvailabilityZones
.
///
///
public List ReplicaConfiguration
{
get { return this._replicaConfiguration; }
set { this._replicaConfiguration = value; }
}
// Check to see if ReplicaConfiguration property is set
internal bool IsSetReplicaConfiguration()
{
return this._replicaConfiguration != null && this._replicaConfiguration.Count > 0;
}
///
/// Gets and sets the property ReplicasToRemove.
///
/// A list of the node ids to remove from the replication group or node group (shard).
///
///
public List ReplicasToRemove
{
get { return this._replicasToRemove; }
set { this._replicasToRemove = value; }
}
// Check to see if ReplicasToRemove property is set
internal bool IsSetReplicasToRemove()
{
return this._replicasToRemove != null && this._replicasToRemove.Count > 0;
}
///
/// Gets and sets the property ReplicationGroupId.
///
/// The id of the replication group from which you want to remove replica nodes.
///
///
[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;
}
}
}