/* * 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 rds-2014-10-31.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.RDS.Model { /// /// Container for the parameters to the RestoreDBClusterFromSnapshot operation. /// Creates a new DB cluster from a DB snapshot or DB cluster snapshot. /// /// /// /// The target DB cluster is created from the source snapshot with a default configuration. /// If you don't specify a security group, the new DB cluster is associated with the default /// security group. /// /// /// /// This action only restores the DB cluster, not the DB instances for that DB cluster. /// You must invoke the CreateDBInstance action to create DB instances for /// the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. /// You can create DB instances only after the RestoreDBClusterFromSnapshot /// action has completed and the DB cluster is available. /// /// /// /// For more information on Amazon Aurora DB clusters, see /// What is Amazon Aurora? in the Amazon Aurora User Guide. /// /// /// /// For more information on Multi-AZ DB clusters, see /// Multi-AZ DB cluster deployments in the Amazon RDS User Guide. /// /// public partial class RestoreDBClusterFromSnapshotRequest : AmazonRDSRequest { private List _availabilityZones = new List(); private long? _backtrackWindow; private bool? _copyTagsToSnapshot; private string _databaseName; private string _dbClusterIdentifier; private string _dbClusterInstanceClass; private string _dbClusterParameterGroupName; private string _dbSubnetGroupName; private bool? _deletionProtection; private string _domain; private string _domainIAMRoleName; private List _enableCloudwatchLogsExports = new List(); private bool? _enableIAMDatabaseAuthentication; private string _engine; private string _engineMode; private string _engineVersion; private int? _iops; private string _kmsKeyId; private string _networkType; private string _optionGroupName; private int? _port; private bool? _publiclyAccessible; private ScalingConfiguration _scalingConfiguration; private ServerlessV2ScalingConfiguration _serverlessV2ScalingConfiguration; private string _snapshotIdentifier; private string _storageType; private List _tags = new List(); private List _vpcSecurityGroupIds = new List(); /// /// Gets and sets the property AvailabilityZones. /// /// Provides the list of Availability Zones (AZs) where instances in the restored DB cluster /// can be created. /// /// /// /// Valid for: Aurora DB clusters only /// /// 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 BacktrackWindow. /// /// The target backtrack window, in seconds. To disable backtracking, set this value to /// 0. /// /// /// /// Currently, Backtrack is only supported for Aurora MySQL DB clusters. /// /// /// /// Default: 0 /// /// /// /// Constraints: /// ///
  • /// /// If specified, this value must be set to a number from 0 to 259,200 (72 hours). /// ///
/// /// Valid for: Aurora DB clusters only /// ///
public long BacktrackWindow { get { return this._backtrackWindow.GetValueOrDefault(); } set { this._backtrackWindow = value; } } // Check to see if BacktrackWindow property is set internal bool IsSetBacktrackWindow() { return this._backtrackWindow.HasValue; } /// /// Gets and sets the property CopyTagsToSnapshot. /// /// A value that indicates whether to copy all tags from the restored DB cluster to snapshots /// of the restored DB cluster. The default is not to copy them. /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// public bool CopyTagsToSnapshot { get { return this._copyTagsToSnapshot.GetValueOrDefault(); } set { this._copyTagsToSnapshot = value; } } // Check to see if CopyTagsToSnapshot property is set internal bool IsSetCopyTagsToSnapshot() { return this._copyTagsToSnapshot.HasValue; } /// /// Gets and sets the property DatabaseName. /// /// The database name for the restored DB cluster. /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// public string DatabaseName { get { return this._databaseName; } set { this._databaseName = value; } } // Check to see if DatabaseName property is set internal bool IsSetDatabaseName() { return this._databaseName != null; } /// /// Gets and sets the property DBClusterIdentifier. /// /// The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. /// This parameter isn't case-sensitive. /// /// /// /// Constraints: /// ///
  • /// /// Must contain from 1 to 63 letters, numbers, or hyphens /// ///
  • /// /// First character must be a letter /// ///
  • /// /// Can't end with a hyphen or contain two consecutive hyphens /// ///
/// /// Example: my-snapshot-id /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// ///
[AWSProperty(Required=true)] public string DBClusterIdentifier { get { return this._dbClusterIdentifier; } set { this._dbClusterIdentifier = value; } } // Check to see if DBClusterIdentifier property is set internal bool IsSetDBClusterIdentifier() { return this._dbClusterIdentifier != null; } /// /// Gets and sets the property DBClusterInstanceClass. /// /// The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, /// for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon /// Web Services Regions, or for all database engines. /// /// /// /// For the full list of DB instance classes, and availability for your engine, see DB /// Instance Class in the Amazon RDS User Guide. /// /// /// /// Valid for: Multi-AZ DB clusters only /// /// public string DBClusterInstanceClass { get { return this._dbClusterInstanceClass; } set { this._dbClusterInstanceClass = value; } } // Check to see if DBClusterInstanceClass property is set internal bool IsSetDBClusterInstanceClass() { return this._dbClusterInstanceClass != null; } /// /// Gets and sets the property DBClusterParameterGroupName. /// /// The name of the DB cluster parameter group to associate with this DB cluster. If this /// argument is omitted, the default DB cluster parameter group for the specified engine /// is used. /// /// /// /// Constraints: /// ///
  • /// /// If supplied, must match the name of an existing default DB cluster parameter group. /// ///
  • /// /// Must be 1 to 255 letters, numbers, or hyphens. /// ///
  • /// /// First character must be a letter. /// ///
  • /// /// Can't end with a hyphen or contain two consecutive hyphens. /// ///
/// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// ///
public string DBClusterParameterGroupName { get { return this._dbClusterParameterGroupName; } set { this._dbClusterParameterGroupName = value; } } // Check to see if DBClusterParameterGroupName property is set internal bool IsSetDBClusterParameterGroupName() { return this._dbClusterParameterGroupName != null; } /// /// Gets and sets the property DBSubnetGroupName. /// /// The name of the DB subnet group to use for the new DB cluster. /// /// /// /// Constraints: If supplied, must match the name of an existing DB subnet group. /// /// /// /// Example: mydbsubnetgroup /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// public string DBSubnetGroupName { get { return this._dbSubnetGroupName; } set { this._dbSubnetGroupName = value; } } // Check to see if DBSubnetGroupName property is set internal bool IsSetDBSubnetGroupName() { return this._dbSubnetGroupName != null; } /// /// Gets and sets the property DeletionProtection. /// /// A value that indicates whether the DB cluster has deletion protection enabled. The /// database can't be deleted when deletion protection is enabled. By default, deletion /// protection isn't enabled. /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// public bool DeletionProtection { get { return this._deletionProtection.GetValueOrDefault(); } set { this._deletionProtection = value; } } // Check to see if DeletionProtection property is set internal bool IsSetDeletionProtection() { return this._deletionProtection.HasValue; } /// /// Gets and sets the property Domain. /// /// Specify the Active Directory directory ID to restore the DB cluster in. The domain /// must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, /// Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. /// /// /// /// For more information, see /// Kerberos Authentication in the Amazon RDS User Guide. /// /// /// /// Valid for: Aurora DB clusters only /// /// public string Domain { get { return this._domain; } set { this._domain = value; } } // Check to see if Domain property is set internal bool IsSetDomain() { return this._domain != null; } /// /// Gets and sets the property DomainIAMRoleName. /// /// Specify the name of the IAM role to be used when making API calls to the Directory /// Service. /// /// /// /// Valid for: Aurora DB clusters only /// /// public string DomainIAMRoleName { get { return this._domainIAMRoleName; } set { this._domainIAMRoleName = value; } } // Check to see if DomainIAMRoleName property is set internal bool IsSetDomainIAMRoleName() { return this._domainIAMRoleName != null; } /// /// Gets and sets the property EnableCloudwatchLogsExports. /// /// The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs. /// The values in the list depend on the DB engine being used. /// /// /// /// RDS for MySQL /// /// /// /// Possible values are error, general, and slowquery. /// /// /// /// RDS for PostgreSQL /// /// /// /// Possible values are postgresql and upgrade. /// /// /// /// Aurora MySQL /// /// /// /// Possible values are audit, error, general, /// and slowquery. /// /// /// /// Aurora PostgreSQL /// /// /// /// Possible value is postgresql. /// /// /// /// For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing /// Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide. /// /// /// /// For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing /// Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide. /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// public List EnableCloudwatchLogsExports { get { return this._enableCloudwatchLogsExports; } set { this._enableCloudwatchLogsExports = value; } } // Check to see if EnableCloudwatchLogsExports property is set internal bool IsSetEnableCloudwatchLogsExports() { return this._enableCloudwatchLogsExports != null && this._enableCloudwatchLogsExports.Count > 0; } /// /// Gets and sets the property EnableIAMDatabaseAuthentication. /// /// A value that indicates whether to enable mapping of Amazon Web Services Identity and /// Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled. /// /// /// /// For more information, see /// IAM Database Authentication in the Amazon Aurora User Guide. /// /// /// /// Valid for: Aurora DB clusters only /// /// public bool EnableIAMDatabaseAuthentication { get { return this._enableIAMDatabaseAuthentication.GetValueOrDefault(); } set { this._enableIAMDatabaseAuthentication = value; } } // Check to see if EnableIAMDatabaseAuthentication property is set internal bool IsSetEnableIAMDatabaseAuthentication() { return this._enableIAMDatabaseAuthentication.HasValue; } /// /// Gets and sets the property Engine. /// /// The database engine to use for the new DB cluster. /// /// /// /// Default: The same as source /// /// /// /// Constraint: Must be compatible with the engine of the source /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// [AWSProperty(Required=true)] public string Engine { get { return this._engine; } set { this._engine = value; } } // Check to see if Engine property is set internal bool IsSetEngine() { return this._engine != null; } /// /// Gets and sets the property EngineMode. /// /// The DB engine mode of the DB cluster, either provisioned or serverless. /// /// /// /// For more information, see /// CreateDBCluster. /// /// /// /// Valid for: Aurora DB clusters only /// /// public string EngineMode { get { return this._engineMode; } set { this._engineMode = value; } } // Check to see if EngineMode property is set internal bool IsSetEngineMode() { return this._engineMode != null; } /// /// Gets and sets the property EngineVersion. /// /// The version of the database engine to use for the new DB cluster. If you don't specify /// an engine version, the default version for the database engine in the Amazon Web Services /// Region is used. /// /// /// /// To list all of the available engine versions for Aurora MySQL, use the following command: /// /// /// /// aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion" /// /// /// /// /// To list all of the available engine versions for Aurora PostgreSQL, use the following /// command: /// /// /// /// aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion" /// /// /// /// /// To list all of the available engine versions for RDS for MySQL, use the following /// command: /// /// /// /// aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion" /// /// /// /// /// To list all of the available engine versions for RDS for PostgreSQL, use the following /// command: /// /// /// /// aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions[].EngineVersion" /// /// /// /// /// Aurora MySQL /// /// /// /// See Database /// engine updates for Amazon Aurora MySQL in the Amazon Aurora User Guide. /// /// /// /// Aurora PostgreSQL /// /// /// /// See Amazon /// Aurora PostgreSQL releases and engine versions in the Amazon Aurora User Guide. /// /// /// /// MySQL /// /// /// /// See Amazon /// RDS for MySQL in the Amazon RDS User Guide. /// /// /// /// PostgreSQL /// /// /// /// See Amazon /// RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide. /// /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// 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 Iops. /// /// The amount of Provisioned IOPS (input/output operations per second) to be initially /// allocated for each DB instance in the Multi-AZ DB cluster. /// /// /// /// For information about valid IOPS values, see Amazon /// RDS Provisioned IOPS storage in the Amazon RDS User Guide. /// /// /// /// Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB /// instance. /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// public int Iops { get { return this._iops.GetValueOrDefault(); } set { this._iops = value; } } // Check to see if Iops property is set internal bool IsSetIops() { return this._iops.HasValue; } /// /// Gets and sets the property KmsKeyId. /// /// The Amazon Web Services KMS key identifier to use when restoring an encrypted DB cluster /// from a DB snapshot or DB cluster snapshot. /// /// /// /// The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias /// name for the KMS key. To use a KMS key in a different Amazon Web Services account, /// specify the key ARN or alias ARN. /// /// /// /// When you don't specify a value for the KmsKeyId parameter, then the following /// occurs: /// ///
  • /// /// If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is encrypted, /// then the restored DB cluster is encrypted using the KMS key that was used to encrypt /// the DB snapshot or DB cluster snapshot. /// ///
  • /// /// If the DB snapshot or DB cluster snapshot in SnapshotIdentifier isn't /// encrypted, then the restored DB cluster isn't encrypted. /// ///
/// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// ///
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 NetworkType. /// /// The network type of the DB cluster. /// /// /// /// Valid values: /// ///
  • /// /// IPV4 /// ///
  • /// /// DUAL /// ///
/// /// The network type is determined by the DBSubnetGroup specified for the /// DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the /// IPv4 and the IPv6 protocols (DUAL). /// /// /// /// For more information, see /// Working with a DB instance in a VPC in the Amazon Aurora User Guide. /// /// /// /// Valid for: Aurora DB clusters only /// ///
public string NetworkType { get { return this._networkType; } set { this._networkType = value; } } // Check to see if NetworkType property is set internal bool IsSetNetworkType() { return this._networkType != null; } /// /// Gets and sets the property OptionGroupName. /// /// The name of the option group to use for the restored DB cluster. /// /// /// /// DB clusters are associated with a default option group that can't be modified. /// /// public string OptionGroupName { get { return this._optionGroupName; } set { this._optionGroupName = value; } } // Check to see if OptionGroupName property is set internal bool IsSetOptionGroupName() { return this._optionGroupName != null; } /// /// Gets and sets the property Port. /// /// The port number on which the new DB cluster accepts connections. /// /// /// /// Constraints: This value must be 1150-65535 /// /// /// /// Default: The same port as the original DB cluster. /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// 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 PubliclyAccessible. /// /// A value that indicates whether the DB cluster is publicly accessible. /// /// /// /// When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint /// resolves to the private IP address from within the DB cluster's virtual private cloud /// (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. /// Access to the DB cluster is ultimately controlled by the security group it uses. That /// public access is not permitted if the security group assigned to the DB cluster doesn't /// permit it. /// /// /// /// When the DB cluster isn't publicly accessible, it is an internal DB cluster with a /// DNS name that resolves to a private IP address. /// /// /// /// Default: The default behavior varies depending on whether DBSubnetGroupName /// is specified. /// /// /// /// If DBSubnetGroupName isn't specified, and PubliclyAccessible /// isn't specified, the following applies: /// ///
  • /// /// If the default VPC in the target Region doesn’t have an internet gateway attached /// to it, the DB cluster is private. /// ///
  • /// /// If the default VPC in the target Region has an internet gateway attached to it, the /// DB cluster is public. /// ///
/// /// If DBSubnetGroupName is specified, and PubliclyAccessible /// isn't specified, the following applies: /// ///
  • /// /// If the subnets are part of a VPC that doesn’t have an internet gateway attached to /// it, the DB cluster is private. /// ///
  • /// /// If the subnets are part of a VPC that has an internet gateway attached to it, the /// DB cluster is public. /// ///
/// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// ///
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 ScalingConfiguration. /// /// For DB clusters in serverless DB engine mode, the scaling properties /// of the DB cluster. /// /// /// /// Valid for: Aurora DB clusters only /// /// public ScalingConfiguration ScalingConfiguration { get { return this._scalingConfiguration; } set { this._scalingConfiguration = value; } } // Check to see if ScalingConfiguration property is set internal bool IsSetScalingConfiguration() { return this._scalingConfiguration != null; } /// /// Gets and sets the property ServerlessV2ScalingConfiguration. /// public ServerlessV2ScalingConfiguration ServerlessV2ScalingConfiguration { get { return this._serverlessV2ScalingConfiguration; } set { this._serverlessV2ScalingConfiguration = value; } } // Check to see if ServerlessV2ScalingConfiguration property is set internal bool IsSetServerlessV2ScalingConfiguration() { return this._serverlessV2ScalingConfiguration != null; } /// /// Gets and sets the property SnapshotIdentifier. /// /// The identifier for the DB snapshot or DB cluster snapshot to restore from. /// /// /// /// You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster /// snapshot. However, you can use only the ARN to specify a DB snapshot. /// /// /// /// Constraints: /// ///
  • /// /// Must match the identifier of an existing Snapshot. /// ///
/// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// ///
[AWSProperty(Required=true)] 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 StorageType. /// /// Specifies the storage type to be associated with the DB cluster. /// /// /// /// When specified for a Multi-AZ DB cluster, a value for the Iops parameter /// is required. /// /// /// /// Valid values: aurora, aurora-iopt1 (Aurora DB clusters); /// io1 (Multi-AZ DB clusters) /// /// /// /// Default: aurora (Aurora DB clusters); io1 (Multi-AZ DB clusters) /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// public string StorageType { get { return this._storageType; } set { this._storageType = value; } } // Check to see if StorageType property is set internal bool IsSetStorageType() { return this._storageType != null; } /// /// Gets and sets the property Tags. /// /// The tags to be assigned to the restored DB cluster. /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// 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 VPC security groups that the new DB cluster will belong to. /// /// /// /// Valid for: Aurora DB clusters and Multi-AZ DB clusters /// /// 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; } } }