/*
* 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 CopyDBClusterSnapshot operation.
/// Copies a snapshot of a cluster.
///
///
///
/// To copy a cluster snapshot from a shared manual cluster snapshot, SourceDBClusterSnapshotIdentifier
/// must be the Amazon Resource Name (ARN) of the shared cluster snapshot. You can only
/// copy a shared DB cluster snapshot, whether encrypted or not, in the same Amazon Web
/// Services Region.
///
///
///
/// To cancel the copy operation after it is in progress, delete the target cluster snapshot
/// identified by TargetDBClusterSnapshotIdentifier
while that cluster snapshot
/// is in the copying status.
///
///
public partial class CopyDBClusterSnapshotRequest : AmazonDocDBRequest
{
private bool? _copyTags;
private string _kmsKeyId;
private string _preSignedUrl;
private string _sourceDBClusterSnapshotIdentifier;
private List _tags = new List();
private string _targetDBClusterSnapshotIdentifier;
///
/// Gets and sets the property CopyTags.
///
/// Set to true
to copy all tags from the source cluster snapshot to the
/// target cluster snapshot, and otherwise false
. The default is false
.
///
///
public bool CopyTags
{
get { return this._copyTags.GetValueOrDefault(); }
set { this._copyTags = value; }
}
// Check to see if CopyTags property is set
internal bool IsSetCopyTags()
{
return this._copyTags.HasValue;
}
///
/// Gets and sets the property KmsKeyId.
///
/// The KMS key ID for an encrypted cluster snapshot. The KMS key ID is the Amazon Resource
/// Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.
///
///
///
/// If you copy an encrypted cluster snapshot from your Amazon Web Services account, you
/// can specify a value for KmsKeyId
to encrypt the copy with a new KMS encryption
/// key. If you don't specify a value for KmsKeyId
, then the copy of the
/// cluster snapshot is encrypted with the same KMS key as the source cluster snapshot.
///
///
///
/// If you copy an encrypted cluster snapshot that is shared from another Amazon Web Services
/// account, then you must specify a value for KmsKeyId
.
///
///
///
/// To copy an encrypted cluster snapshot to another Amazon Web Services Region, set KmsKeyId
/// to the KMS key ID that you want to use to encrypt the copy of the cluster snapshot
/// in the destination Region. KMS encryption keys are specific to the Amazon Web Services
/// Region that they are created in, and you can't use encryption keys from one Amazon
/// Web Services Region in another Amazon Web Services Region.
///
///
///
/// If you copy an unencrypted cluster snapshot and specify a value for the KmsKeyId
/// parameter, an error is returned.
///
///
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 PreSignedUrl.
///
/// The URL that contains a Signature Version 4 signed request for theCopyDBClusterSnapshot
/// API action in the Amazon Web Services Region that contains the source cluster snapshot
/// to copy. You must use the PreSignedUrl
parameter when copying a cluster
/// snapshot from another Amazon Web Services Region.
///
///
///
/// If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion
/// (or --source-region
for the CLI) instead of specifying PreSignedUrl
/// manually. Specifying SourceRegion
autogenerates a pre-signed URL that
/// is a valid request for the operation that can be executed in the source Amazon Web
/// Services Region.
///
///
///
/// The presigned URL must be a valid request for the CopyDBClusterSnapshot
/// API action that can be executed in the source Amazon Web Services Region that contains
/// the cluster snapshot to be copied. The presigned URL request must contain the following
/// parameter values:
///
/// -
///
///
SourceRegion
- The ID of the region that contains the snapshot to be
/// copied.
///
/// -
///
///
SourceDBClusterSnapshotIdentifier
- The identifier for the the encrypted
/// cluster snapshot to be copied. This identifier must be in the Amazon Resource Name
/// (ARN) format for the source Amazon Web Services Region. For example, if you are copying
/// an encrypted cluster snapshot from the us-east-1 Amazon Web Services Region, then
/// your SourceDBClusterSnapshotIdentifier
looks something like the following:
/// arn:aws:rds:us-east-1:12345678012:sample-cluster:sample-cluster-snapshot
.
///
/// -
///
///
TargetDBClusterSnapshotIdentifier
- The identifier for the new cluster
/// snapshot to be created. This parameter isn't case sensitive.
///
///
///
public string PreSignedUrl
{
get { return this._preSignedUrl; }
set { this._preSignedUrl = value; }
}
// Check to see if PreSignedUrl property is set
internal bool IsSetPreSignedUrl()
{
return this._preSignedUrl != null;
}
///
/// Gets and sets the property SourceDBClusterSnapshotIdentifier.
///
/// The identifier of the cluster snapshot to copy. This parameter is not case sensitive.
///
///
///
/// Constraints:
///
/// -
///
/// Must specify a valid system snapshot in the available state.
///
///
-
///
/// If the source snapshot is in the same Amazon Web Services Region as the copy, specify
/// a valid snapshot identifier.
///
///
-
///
/// If the source snapshot is in a different Amazon Web Services Region than the copy,
/// specify a valid cluster snapshot ARN.
///
///
///
/// Example: my-cluster-snapshot1
///
///
[AWSProperty(Required=true)]
public string SourceDBClusterSnapshotIdentifier
{
get { return this._sourceDBClusterSnapshotIdentifier; }
set { this._sourceDBClusterSnapshotIdentifier = value; }
}
// Check to see if SourceDBClusterSnapshotIdentifier property is set
internal bool IsSetSourceDBClusterSnapshotIdentifier()
{
return this._sourceDBClusterSnapshotIdentifier != null;
}
///
/// Gets and sets the property Tags.
///
/// The tags to be assigned to the cluster snapshot.
///
///
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 TargetDBClusterSnapshotIdentifier.
///
/// The identifier of the new cluster snapshot to create from the source cluster snapshot.
/// This parameter is not case sensitive.
///
///
///
/// 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.
///
///
///
/// Example: my-cluster-snapshot2
///
///
[AWSProperty(Required=true)]
public string TargetDBClusterSnapshotIdentifier
{
get { return this._targetDBClusterSnapshotIdentifier; }
set { this._targetDBClusterSnapshotIdentifier = value; }
}
// Check to see if TargetDBClusterSnapshotIdentifier property is set
internal bool IsSetTargetDBClusterSnapshotIdentifier()
{
return this._targetDBClusterSnapshotIdentifier != null;
}
}
}