/* * 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 RestoreFromClusterSnapshot operation. /// Creates a new cluster from a snapshot. By default, Amazon Redshift creates the resulting /// cluster with the same configuration as the original cluster from which the snapshot /// was created, except that the new cluster is created with the default cluster security /// and parameter groups. After Amazon Redshift creates the cluster, you can use the ModifyCluster /// API to associate a different security group and different parameter group with the /// restored cluster. If you are using a DS node type, you can also choose to change to /// another DS node type of the same size during restore. /// /// /// /// If you restore a cluster into a VPC, you must provide a cluster subnet group where /// you want the cluster restored. /// /// /// /// For more information about working with snapshots, go to Amazon /// Redshift Snapshots in the Amazon Redshift Cluster Management Guide. /// /// public partial class RestoreFromClusterSnapshotRequest : 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 _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 _maintenanceTrackName; private int? _manualSnapshotRetentionPeriod; private string _nodeType; private int? _numberOfNodes; private string _ownerAccount; private int? _port; private string _preferredMaintenanceWindow; private bool? _publiclyAccessible; private string _reservedNodeId; private string _snapshotArn; private string _snapshotClusterIdentifier; private string _snapshotIdentifier; private string _snapshotScheduleIdentifier; private string _targetReservedNodeOfferingId; 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. /// /// /// /// 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: The value selected for the cluster from which the snapshot was taken. /// /// /// /// 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 Amazon EC2 Availability Zone in which to restore the cluster. /// /// /// /// Default: A random, system-chosen Availability Zone. /// /// /// /// Example: us-east-2a /// /// [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 restored. /// /// 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 identifier of the cluster that will be created from restoring the snapshot. /// /// /// /// 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. /// ///
///
[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. /// /// /// /// Cluster security groups only apply to clusters outside of VPCs. /// /// 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 the subnet group where you want to cluster restored. /// /// /// /// A snapshot of cluster in VPC can be restored only in VPC. Therefore, you must provide /// subnet group name where you want the cluster restored. /// /// [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 DefaultIamRoleArn. /// /// The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster /// when the cluster was last modified while it was restored from a snapshot. /// /// [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. Don't specify the Elastic IP address /// for a publicly accessible cluster with availability zone relocation turned on. /// /// [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. /// /// Enables support for restoring an unencrypted snapshot to a cluster encrypted with /// Key Management Service (KMS) and a customer managed key. /// /// 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 encrypts data in /// the cluster restored from a shared snapshot. You can also provide the key ID when /// you restore from an unencrypted snapshot to an encrypted cluster in the same account. /// Additionally, you can specify a new KMS key ID when you restore from an encrypted /// snapshot in the same account in order to change it. In that case, the restored cluster /// is encrypted with the new KMS key ID. /// /// [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 of the maintenance track for the restored cluster. When you take a snapshot, /// the snapshot inherits the MaintenanceTrack value from the cluster. The /// snapshot might be on a different track than the cluster that was the source for the /// snapshot. For example, suppose that you take a snapshot of a cluster that is on the /// current track and then change the cluster to be on the trailing track. In this case, /// the snapshot and the source cluster are on different tracks. /// /// [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 NodeType. /// /// The node type that the restored cluster will be provisioned with. /// /// /// /// Default: The node type of the cluster from which the snapshot was taken. You can modify /// this if you are using any DS node type. In that case, you can choose to restore into /// another DS node type of the same size. For example, you can restore ds1.8xlarge into /// ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have a DC instance type, you must /// restore into that same instance type and size. In other words, you can only restore /// a dc1.large instance type into another dc1.large instance type or dc2.large instance /// type. You can't restore dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge /// cluster, then resize to a dc2.8large cluster. For more information about node types, /// see /// About Clusters and Nodes in the Amazon Redshift Cluster Management Guide. /// /// /// [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 number of nodes specified when provisioning the restored cluster. /// /// 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 OwnerAccount. /// /// The Amazon Web Services account used to create or copy the snapshot. Required if you /// are restoring a snapshot you do not own, optional if you own the snapshot. /// /// [AWSProperty(Max=2147483647)] public string OwnerAccount { get { return this._ownerAccount; } set { this._ownerAccount = value; } } // Check to see if OwnerAccount property is set internal bool IsSetOwnerAccount() { return this._ownerAccount != null; } /// /// Gets and sets the property Port. /// /// The port number on which the cluster accepts connections. /// /// /// /// Default: The same port as the original cluster. /// /// /// /// Constraints: Must be between 1115 and 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: The value selected for the cluster from which the snapshot was taken. 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 ReservedNodeId. /// /// The identifier of the target reserved node offering. /// /// [AWSProperty(Max=2147483647)] public string ReservedNodeId { get { return this._reservedNodeId; } set { this._reservedNodeId = value; } } // Check to see if ReservedNodeId property is set internal bool IsSetReservedNodeId() { return this._reservedNodeId != null; } /// /// Gets and sets the property SnapshotArn. /// /// The Amazon Resource Name (ARN) of the snapshot associated with the message to restore /// from a cluster. You must specify this parameter or snapshotIdentifier, /// but not both. /// /// [AWSProperty(Max=2147483647)] public string SnapshotArn { get { return this._snapshotArn; } set { this._snapshotArn = value; } } // Check to see if SnapshotArn property is set internal bool IsSetSnapshotArn() { return this._snapshotArn != null; } /// /// Gets and sets the property SnapshotClusterIdentifier. /// /// The name of the cluster the source snapshot was created from. This parameter is required /// if your IAM user has a policy containing a snapshot resource element that specifies /// anything other than * for the cluster name. /// /// [AWSProperty(Max=2147483647)] public string SnapshotClusterIdentifier { get { return this._snapshotClusterIdentifier; } set { this._snapshotClusterIdentifier = value; } } // Check to see if SnapshotClusterIdentifier property is set internal bool IsSetSnapshotClusterIdentifier() { return this._snapshotClusterIdentifier != null; } /// /// Gets and sets the property SnapshotIdentifier. /// /// The name of the snapshot from which to create the new cluster. This parameter isn't /// case sensitive. You must specify this parameter or snapshotArn, but not /// both. /// /// /// /// Example: my-snapshot-id /// /// [AWSProperty(Max=2147483647)] public string SnapshotIdentifier { get { return this._snapshotIdentifier; } set { this._snapshotIdentifier = value; } } // Check to see if SnapshotIdentifier property is set internal bool IsSetSnapshotIdentifier() { return this._snapshotIdentifier != null; } /// /// 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 TargetReservedNodeOfferingId. /// /// The identifier of the target reserved node offering. /// /// [AWSProperty(Max=2147483647)] public string TargetReservedNodeOfferingId { get { return this._targetReservedNodeOfferingId; } set { this._targetReservedNodeOfferingId = value; } } // Check to see if TargetReservedNodeOfferingId property is set internal bool IsSetTargetReservedNodeOfferingId() { return this._targetReservedNodeOfferingId != null; } /// /// 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. /// /// /// /// VPC security groups only apply to clusters in VPCs. /// /// 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; } } }