/* * 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 ModifyCacheCluster operation. /// Modifies the settings for a cluster. You can use this operation to change one or more /// cluster configuration parameters by specifying the parameters and the new values. /// public partial class ModifyCacheClusterRequest : AmazonElastiCacheRequest { private bool? _applyImmediately; private string _authToken; private AuthTokenUpdateStrategyType _authTokenUpdateStrategy; private bool? _autoMinorVersionUpgrade; private AZMode _azMode; private string _cacheClusterId; private List _cacheNodeIdsToRemove = new List(); private string _cacheNodeType; private string _cacheParameterGroupName; private List _cacheSecurityGroupNames = new List(); private string _engineVersion; private IpDiscovery _ipDiscovery; private List _logDeliveryConfigurations = new List(); private List _newAvailabilityZones = new List(); private string _notificationTopicArn; private string _notificationTopicStatus; private int? _numCacheNodes; private string _preferredMaintenanceWindow; private List _securityGroupIds = new List(); private int? _snapshotRetentionLimit; private string _snapshotWindow; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public ModifyCacheClusterRequest() { } /// /// Instantiates ModifyCacheClusterRequest with the parameterized properties /// /// The cluster identifier. This value is stored as a lowercase string. public ModifyCacheClusterRequest(string cacheClusterId) { _cacheClusterId = cacheClusterId; } /// /// Gets and sets the property ApplyImmediately. /// /// If true, this parameter causes the modifications in this request and /// any pending modifications to be applied, asynchronously and as soon as possible, regardless /// of the PreferredMaintenanceWindow setting for the cluster. /// /// /// /// If false, changes to the cluster are applied on the next maintenance /// reboot, or the next failure reboot, whichever occurs first. /// /// /// /// If you perform a ModifyCacheCluster before a pending modification is /// applied, the pending modification is replaced by the newer modification. /// /// /// /// Valid values: true | false /// /// /// /// Default: false /// /// 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 AuthToken. /// /// Reserved parameter. The password used to access a password protected server. This /// parameter must be specified with the auth-token-update parameter. Password /// constraints: /// ///
  • /// /// Must be only printable ASCII characters /// ///
  • /// /// Must be at least 16 characters and no more than 128 characters in length /// ///
  • /// /// Cannot contain any of the following characters: '/', '"', or '@', '%' /// ///
/// /// For more information, see AUTH password at 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 AuthTokenUpdateStrategy. /// /// Specifies the strategy to use to update the AUTH token. This parameter must be specified /// with the auth-token parameter. Possible values: /// ///
  • /// /// Rotate /// ///
  • /// /// Set /// ///
/// /// For more information, see Authenticating /// Users with Redis AUTH /// ///
public AuthTokenUpdateStrategyType AuthTokenUpdateStrategy { get { return this._authTokenUpdateStrategy; } set { this._authTokenUpdateStrategy = value; } } // Check to see if AuthTokenUpdateStrategy property is set internal bool IsSetAuthTokenUpdateStrategy() { return this._authTokenUpdateStrategy != 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 AZMode. /// /// Specifies whether the new nodes in this Memcached cluster are all created in a single /// Availability Zone or created across multiple Availability Zones. /// /// /// /// Valid values: single-az | cross-az. /// /// /// /// This option is only supported for Memcached clusters. /// /// /// /// You cannot specify single-az if the Memcached cluster already has cache /// nodes in different Availability Zones. If cross-az is specified, existing /// Memcached nodes remain in their current Availability Zone. /// /// /// /// Only newly created nodes are located in different Availability Zones. /// /// /// public AZMode AZMode { get { return this._azMode; } set { this._azMode = value; } } // Check to see if AZMode property is set internal bool IsSetAZMode() { return this._azMode != null; } /// /// Gets and sets the property CacheClusterId. /// /// The cluster identifier. This value is stored as a lowercase string. /// /// [AWSProperty(Required=true)] public string CacheClusterId { get { return this._cacheClusterId; } set { this._cacheClusterId = value; } } // Check to see if CacheClusterId property is set internal bool IsSetCacheClusterId() { return this._cacheClusterId != null; } /// /// Gets and sets the property CacheNodeIdsToRemove. /// /// A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, /// etc.). This parameter is only valid when NumCacheNodes is less than the /// existing number of cache nodes. The number of cache node IDs supplied in this parameter /// must match the difference between the existing number of cache nodes in the cluster /// or pending cache nodes, whichever is greater, and the value of NumCacheNodes /// in the request. /// /// /// /// For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number /// of cache nodes in this ModifyCacheCluster call is 5, you must list 2 /// (7 - 5) cache node IDs to remove. /// /// public List CacheNodeIdsToRemove { get { return this._cacheNodeIdsToRemove; } set { this._cacheNodeIdsToRemove = value; } } // Check to see if CacheNodeIdsToRemove property is set internal bool IsSetCacheNodeIdsToRemove() { return this._cacheNodeIdsToRemove != null && this._cacheNodeIdsToRemove.Count > 0; } /// /// Gets and sets the property CacheNodeType. /// /// A valid cache node type that you want to scale this cluster up to. /// /// 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 cache parameter group to apply to this cluster. This change is asynchronously /// applied as soon as possible for parameters when the ApplyImmediately /// parameter is specified as true for this request. /// /// 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 authorize on this cluster. This change is /// asynchronously applied as soon as possible. /// /// /// /// You can use this parameter only with clusters that are created outside of an Amazon /// Virtual Private Cloud (Amazon VPC). /// /// /// /// Constraints: Must contain no more than 255 alphanumeric characters. Must not be "Default". /// /// 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 EngineVersion. /// /// The upgraded version of the cache engine to be run on the cache nodes. /// /// /// /// Important: You can upgrade to a newer engine version (see Selecting /// a Cache Engine and Version), but you cannot downgrade to an earlier engine version. /// If you want to use an earlier engine version, you must delete the existing cluster /// 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 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 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 NewAvailabilityZones. /// /// This option is only supported on Memcached clusters. /// /// /// /// The list of Availability Zones where the new Memcached cache nodes are created. /// /// /// /// This parameter is only valid when NumCacheNodes in the request is greater /// than the sum of the number of active cache nodes and the number of cache nodes pending /// creation (which may be zero). The number of Availability Zones supplied in this list /// must match the cache nodes being added in this request. /// /// /// /// Scenarios: /// ///
  • /// /// Scenario 1: You have 3 active nodes and wish to add 2 nodes. Specify NumCacheNodes=5 /// (3 + 2) and optionally specify two Availability Zones for the two new nodes. /// ///
  • /// /// Scenario 2: You have 3 active nodes and 2 nodes pending creation (from the /// scenario 1 call) and want to add 1 more node. Specify NumCacheNodes=6 /// ((3 + 2) + 1) and optionally specify an Availability Zone for the new node. /// ///
  • /// /// Scenario 3: You want to cancel all pending operations. Specify NumCacheNodes=3 /// to cancel all pending operations. /// ///
/// /// The Availability Zone placement of nodes pending creation cannot be modified. If you /// wish to cancel any nodes pending creation, add 0 nodes by setting NumCacheNodes /// to the number of current nodes. /// /// /// /// If cross-az is specified, existing Memcached nodes remain in their current /// Availability Zone. Only newly created nodes can be located in different Availability /// Zones. For guidance on how to move existing Memcached nodes to different Availability /// Zones, see the Availability Zone Considerations section of Cache /// Node Considerations for Memcached. /// /// /// /// Impact of new add/remove requests upon pending requests /// ///
  • /// /// Scenario-1 /// ///
    • /// /// Pending Action: Delete /// ///
    • /// /// New Request: Delete /// ///
    • /// /// Result: The new delete, pending or immediate, replaces the pending delete. /// ///
  • /// /// Scenario-2 /// ///
    • /// /// Pending Action: Delete /// ///
    • /// /// New Request: Create /// ///
    • /// /// Result: The new create, pending or immediate, replaces the pending delete. /// ///
  • /// /// Scenario-3 /// ///
    • /// /// Pending Action: Create /// ///
    • /// /// New Request: Delete /// ///
    • /// /// Result: The new delete, pending or immediate, replaces the pending create. /// ///
  • /// /// Scenario-4 /// ///
    • /// /// Pending Action: Create /// ///
    • /// /// New Request: Create /// ///
    • /// /// Result: The new create is added to the pending create. /// /// /// /// Important: If the new create request is Apply Immediately - Yes, all /// creates are performed immediately. If the new create request is Apply Immediately /// - No, all creates are pending. /// ///
///
public List NewAvailabilityZones { get { return this._newAvailabilityZones; } set { this._newAvailabilityZones = value; } } // Check to see if NewAvailabilityZones property is set internal bool IsSetNewAvailabilityZones() { return this._newAvailabilityZones != null && this._newAvailabilityZones.Count > 0; } /// /// Gets and sets the property NotificationTopicArn. /// /// The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are /// sent. /// /// /// /// The Amazon SNS topic owner must be 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 NotificationTopicStatus. /// /// The status of the Amazon SNS notification topic. Notifications are sent only if the /// status is active. /// /// /// /// Valid values: active | inactive /// /// public string NotificationTopicStatus { get { return this._notificationTopicStatus; } set { this._notificationTopicStatus = value; } } // Check to see if NotificationTopicStatus property is set internal bool IsSetNotificationTopicStatus() { return this._notificationTopicStatus != null; } /// /// Gets and sets the property NumCacheNodes. /// /// The number of cache nodes that the cluster should have. If the value for NumCacheNodes /// is greater than the sum of the number of current cache nodes and the number of cache /// nodes pending creation (which may be zero), more nodes are added. If the value is /// less than the number of existing cache nodes, nodes are removed. If the value is equal /// to the number of current cache nodes, any pending add or remove requests are canceled. /// /// /// /// If you are removing cache nodes, you must use the CacheNodeIdsToRemove /// parameter to provide the IDs of the specific cache nodes to remove. /// /// /// /// For clusters running Redis, this value must be 1. For clusters running Memcached, /// this value must be between 1 and 40. /// /// /// /// Adding or removing Memcached cache nodes can be applied immediately or as a pending /// operation (see ApplyImmediately). /// /// /// /// A pending operation to modify the number of cache nodes in a cluster during its maintenance /// window, whether by adding or removing nodes in accordance with the scale out architecture, /// is not queued. The customer's latest request to add or remove nodes to the cluster /// overrides any previous pending operations to modify the number of cache nodes in the /// cluster. For example, a request to remove 2 nodes would override a previous pending /// operation to remove 3 nodes. Similarly, a request to add 2 nodes would override a /// previous pending operation to remove 3 nodes and vice versa. As Memcached cache nodes /// may now be provisioned in different Availability Zones with flexible cache node placement, /// a request to add nodes does not automatically override a previous pending operation /// to add nodes. The customer can modify the previous pending operation to add more nodes /// or explicitly cancel the pending request and retry the new request. To cancel pending /// operations to modify the number of cache nodes in a cluster, use the ModifyCacheCluster /// request and set NumCacheNodes equal to the number of cache nodes currently /// in the cluster. /// /// /// public int NumCacheNodes { get { return this._numCacheNodes.GetValueOrDefault(); } set { this._numCacheNodes = value; } } // Check to see if NumCacheNodes property is set internal bool IsSetNumCacheNodes() { return this._numCacheNodes.HasValue; } /// /// 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: /// ///
  • /// /// 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 SecurityGroupIds. /// /// Specifies the VPC Security Groups associated with the cluster. /// /// /// /// This parameter can be used only with clusters that are created 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 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 SnapshotWindow. /// /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot /// of your cluster. /// /// 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; } } }