/*
* 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 dms-2016-01-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.DatabaseMigrationService.Model
{
///
/// Provides information that defines a DocumentDB endpoint.
///
public partial class DocDbSettings
{
private string _databaseName;
private int? _docsToInvestigate;
private bool? _extractDocId;
private string _kmsKeyId;
private NestingLevelValue _nestingLevel;
private string _password;
private int? _port;
private bool? _replicateShardCollections;
private string _secretsManagerAccessRoleArn;
private string _secretsManagerSecretId;
private string _serverName;
private string _username;
private bool? _useUpdateLookUp;
///
/// Gets and sets the property DatabaseName.
///
/// The database name on the DocumentDB source endpoint.
///
///
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 DocsToInvestigate.
///
/// Indicates the number of documents to preview to determine the document organization.
/// Use this setting when NestingLevel
is set to "one"
.
///
///
///
/// Must be a positive value greater than 0
. Default value is 1000
.
///
///
public int DocsToInvestigate
{
get { return this._docsToInvestigate.GetValueOrDefault(); }
set { this._docsToInvestigate = value; }
}
// Check to see if DocsToInvestigate property is set
internal bool IsSetDocsToInvestigate()
{
return this._docsToInvestigate.HasValue;
}
///
/// Gets and sets the property ExtractDocId.
///
/// Specifies the document ID. Use this setting when NestingLevel
is set
/// to "none"
.
///
///
///
/// Default value is "false"
.
///
///
public bool ExtractDocId
{
get { return this._extractDocId.GetValueOrDefault(); }
set { this._extractDocId = value; }
}
// Check to see if ExtractDocId property is set
internal bool IsSetExtractDocId()
{
return this._extractDocId.HasValue;
}
///
/// Gets and sets the property KmsKeyId.
///
/// The KMS key identifier that is used to encrypt the content on the replication instance.
/// If you don't specify a value for the KmsKeyId
parameter, then DMS uses
/// your default encryption key. KMS creates the default encryption key for your Amazon
/// Web Services account. Your Amazon Web Services account has a different default encryption
/// key for each Amazon Web Services Region.
///
///
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 NestingLevel.
///
/// Specifies either document or table mode.
///
///
///
/// Default value is "none"
. Specify "none"
to use document
/// mode. Specify "one"
to use table mode.
///
///
public NestingLevelValue NestingLevel
{
get { return this._nestingLevel; }
set { this._nestingLevel = value; }
}
// Check to see if NestingLevel property is set
internal bool IsSetNestingLevel()
{
return this._nestingLevel != null;
}
///
/// Gets and sets the property Password.
///
/// The password for the user account you use to access the DocumentDB source endpoint.
///
///
///
[AWSProperty(Sensitive=true)]
public string Password
{
get { return this._password; }
set { this._password = value; }
}
// Check to see if Password property is set
internal bool IsSetPassword()
{
return this._password != null;
}
///
/// Gets and sets the property Port.
///
/// The port value for the DocumentDB source endpoint.
///
///
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 ReplicateShardCollections.
///
/// If true
, DMS replicates data to shard collections. DMS only uses this
/// setting if the target endpoint is a DocumentDB elastic cluster.
///
///
///
/// When this setting is true
, note the following:
///
/// -
///
/// You must set
TargetTablePrepMode
to nothing
.
///
/// -
///
/// DMS automatically sets
useUpdateLookup
to false
.
///
///
///
public bool ReplicateShardCollections
{
get { return this._replicateShardCollections.GetValueOrDefault(); }
set { this._replicateShardCollections = value; }
}
// Check to see if ReplicateShardCollections property is set
internal bool IsSetReplicateShardCollections()
{
return this._replicateShardCollections.HasValue;
}
///
/// Gets and sets the property SecretsManagerAccessRoleArn.
///
/// The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the trusted
/// entity and grants the required permissions to access the value in SecretsManagerSecret
.
/// The role must allow the iam:PassRole
action. SecretsManagerSecret
/// has the value of the Amazon Web Services Secrets Manager secret that allows access
/// to the DocumentDB endpoint.
///
///
///
/// You can specify one of two sets of values for these permissions. You can specify the
/// values for this setting and SecretsManagerSecretId
. Or you can specify
/// clear-text values for UserName
, Password
, ServerName
,
/// and Port
. You can't specify both. For more information on creating this
/// SecretsManagerSecret
and the SecretsManagerAccessRoleArn
/// and SecretsManagerSecretId
required to access it, see Using
/// secrets to access Database Migration Service resources in the Database Migration
/// Service User Guide.
///
///
///
public string SecretsManagerAccessRoleArn
{
get { return this._secretsManagerAccessRoleArn; }
set { this._secretsManagerAccessRoleArn = value; }
}
// Check to see if SecretsManagerAccessRoleArn property is set
internal bool IsSetSecretsManagerAccessRoleArn()
{
return this._secretsManagerAccessRoleArn != null;
}
///
/// Gets and sets the property SecretsManagerSecretId.
///
/// The full ARN, partial ARN, or friendly name of the SecretsManagerSecret
/// that contains the DocumentDB endpoint connection details.
///
///
public string SecretsManagerSecretId
{
get { return this._secretsManagerSecretId; }
set { this._secretsManagerSecretId = value; }
}
// Check to see if SecretsManagerSecretId property is set
internal bool IsSetSecretsManagerSecretId()
{
return this._secretsManagerSecretId != null;
}
///
/// Gets and sets the property ServerName.
///
/// The name of the server on the DocumentDB source endpoint.
///
///
public string ServerName
{
get { return this._serverName; }
set { this._serverName = value; }
}
// Check to see if ServerName property is set
internal bool IsSetServerName()
{
return this._serverName != null;
}
///
/// Gets and sets the property Username.
///
/// The user name you use to access the DocumentDB source endpoint.
///
///
public string Username
{
get { return this._username; }
set { this._username = value; }
}
// Check to see if Username property is set
internal bool IsSetUsername()
{
return this._username != null;
}
///
/// Gets and sets the property UseUpdateLookUp.
///
/// If true
, DMS retrieves the entire document from the DocumentDB source
/// during migration. This may cause a migration failure if the server response exceeds
/// bandwidth limits. To fetch only updates and deletes during migration, set this parameter
/// to false
.
///
///
public bool UseUpdateLookUp
{
get { return this._useUpdateLookUp.GetValueOrDefault(); }
set { this._useUpdateLookUp = value; }
}
// Check to see if UseUpdateLookUp property is set
internal bool IsSetUseUpdateLookUp()
{
return this._useUpdateLookUp.HasValue;
}
}
}