/* * 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 redshift-2012-12-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.Redshift.Model { /// /// Container for the parameters to the CreateCluster operation. /// Creates a new cluster with the specified parameters. /// /// /// /// To create a cluster in Virtual Private Cloud (VPC), you must provide a cluster subnet /// group name. The cluster subnet group identifies the subnets of your VPC that Amazon /// Redshift uses when creating the cluster. For more information about managing clusters, /// go to Amazon /// Redshift Clusters in the Amazon Redshift Cluster Management Guide. /// /// public partial class CreateClusterRequest : AmazonRedshiftRequest { private string _additionalInfo; private bool? _allowVersionUpgrade; private AquaConfigurationStatus _aquaConfigurationStatus; private int? _automatedSnapshotRetentionPeriod; private string _availabilityZone; private bool? _availabilityZoneRelocation; private string _clusterIdentifier; private string _clusterParameterGroupName; private List _clusterSecurityGroups = new List(); private string _clusterSubnetGroupName; private string _clusterType; private string _clusterVersion; private string _dbName; private string _defaultIamRoleArn; private string _elasticIp; private bool? _encrypted; private bool? _enhancedVpcRouting; private string _hsmClientCertificateIdentifier; private string _hsmConfigurationIdentifier; private List _iamRoles = new List(); private string _kmsKeyId; private string _loadSampleData; private string _maintenanceTrackName; private int? _manualSnapshotRetentionPeriod; private string _masterUsername; private string _masterUserPassword; private string _nodeType; private int? _numberOfNodes; private int? _port; private string _preferredMaintenanceWindow; private bool? _publiclyAccessible; private string _snapshotScheduleIdentifier; private List _tags = new List(); private List _vpcSecurityGroupIds = new List(); /// /// Gets and sets the property AdditionalInfo. /// /// Reserved. /// /// [AWSProperty(Max=2147483647)] public string AdditionalInfo { get { return this._additionalInfo; } set { this._additionalInfo = value; } } // Check to see if AdditionalInfo property is set internal bool IsSetAdditionalInfo() { return this._additionalInfo != null; } /// /// Gets and sets the property AllowVersionUpgrade. /// /// If true, major version upgrades can be applied during the maintenance /// window to the Amazon Redshift engine that is running on the cluster. /// /// /// /// When a new major version of the Amazon Redshift engine is released, you can request /// that the service automatically apply upgrades during the maintenance window to the /// Amazon Redshift engine that is running on your cluster. /// /// /// /// Default: true /// /// public bool AllowVersionUpgrade { get { return this._allowVersionUpgrade.GetValueOrDefault(); } set { this._allowVersionUpgrade = value; } } // Check to see if AllowVersionUpgrade property is set internal bool IsSetAllowVersionUpgrade() { return this._allowVersionUpgrade.HasValue; } /// /// Gets and sets the property AquaConfigurationStatus. /// /// This parameter is retired. It does not set the AQUA configuration status. Amazon Redshift /// automatically determines whether to use AQUA (Advanced Query Accelerator). /// /// public AquaConfigurationStatus AquaConfigurationStatus { get { return this._aquaConfigurationStatus; } set { this._aquaConfigurationStatus = value; } } // Check to see if AquaConfigurationStatus property is set internal bool IsSetAquaConfigurationStatus() { return this._aquaConfigurationStatus != null; } /// /// Gets and sets the property AutomatedSnapshotRetentionPeriod. /// /// The number of days that automated snapshots are retained. If the value is 0, automated /// snapshots are disabled. Even if automated snapshots are disabled, you can still create /// manual snapshots when you want with CreateClusterSnapshot. /// /// /// /// You can't disable automated snapshots for RA3 node types. Set the automated retention /// period from 1-35 days. /// /// /// /// Default: 1 /// /// /// /// Constraints: Must be a value from 0 to 35. /// /// public int AutomatedSnapshotRetentionPeriod { get { return this._automatedSnapshotRetentionPeriod.GetValueOrDefault(); } set { this._automatedSnapshotRetentionPeriod = value; } } // Check to see if AutomatedSnapshotRetentionPeriod property is set internal bool IsSetAutomatedSnapshotRetentionPeriod() { return this._automatedSnapshotRetentionPeriod.HasValue; } /// /// Gets and sets the property AvailabilityZone. /// /// The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the /// cluster. For example, if you have several EC2 instances running in a specific Availability /// Zone, then you might want the cluster to be provisioned in the same zone in order /// to decrease network latency. /// /// /// /// Default: A random, system-chosen Availability Zone in the region that is specified /// by the endpoint. /// /// /// /// Example: us-east-2d /// /// /// /// Constraint: The specified Availability Zone must be in the same region as the current /// endpoint. /// /// [AWSProperty(Max=2147483647)] public string AvailabilityZone { get { return this._availabilityZone; } set { this._availabilityZone = value; } } // Check to see if AvailabilityZone property is set internal bool IsSetAvailabilityZone() { return this._availabilityZone != null; } /// /// Gets and sets the property AvailabilityZoneRelocation. /// /// The option to enable relocation for an Amazon Redshift cluster between Availability /// Zones after the cluster is created. /// /// public bool AvailabilityZoneRelocation { get { return this._availabilityZoneRelocation.GetValueOrDefault(); } set { this._availabilityZoneRelocation = value; } } // Check to see if AvailabilityZoneRelocation property is set internal bool IsSetAvailabilityZoneRelocation() { return this._availabilityZoneRelocation.HasValue; } /// /// Gets and sets the property ClusterIdentifier. /// /// A unique identifier for the cluster. You use this identifier to refer to the cluster /// for any subsequent cluster operations such as deleting or modifying. The identifier /// also appears in the Amazon Redshift console. /// /// /// /// Constraints: /// ///
  • /// /// Must contain from 1 to 63 alphanumeric characters or hyphens. /// ///
  • /// /// Alphabetic characters must be lowercase. /// ///
  • /// /// First character must be a letter. /// ///
  • /// /// Cannot end with a hyphen or contain two consecutive hyphens. /// ///
  • /// /// Must be unique for all clusters within an Amazon Web Services account. /// ///
/// /// Example: myexamplecluster /// ///
[AWSProperty(Required=true, Max=2147483647)] public string ClusterIdentifier { get { return this._clusterIdentifier; } set { this._clusterIdentifier = value; } } // Check to see if ClusterIdentifier property is set internal bool IsSetClusterIdentifier() { return this._clusterIdentifier != null; } /// /// Gets and sets the property ClusterParameterGroupName. /// /// The name of the parameter group to be associated with this cluster. /// /// /// /// Default: The default Amazon Redshift cluster parameter group. For information about /// the default parameter group, go to Working /// with Amazon Redshift Parameter Groups /// /// /// /// Constraints: /// ///
  • /// /// Must be 1 to 255 alphanumeric characters or hyphens. /// ///
  • /// /// First character must be a letter. /// ///
  • /// /// Cannot end with a hyphen or contain two consecutive hyphens. /// ///
///
[AWSProperty(Max=2147483647)] public string ClusterParameterGroupName { get { return this._clusterParameterGroupName; } set { this._clusterParameterGroupName = value; } } // Check to see if ClusterParameterGroupName property is set internal bool IsSetClusterParameterGroupName() { return this._clusterParameterGroupName != null; } /// /// Gets and sets the property ClusterSecurityGroups. /// /// A list of security groups to be associated with this cluster. /// /// /// /// Default: The default cluster security group for Amazon Redshift. /// /// public List ClusterSecurityGroups { get { return this._clusterSecurityGroups; } set { this._clusterSecurityGroups = value; } } // Check to see if ClusterSecurityGroups property is set internal bool IsSetClusterSecurityGroups() { return this._clusterSecurityGroups != null && this._clusterSecurityGroups.Count > 0; } /// /// Gets and sets the property ClusterSubnetGroupName. /// /// The name of a cluster subnet group to be associated with this cluster. /// /// /// /// If this parameter is not provided the resulting cluster will be deployed outside virtual /// private cloud (VPC). /// /// [AWSProperty(Max=2147483647)] public string ClusterSubnetGroupName { get { return this._clusterSubnetGroupName; } set { this._clusterSubnetGroupName = value; } } // Check to see if ClusterSubnetGroupName property is set internal bool IsSetClusterSubnetGroupName() { return this._clusterSubnetGroupName != null; } /// /// Gets and sets the property ClusterType. /// /// The type of the cluster. When cluster type is specified as /// ///
  • /// /// single-node, the NumberOfNodes parameter is not required. /// ///
  • /// /// multi-node, the NumberOfNodes parameter is required. /// ///
/// /// Valid Values: multi-node | single-node /// /// /// /// Default: multi-node /// ///
[AWSProperty(Max=2147483647)] public string ClusterType { get { return this._clusterType; } set { this._clusterType = value; } } // Check to see if ClusterType property is set internal bool IsSetClusterType() { return this._clusterType != null; } /// /// Gets and sets the property ClusterVersion. /// /// The version of the Amazon Redshift engine software that you want to deploy on the /// cluster. /// /// /// /// The version selected runs on all the nodes in the cluster. /// /// /// /// Constraints: Only version 1.0 is currently available. /// /// /// /// Example: 1.0 /// /// [AWSProperty(Max=2147483647)] public string ClusterVersion { get { return this._clusterVersion; } set { this._clusterVersion = value; } } // Check to see if ClusterVersion property is set internal bool IsSetClusterVersion() { return this._clusterVersion != null; } /// /// Gets and sets the property DBName. /// /// The name of the first database to be created when the cluster is created. /// /// /// /// To create additional databases after the cluster is created, connect to the cluster /// with a SQL client and use SQL commands to create a database. For more information, /// go to Create /// a Database in the Amazon Redshift Database Developer Guide. /// /// /// /// Default: dev /// /// /// /// Constraints: /// ///
  • /// /// Must contain 1 to 64 alphanumeric characters. /// ///
  • /// /// Must contain only lowercase letters. /// ///
  • /// /// Cannot be a word that is reserved by the service. A list of reserved words can be /// found in Reserved /// Words in the Amazon Redshift Database Developer Guide. /// ///
///
[AWSProperty(Max=2147483647)] public string DBName { get { return this._dbName; } set { this._dbName = value; } } // Check to see if DBName property is set internal bool IsSetDBName() { return this._dbName != null; } /// /// Gets and sets the property DefaultIamRoleArn. /// /// The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster /// when the cluster was created. /// /// [AWSProperty(Max=2147483647)] public string DefaultIamRoleArn { get { return this._defaultIamRoleArn; } set { this._defaultIamRoleArn = value; } } // Check to see if DefaultIamRoleArn property is set internal bool IsSetDefaultIamRoleArn() { return this._defaultIamRoleArn != null; } /// /// Gets and sets the property ElasticIp. /// /// The Elastic IP (EIP) address for the cluster. /// /// /// /// Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through /// an Internet gateway. Don't specify the Elastic IP address for a publicly accessible /// cluster with availability zone relocation turned on. For more information about provisioning /// clusters in EC2-VPC, go to Supported /// Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management Guide. /// /// [AWSProperty(Max=2147483647)] public string ElasticIp { get { return this._elasticIp; } set { this._elasticIp = value; } } // Check to see if ElasticIp property is set internal bool IsSetElasticIp() { return this._elasticIp != null; } /// /// Gets and sets the property Encrypted. /// /// If true, the data in the cluster is encrypted at rest. /// /// /// /// Default: false /// /// public bool Encrypted { get { return this._encrypted.GetValueOrDefault(); } set { this._encrypted = value; } } // Check to see if Encrypted property is set internal bool IsSetEncrypted() { return this._encrypted.HasValue; } /// /// Gets and sets the property EnhancedVpcRouting. /// /// An option that specifies whether to create the cluster with enhanced VPC routing enabled. /// To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. /// For more information, see Enhanced /// VPC Routing in the Amazon Redshift Cluster Management Guide. /// /// /// /// If this option is true, enhanced VPC routing is enabled. /// /// /// /// Default: false /// /// public bool EnhancedVpcRouting { get { return this._enhancedVpcRouting.GetValueOrDefault(); } set { this._enhancedVpcRouting = value; } } // Check to see if EnhancedVpcRouting property is set internal bool IsSetEnhancedVpcRouting() { return this._enhancedVpcRouting.HasValue; } /// /// Gets and sets the property HsmClientCertificateIdentifier. /// /// Specifies the name of the HSM client certificate the Amazon Redshift cluster uses /// to retrieve the data encryption keys stored in an HSM. /// /// [AWSProperty(Max=2147483647)] public string HsmClientCertificateIdentifier { get { return this._hsmClientCertificateIdentifier; } set { this._hsmClientCertificateIdentifier = value; } } // Check to see if HsmClientCertificateIdentifier property is set internal bool IsSetHsmClientCertificateIdentifier() { return this._hsmClientCertificateIdentifier != null; } /// /// Gets and sets the property HsmConfigurationIdentifier. /// /// Specifies the name of the HSM configuration that contains the information the Amazon /// Redshift cluster can use to retrieve and store keys in an HSM. /// /// [AWSProperty(Max=2147483647)] public string HsmConfigurationIdentifier { get { return this._hsmConfigurationIdentifier; } set { this._hsmConfigurationIdentifier = value; } } // Check to see if HsmConfigurationIdentifier property is set internal bool IsSetHsmConfigurationIdentifier() { return this._hsmConfigurationIdentifier != null; } /// /// Gets and sets the property IamRoles. /// /// A list of Identity and Access Management (IAM) roles that can be used by the cluster /// to access other Amazon Web Services services. You must supply the IAM roles in their /// Amazon Resource Name (ARN) format. /// /// /// /// The maximum number of IAM roles that you can associate is subject to a quota. For /// more information, go to Quotas /// and limits in the Amazon Redshift Cluster Management Guide. /// /// public List IamRoles { get { return this._iamRoles; } set { this._iamRoles = value; } } // Check to see if IamRoles property is set internal bool IsSetIamRoles() { return this._iamRoles != null && this._iamRoles.Count > 0; } /// /// Gets and sets the property KmsKeyId. /// /// The Key Management Service (KMS) key ID of the encryption key that you want to use /// to encrypt data in the cluster. /// /// [AWSProperty(Max=2147483647)] 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 LoadSampleData. /// /// A flag that specifies whether to load sample data once the cluster is created. /// /// [AWSProperty(Max=2147483647)] public string LoadSampleData { get { return this._loadSampleData; } set { this._loadSampleData = value; } } // Check to see if LoadSampleData property is set internal bool IsSetLoadSampleData() { return this._loadSampleData != null; } /// /// Gets and sets the property MaintenanceTrackName. /// /// An optional parameter for the name of the maintenance track for the cluster. If you /// don't provide a maintenance track name, the cluster is assigned to the current /// track. /// /// [AWSProperty(Max=2147483647)] public string MaintenanceTrackName { get { return this._maintenanceTrackName; } set { this._maintenanceTrackName = value; } } // Check to see if MaintenanceTrackName property is set internal bool IsSetMaintenanceTrackName() { return this._maintenanceTrackName != null; } /// /// Gets and sets the property ManualSnapshotRetentionPeriod. /// /// The default number of days to retain a manual snapshot. If the value is -1, the snapshot /// is retained indefinitely. This setting doesn't change the retention period of existing /// snapshots. /// /// /// /// The value must be either -1 or an integer between 1 and 3,653. /// /// public int ManualSnapshotRetentionPeriod { get { return this._manualSnapshotRetentionPeriod.GetValueOrDefault(); } set { this._manualSnapshotRetentionPeriod = value; } } // Check to see if ManualSnapshotRetentionPeriod property is set internal bool IsSetManualSnapshotRetentionPeriod() { return this._manualSnapshotRetentionPeriod.HasValue; } /// /// Gets and sets the property MasterUsername. /// /// The user name associated with the admin user account for the cluster that is being /// created. /// /// /// /// Constraints: /// ///
  • /// /// Must be 1 - 128 alphanumeric characters or hyphens. The user name can't be PUBLIC. /// ///
  • /// /// Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), /// at symbol (@), or hyphen. /// ///
  • /// /// The first character must be a letter. /// ///
  • /// /// Must not contain a colon (:) or a slash (/). /// ///
  • /// /// Cannot be a reserved word. A list of reserved words can be found in Reserved /// Words in the Amazon Redshift Database Developer Guide. /// ///
///
[AWSProperty(Required=true, Max=2147483647)] public string MasterUsername { get { return this._masterUsername; } set { this._masterUsername = value; } } // Check to see if MasterUsername property is set internal bool IsSetMasterUsername() { return this._masterUsername != null; } /// /// Gets and sets the property MasterUserPassword. /// /// The password associated with the admin user account for the cluster that is being /// created. /// /// /// /// Constraints: /// ///
  • /// /// Must be between 8 and 64 characters in length. /// ///
  • /// /// Must contain at least one uppercase letter. /// ///
  • /// /// Must contain at least one lowercase letter. /// ///
  • /// /// Must contain one number. /// ///
  • /// /// Can be any printable ASCII character (ASCII code 33-126) except ' (single /// quote), " (double quote), \, /, or @. /// ///
///
[AWSProperty(Required=true, Max=2147483647)] public string MasterUserPassword { get { return this._masterUserPassword; } set { this._masterUserPassword = value; } } // Check to see if MasterUserPassword property is set internal bool IsSetMasterUserPassword() { return this._masterUserPassword != null; } /// /// Gets and sets the property NodeType. /// /// The node type to be provisioned for the cluster. For information about node types, /// go to /// Working with Clusters in the Amazon Redshift Cluster Management Guide. /// /// /// /// /// Valid Values: ds2.xlarge | ds2.8xlarge | dc1.large /// | dc1.8xlarge | dc2.large | dc2.8xlarge | ra3.xlplus /// | ra3.4xlarge | ra3.16xlarge /// /// [AWSProperty(Required=true, Max=2147483647)] 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 NumberOfNodes. /// /// The number of compute nodes in the cluster. This parameter is required when the ClusterType /// parameter is specified as multi-node. /// /// /// /// For information about determining how many nodes you need, go to /// Working with Clusters in the Amazon Redshift Cluster Management Guide. /// /// /// /// /// If you don't specify this parameter, you get a single-node cluster. When requesting /// a multi-node cluster, you must specify the number of nodes that you want in the cluster. /// /// /// /// Default: 1 /// /// /// /// Constraints: Value must be at least 1 and no more than 100. /// /// public int NumberOfNodes { get { return this._numberOfNodes.GetValueOrDefault(); } set { this._numberOfNodes = value; } } // Check to see if NumberOfNodes property is set internal bool IsSetNumberOfNodes() { return this._numberOfNodes.HasValue; } /// /// Gets and sets the property Port. /// /// The port number on which the cluster accepts incoming connections. /// /// /// /// The cluster is accessible only via the JDBC and ODBC connection strings. Part of the /// connection string requires the port on which the cluster will listen for incoming /// connections. /// /// /// /// Default: 5439 /// /// /// /// Valid Values: 1150-65535 /// /// 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 PreferredMaintenanceWindow. /// /// The weekly time range (in UTC) during which automated cluster maintenance can occur. /// /// /// /// Format: ddd:hh24:mi-ddd:hh24:mi /// /// /// /// Default: A 30-minute window selected at random from an 8-hour block of time per region, /// occurring on a random day of the week. For more information about the time blocks /// for each region, see Maintenance /// Windows in Amazon Redshift Cluster Management Guide. /// /// /// /// Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun /// /// /// /// Constraints: Minimum 30-minute window. /// /// [AWSProperty(Max=2147483647)] 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 PubliclyAccessible. /// /// If true, the cluster can be accessed from a public network. /// /// public bool PubliclyAccessible { get { return this._publiclyAccessible.GetValueOrDefault(); } set { this._publiclyAccessible = value; } } // Check to see if PubliclyAccessible property is set internal bool IsSetPubliclyAccessible() { return this._publiclyAccessible.HasValue; } /// /// Gets and sets the property SnapshotScheduleIdentifier. /// /// A unique identifier for the snapshot schedule. /// /// [AWSProperty(Max=2147483647)] public string SnapshotScheduleIdentifier { get { return this._snapshotScheduleIdentifier; } set { this._snapshotScheduleIdentifier = value; } } // Check to see if SnapshotScheduleIdentifier property is set internal bool IsSetSnapshotScheduleIdentifier() { return this._snapshotScheduleIdentifier != null; } /// /// Gets and sets the property Tags. /// /// A list of tag instances. /// /// 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 VpcSecurityGroupIds. /// /// A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster. /// /// /// /// Default: The default VPC security group is associated with the cluster. /// /// public List VpcSecurityGroupIds { get { return this._vpcSecurityGroupIds; } set { this._vpcSecurityGroupIds = value; } } // Check to see if VpcSecurityGroupIds property is set internal bool IsSetVpcSecurityGroupIds() { return this._vpcSecurityGroupIds != null && this._vpcSecurityGroupIds.Count > 0; } } }