/*
* 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 docdb-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.DocDB.Model
{
///
/// Container for the parameters to the RestoreDBClusterToPointInTime operation.
/// Restores a cluster to an arbitrary point in time. Users can restore to any point in
/// time before LatestRestorableTime
for up to BackupRetentionPeriod
/// days. The target cluster is created from the source cluster with the same configuration
/// as the original cluster, except that the new cluster is created with the default security
/// group.
///
public partial class RestoreDBClusterToPointInTimeRequest : AmazonDocDBRequest
{
private string _dbClusterIdentifier;
private string _dbSubnetGroupName;
private bool? _deletionProtection;
private List _enableCloudwatchLogsExports = new List();
private string _kmsKeyId;
private int? _port;
private DateTime? _restoreToTime;
private string _restoreType;
private string _sourceDBClusterIdentifier;
private List _tags = new List();
private bool? _useLatestRestorableTime;
private List _vpcSecurityGroupIds = new List();
///
/// Gets and sets the property DBClusterIdentifier.
///
/// The name of the new cluster to be created.
///
///
///
/// Constraints:
///
/// -
///
/// Must contain from 1 to 63 letters, numbers, or hyphens.
///
///
-
///
/// The first character must be a letter.
///
///
-
///
/// Cannot end with a hyphen or contain two consecutive hyphens.
///
///
///
[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 DBSubnetGroupName.
///
/// The subnet group name to use for the new cluster.
///
///
///
/// Constraints: If provided, must match the name of an existing DBSubnetGroup
.
///
///
///
/// Example: mySubnetgroup
///
///
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.
///
/// Specifies whether this cluster can be deleted. If DeletionProtection
/// is enabled, the cluster cannot be deleted unless it is modified and DeletionProtection
/// is disabled. DeletionProtection
protects clusters from being accidentally
/// deleted.
///
///
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 EnableCloudwatchLogsExports.
///
/// A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.
///
///
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 KmsKeyId.
///
/// The KMS key identifier to use when restoring an encrypted cluster from an encrypted
/// cluster.
///
///
///
/// The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key.
/// If you are restoring a cluster with the same Amazon Web Services account that owns
/// the KMS encryption key used to encrypt the new cluster, then you can use the KMS key
/// alias instead of the ARN for the KMS encryption key.
///
///
///
/// You can restore to a new cluster and encrypt the new cluster with an KMS key that
/// is different from the KMS key used to encrypt the source cluster. The new DB cluster
/// is encrypted with the KMS key identified by the KmsKeyId
parameter.
///
///
///
/// If you do not specify a value for the KmsKeyId
parameter, then the following
/// occurs:
///
/// -
///
/// If the cluster is encrypted, then the restored cluster is encrypted using the KMS
/// key that was used to encrypt the source cluster.
///
///
-
///
/// If the cluster is not encrypted, then the restored cluster is not encrypted.
///
///
///
/// If DBClusterIdentifier
refers to a cluster that is not encrypted, then
/// the restore request is rejected.
///
///
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 Port.
///
/// The port number on which the new cluster accepts connections.
///
///
///
/// Constraints: Must be a value from 1150
to 65535
.
///
///
///
/// Default: The default port for the engine.
///
///
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 RestoreToTime.
///
/// The date and time to restore the cluster to.
///
///
///
/// Valid values: A time in Universal Coordinated Time (UTC) format.
///
///
///
/// Constraints:
///
/// -
///
/// Must be before the latest restorable time for the instance.
///
///
-
///
/// Must be specified if the
UseLatestRestorableTime
parameter is not provided.
///
/// -
///
/// Cannot be specified if the
UseLatestRestorableTime
parameter is true
.
///
/// -
///
/// Cannot be specified if the
RestoreType
parameter is copy-on-write
.
///
///
///
/// Example: 2015-03-07T23:45:00Z
///
///
public DateTime RestoreToTime
{
get { return this._restoreToTime.GetValueOrDefault(); }
set { this._restoreToTime = value; }
}
// Check to see if RestoreToTime property is set
internal bool IsSetRestoreToTime()
{
return this._restoreToTime.HasValue;
}
///
/// Gets and sets the property RestoreType.
///
/// The type of restore to be performed. You can specify one of the following values:
///
/// -
///
///
full-copy
- The new DB cluster is restored as a full copy of the source
/// DB cluster.
///
/// -
///
///
copy-on-write
- The new DB cluster is restored as a clone of the source
/// DB cluster.
///
///
///
/// Constraints: You can't specify copy-on-write
if the engine version of
/// the source DB cluster is earlier than 1.11.
///
///
///
/// If you don't specify a RestoreType
value, then the new DB cluster is
/// restored as a full copy of the source DB cluster.
///
///
public string RestoreType
{
get { return this._restoreType; }
set { this._restoreType = value; }
}
// Check to see if RestoreType property is set
internal bool IsSetRestoreType()
{
return this._restoreType != null;
}
///
/// Gets and sets the property SourceDBClusterIdentifier.
///
/// The identifier of the source cluster from which to restore.
///
///
///
/// Constraints:
///
/// -
///
/// Must match the identifier of an existing
DBCluster
.
///
///
///
[AWSProperty(Required=true)]
public string SourceDBClusterIdentifier
{
get { return this._sourceDBClusterIdentifier; }
set { this._sourceDBClusterIdentifier = value; }
}
// Check to see if SourceDBClusterIdentifier property is set
internal bool IsSetSourceDBClusterIdentifier()
{
return this._sourceDBClusterIdentifier != null;
}
///
/// Gets and sets the property Tags.
///
/// The tags to be assigned to the restored cluster.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property UseLatestRestorableTime.
///
/// A value that is set to true
to restore the cluster to the latest restorable
/// backup time, and false
otherwise.
///
///
///
/// Default: false
///
///
///
/// Constraints: Cannot be specified if the RestoreToTime
parameter is provided.
///
///
public bool UseLatestRestorableTime
{
get { return this._useLatestRestorableTime.GetValueOrDefault(); }
set { this._useLatestRestorableTime = value; }
}
// Check to see if UseLatestRestorableTime property is set
internal bool IsSetUseLatestRestorableTime()
{
return this._useLatestRestorableTime.HasValue;
}
///
/// Gets and sets the property VpcSecurityGroupIds.
///
/// A list of VPC security groups that the new cluster belongs to.
///
///
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;
}
}
}