/* * 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 dax-2017-04-19.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.DAX.Model { /// /// Container for the parameters to the CreateCluster operation. /// Creates a DAX cluster. All nodes in the cluster run the same DAX caching software. /// public partial class CreateClusterRequest : AmazonDAXRequest { private List _availabilityZones = new List(); private ClusterEndpointEncryptionType _clusterEndpointEncryptionType; private string _clusterName; private string _description; private string _iamRoleArn; private string _nodeType; private string _notificationTopicArn; private string _parameterGroupName; private string _preferredMaintenanceWindow; private int? _replicationFactor; private List _securityGroupIds = new List(); private SSESpecification _sseSpecification; private string _subnetGroupName; private List _tags = new List(); /// /// Gets and sets the property AvailabilityZones. /// /// The Availability Zones (AZs) in which the cluster nodes will reside after the cluster /// has been created or updated. If provided, the length of this list must equal the ReplicationFactor /// parameter. If you omit this parameter, DAX will spread the nodes across Availability /// Zones for the highest availability. /// /// public List AvailabilityZones { get { return this._availabilityZones; } set { this._availabilityZones = value; } } // Check to see if AvailabilityZones property is set internal bool IsSetAvailabilityZones() { return this._availabilityZones != null && this._availabilityZones.Count > 0; } /// /// Gets and sets the property ClusterEndpointEncryptionType. /// /// The type of encryption the cluster's endpoint should support. Values are: /// ///
  • /// /// NONE for no encryption /// ///
  • /// /// TLS for Transport Layer Security /// ///
///
public ClusterEndpointEncryptionType ClusterEndpointEncryptionType { get { return this._clusterEndpointEncryptionType; } set { this._clusterEndpointEncryptionType = value; } } // Check to see if ClusterEndpointEncryptionType property is set internal bool IsSetClusterEndpointEncryptionType() { return this._clusterEndpointEncryptionType != null; } /// /// Gets and sets the property ClusterName. /// /// The cluster identifier. This parameter is stored as a lowercase string. /// /// /// /// Constraints: /// ///
  • /// /// A name must contain from 1 to 20 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 ClusterName { get { return this._clusterName; } set { this._clusterName = value; } } // Check to see if ClusterName property is set internal bool IsSetClusterName() { return this._clusterName != 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 IamRoleArn. /// /// A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will /// assume this role and use the role's permissions to access DynamoDB on your behalf. /// /// [AWSProperty(Required=true)] public string IamRoleArn { get { return this._iamRoleArn; } set { this._iamRoleArn = value; } } // Check to see if IamRoleArn property is set internal bool IsSetIamRoleArn() { return this._iamRoleArn != null; } /// /// Gets and sets the property NodeType. /// /// The compute and memory capacity of the nodes in the cluster. /// /// [AWSProperty(Required=true)] 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 NotificationTopicArn. /// /// The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will /// be sent. /// /// /// /// The Amazon SNS topic owner must be same as the DAX 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 ParameterGroupName. /// /// The parameter group to be associated with the DAX 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 PreferredMaintenanceWindow. /// /// Specifies the weekly time range during which maintenance on the DAX 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:05:00-sun:09:00 /// /// /// /// If you don't specify a preferred maintenance window when you create or modify a cache /// cluster, DAX assigns a 60-minute maintenance window on a randomly selected day of /// the week. /// /// ///
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 ReplicationFactor. /// /// The number of nodes in the DAX cluster. A replication factor of 1 will create a single-node /// cluster, without any read replicas. For additional fault tolerance, you can create /// a multiple node cluster with one or more read replicas. To do this, set ReplicationFactor /// to a number between 3 (one primary and two read replicas) and 10 (one primary and /// nine read replicas). If the AvailabilityZones parameter is provided, /// its length must equal the ReplicationFactor. /// /// /// /// AWS recommends that you have at least two read replicas per cluster. /// /// /// [AWSProperty(Required=true)] public int ReplicationFactor { get { return this._replicationFactor.GetValueOrDefault(); } set { this._replicationFactor = value; } } // Check to see if ReplicationFactor property is set internal bool IsSetReplicationFactor() { return this._replicationFactor.HasValue; } /// /// Gets and sets the property SecurityGroupIds. /// /// A list of security group IDs to be assigned to each node in the DAX cluster. (Each /// of the security group ID is system-generated.) /// /// /// /// If this parameter is not specified, DAX assigns the default VPC security group to /// each node. /// /// 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 SSESpecification. /// /// Represents the settings used to enable server-side encryption on the cluster. /// /// public SSESpecification SSESpecification { get { return this._sseSpecification; } set { this._sseSpecification = value; } } // Check to see if SSESpecification property is set internal bool IsSetSSESpecification() { return this._sseSpecification != null; } /// /// Gets and sets the property SubnetGroupName. /// /// The name of the subnet group to be used for the replication group. /// /// /// /// DAX clusters can only run in an Amazon VPC environment. All of the subnets that you /// specify in a subnet group must exist in the same VPC. /// /// /// 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 Tags. /// /// A set of tags to associate with the DAX cluster. /// /// 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; } } }