/*
* 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 memorydb-2021-01-01.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.MemoryDB.Model
{
///
/// Contains all of the attributes of a specific cluster.
///
public partial class Cluster
{
private string _aclName;
private string _arn;
private bool? _autoMinorVersionUpgrade;
private AZStatus _availabilityMode;
private Endpoint _clusterEndpoint;
private DataTieringStatus _dataTiering;
private string _description;
private string _enginePatchVersion;
private string _engineVersion;
private string _kmsKeyId;
private string _maintenanceWindow;
private string _name;
private string _nodeType;
private int? _numberOfShards;
private string _parameterGroupName;
private string _parameterGroupStatus;
private ClusterPendingUpdates _pendingUpdates;
private List _securityGroups = new List();
private List _shards = new List();
private int? _snapshotRetentionLimit;
private string _snapshotWindow;
private string _snsTopicArn;
private string _snsTopicStatus;
private string _status;
private string _subnetGroupName;
private bool? _tlsEnabled;
///
/// Gets and sets the property ACLName.
///
/// The name of the Access Control List associated with this cluster.
///
///
[AWSProperty(Min=1)]
public string ACLName
{
get { return this._aclName; }
set { this._aclName = value; }
}
// Check to see if ACLName property is set
internal bool IsSetACLName()
{
return this._aclName != null;
}
///
/// Gets and sets the property ARN.
///
/// The Amazon Resource Name (ARN) of the cluster.
///
///
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 AutoMinorVersionUpgrade.
///
/// When set to true, the cluster will automatically receive minor engine version upgrades
/// after launch.
///
///
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 AvailabilityMode.
///
/// Indicates if the cluster has a Multi-AZ configuration (multiaz) or not (singleaz).
///
///
public AZStatus AvailabilityMode
{
get { return this._availabilityMode; }
set { this._availabilityMode = value; }
}
// Check to see if AvailabilityMode property is set
internal bool IsSetAvailabilityMode()
{
return this._availabilityMode != null;
}
///
/// Gets and sets the property ClusterEndpoint.
///
/// The cluster's configuration endpoint
///
///
public Endpoint ClusterEndpoint
{
get { return this._clusterEndpoint; }
set { this._clusterEndpoint = value; }
}
// Check to see if ClusterEndpoint property is set
internal bool IsSetClusterEndpoint()
{
return this._clusterEndpoint != null;
}
///
/// Gets and sets the property DataTiering.
///
/// Enables data tiering. Data tiering is only supported for clusters using the r6gd node
/// type. This parameter must be set 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.
///
/// A description of the cluster
///
///
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 EnginePatchVersion.
///
/// The Redis engine patch version used by the cluster
///
///
public string EnginePatchVersion
{
get { return this._enginePatchVersion; }
set { this._enginePatchVersion = value; }
}
// Check to see if EnginePatchVersion property is set
internal bool IsSetEnginePatchVersion()
{
return this._enginePatchVersion != null;
}
///
/// Gets and sets the property EngineVersion.
///
/// The Redis engine version used by the cluster
///
///
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 KmsKeyId.
///
/// The ID of the KMS key used to encrypt 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 MaintenanceWindow.
///
/// 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.
///
///
public string MaintenanceWindow
{
get { return this._maintenanceWindow; }
set { this._maintenanceWindow = value; }
}
// Check to see if MaintenanceWindow property is set
internal bool IsSetMaintenanceWindow()
{
return this._maintenanceWindow != null;
}
///
/// Gets and sets the property Name.
///
/// The user-supplied name of the cluster. This identifier is a unique key that identifies
/// a cluster.
///
///
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property NodeType.
///
/// The cluster's node type
///
///
public string NodeType
{
get { return this._nodeType; }
set { this._nodeType = value; }
}
// Check to see if NodeType property is set
internal bool IsSetNodeType()
{
return this._nodeType != null;
}
///
/// Gets and sets the property NumberOfShards.
///
/// The number of shards in the cluster
///
///
public int NumberOfShards
{
get { return this._numberOfShards.GetValueOrDefault(); }
set { this._numberOfShards = value; }
}
// Check to see if NumberOfShards property is set
internal bool IsSetNumberOfShards()
{
return this._numberOfShards.HasValue;
}
///
/// Gets and sets the property ParameterGroupName.
///
/// The name of the parameter group used by the cluster
///
///
public string ParameterGroupName
{
get { return this._parameterGroupName; }
set { this._parameterGroupName = value; }
}
// Check to see if ParameterGroupName property is set
internal bool IsSetParameterGroupName()
{
return this._parameterGroupName != null;
}
///
/// Gets and sets the property ParameterGroupStatus.
///
/// The status of the parameter group used by the cluster, for example 'active' or 'applying'.
///
///
public string ParameterGroupStatus
{
get { return this._parameterGroupStatus; }
set { this._parameterGroupStatus = value; }
}
// Check to see if ParameterGroupStatus property is set
internal bool IsSetParameterGroupStatus()
{
return this._parameterGroupStatus != null;
}
///
/// Gets and sets the property PendingUpdates.
///
/// A group of settings that are currently being applied.
///
///
public ClusterPendingUpdates PendingUpdates
{
get { return this._pendingUpdates; }
set { this._pendingUpdates = value; }
}
// Check to see if PendingUpdates property is set
internal bool IsSetPendingUpdates()
{
return this._pendingUpdates != null;
}
///
/// Gets and sets the property SecurityGroups.
///
/// A list of security groups used by the cluster
///
///
public List SecurityGroups
{
get { return this._securityGroups; }
set { this._securityGroups = value; }
}
// Check to see if SecurityGroups property is set
internal bool IsSetSecurityGroups()
{
return this._securityGroups != null && this._securityGroups.Count > 0;
}
///
/// Gets and sets the property Shards.
///
/// A list of shards that are members of the cluster.
///
///
public List Shards
{
get { return this._shards; }
set { this._shards = value; }
}
// Check to see if Shards property is set
internal bool IsSetShards()
{
return this._shards != null && this._shards.Count > 0;
}
///
/// Gets and sets the property SnapshotRetentionLimit.
///
/// The number of days for which MemoryDB 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.
///
///
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 MemoryDB begins taking a daily snapshot
/// of your shard. Example: 05:00-09:00 If you do not specify this parameter, MemoryDB
/// 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 SnsTopicArn.
///
/// The Amazon Resource Name (ARN) of the SNS notification topic
///
///
public string SnsTopicArn
{
get { return this._snsTopicArn; }
set { this._snsTopicArn = value; }
}
// Check to see if SnsTopicArn property is set
internal bool IsSetSnsTopicArn()
{
return this._snsTopicArn != null;
}
///
/// Gets and sets the property SnsTopicStatus.
///
/// The SNS topic must be in Active status to receive notifications
///
///
public string SnsTopicStatus
{
get { return this._snsTopicStatus; }
set { this._snsTopicStatus = value; }
}
// Check to see if SnsTopicStatus property is set
internal bool IsSetSnsTopicStatus()
{
return this._snsTopicStatus != null;
}
///
/// Gets and sets the property Status.
///
/// The status of the cluster. For example, Available, Updating, Creating.
///
///
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 SubnetGroupName.
///
/// The name of the subnet group used by the cluster
///
///
public string SubnetGroupName
{
get { return this._subnetGroupName; }
set { this._subnetGroupName = value; }
}
// Check to see if SubnetGroupName property is set
internal bool IsSetSubnetGroupName()
{
return this._subnetGroupName != null;
}
///
/// Gets and sets the property TLSEnabled.
///
/// A flag to indicate if In-transit encryption is enabled
///
///
public bool TLSEnabled
{
get { return this._tlsEnabled.GetValueOrDefault(); }
set { this._tlsEnabled = value; }
}
// Check to see if TLSEnabled property is set
internal bool IsSetTLSEnabled()
{
return this._tlsEnabled.HasValue;
}
}
}