/* * 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 ModifyCluster operation. /// Modifies the settings for a cluster. /// /// /// /// You can also change node type and the number of nodes to scale up or down the cluster. /// When resizing a cluster, you must specify both the number of nodes and the node type /// even if one of the parameters does not change. /// /// /// /// You can add another security or parameter group, or change the admin user password. /// Resetting a cluster password or modifying the security groups associated with a cluster /// do not need a reboot. However, modifying a parameter group requires a reboot for parameters /// to take effect. For more information about managing clusters, go to Amazon /// Redshift Clusters in the Amazon Redshift Cluster Management Guide. /// /// public partial class ModifyClusterRequest : AmazonRedshiftRequest { private bool? _allowVersionUpgrade; private int? _automatedSnapshotRetentionPeriod; private string _availabilityZone; private bool? _availabilityZoneRelocation; private string _clusterIdentifier; private string _clusterParameterGroupName; private List _clusterSecurityGroups = new List(); private string _clusterType; private string _clusterVersion; private string _elasticIp; private bool? _encrypted; private bool? _enhancedVpcRouting; private string _hsmClientCertificateIdentifier; private string _hsmConfigurationIdentifier; private string _kmsKeyId; private string _maintenanceTrackName; private int? _manualSnapshotRetentionPeriod; private string _masterUserPassword; private string _newClusterIdentifier; private string _nodeType; private int? _numberOfNodes; private int? _port; private string _preferredMaintenanceWindow; private bool? _publiclyAccessible; private List _vpcSecurityGroupIds = new List(); /// /// Gets and sets the property AllowVersionUpgrade. /// /// If true, major version upgrades will be applied automatically to the /// cluster during the maintenance window. /// /// /// /// Default: false /// /// 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 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. /// /// /// /// If you decrease the automated snapshot retention period from its current value, existing /// automated snapshots that fall outside of the new retention period will be immediately /// deleted. /// /// /// /// You can't disable automated snapshots for RA3 node types. Set the automated retention /// period from 1-35 days. /// /// /// /// Default: Uses existing setting. /// /// /// /// 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 option to initiate relocation for an Amazon Redshift cluster to the target Availability /// Zone. /// /// [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 modification is complete. /// /// 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. /// /// The unique identifier of the cluster to be modified. /// /// /// /// Example: examplecluster /// /// [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 cluster parameter group to apply to this cluster. This change is applied /// only after the cluster is rebooted. To reboot a cluster use RebootCluster. /// /// /// /// /// Default: Uses existing setting. /// /// /// /// Constraints: The cluster parameter group must be in the same parameter group family /// that matches the cluster version. /// /// [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 cluster security groups to be authorized on this cluster. This change is /// asynchronously applied as soon as possible. /// /// /// /// Security groups currently associated with the cluster, and not in the list of groups /// to apply, will be revoked from the cluster. /// /// /// /// 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 /// ///
///
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 ClusterType. /// /// The new cluster type. /// /// /// /// When you submit your cluster resize request, your existing cluster goes into a read-only /// mode. After Amazon Redshift provisions a new cluster based on your resize requirements, /// there will be outage for a period while the old cluster is deleted and your connection /// is switched to the new cluster. You can use DescribeResize to track the progress /// of the resize request. /// /// /// /// Valid Values: multi-node | single-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 new version number of the Amazon Redshift engine to upgrade to. /// /// /// /// For major version upgrades, if a non-default cluster parameter group is currently /// in use, a new cluster parameter group in the cluster parameter group family for the /// new version must be specified. The new cluster parameter group can be the default /// for that cluster parameter group family. For more information about parameters and /// parameter groups, go to Amazon /// Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide. /// /// /// /// 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 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. 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. /// /// Indicates whether the cluster is encrypted. If the value is encrypted (true) and you /// provide a value for the KmsKeyId parameter, we encrypt the cluster with /// the provided KmsKeyId. If you don't provide a KmsKeyId, /// we encrypt with the default key. /// /// /// /// If the value is not encrypted (false), then the cluster is decrypted. /// /// 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 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 MaintenanceTrackName. /// /// The name for the maintenance track that you want to assign for the cluster. This name /// change is asynchronous. The new track name stays in the PendingModifiedValues /// for the cluster until the next maintenance window. When the maintenance track changes, /// the cluster is switched to the latest cluster release available for the maintenance /// track. At this point, the maintenance track name is applied. /// /// [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 for number of days that a newly created manual snapshot is retained. If /// the value is -1, the manual snapshot is retained indefinitely. This value doesn't /// retroactively change the retention periods of existing manual snapshots. /// /// /// /// The value must be either -1 or an integer between 1 and 3,653. /// /// /// /// The default value is -1. /// /// 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 MasterUserPassword. /// /// The new password for the cluster admin user. This change is asynchronously applied /// as soon as possible. Between the time of the request and the completion of the request, /// the MasterUserPassword element exists in the PendingModifiedValues /// element of the operation response. /// /// /// /// Operations never return the password, so this operation provides a way to regain access /// to the admin user account for a cluster if the password is lost. /// /// /// /// Default: Uses existing setting. /// /// /// /// 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(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 NewClusterIdentifier. /// /// The new identifier for the cluster. /// /// /// /// 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: examplecluster /// ///
[AWSProperty(Max=2147483647)] public string NewClusterIdentifier { get { return this._newClusterIdentifier; } set { this._newClusterIdentifier = value; } } // Check to see if NewClusterIdentifier property is set internal bool IsSetNewClusterIdentifier() { return this._newClusterIdentifier != null; } /// /// Gets and sets the property NodeType. /// /// The new node type of the cluster. If you specify a new node type, you must also specify /// the number of nodes parameter. /// /// /// /// For more information about resizing clusters, go to Resizing /// Clusters in Amazon Redshift 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(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 new number of nodes of the cluster. If you specify a new number of nodes, you /// must also specify the node type parameter. /// /// /// /// For more information about resizing clusters, go to Resizing /// Clusters in Amazon Redshift in the Amazon Redshift Cluster Management Guide. /// /// /// /// Valid Values: Integer greater than 0. /// /// 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 option to change the port of an Amazon Redshift cluster. /// /// 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 system maintenance can occur, if necessary. /// If system maintenance is necessary during the window, it may result in an outage. /// /// /// /// This maintenance window change is made immediately. If the new maintenance window /// indicates the current time, there must be at least 120 minutes between the current /// time and end of the window in order to ensure that pending changes are applied. /// /// /// /// Default: Uses existing setting. /// /// /// /// Format: ddd:hh24:mi-ddd:hh24:mi, for example wed:07:30-wed:08:00. /// /// /// /// Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun /// /// /// /// Constraints: Must be at least 30 minutes. /// /// [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. Only clusters /// in VPCs can be set to be publicly available. /// /// 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 VpcSecurityGroupIds. /// /// A list of virtual private cloud (VPC) security groups to be associated with the cluster. /// This change is asynchronously applied as soon as possible. /// /// 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; } } }