/*
* 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
{
///
/// Settings in JSON format for the source GCP MySQL endpoint.
///
public partial class GcpMySQLSettings
{
private string _afterConnectScript;
private bool? _cleanSourceMetadataOnMismatch;
private string _databaseName;
private int? _eventsPollInterval;
private int? _maxFileSize;
private int? _parallelLoadThreads;
private string _password;
private int? _port;
private string _secretsManagerAccessRoleArn;
private string _secretsManagerSecretId;
private string _serverName;
private string _serverTimezone;
private TargetDbType _targetDbType;
private string _username;
///
/// Gets and sets the property AfterConnectScript.
///
/// Specifies a script to run immediately after DMS connects to the endpoint. The migration
/// task continues running regardless if the SQL statement succeeds or fails.
///
///
///
/// For this parameter, provide the code of the script itself, not the name of a file
/// containing the script.
///
///
public string AfterConnectScript
{
get { return this._afterConnectScript; }
set { this._afterConnectScript = value; }
}
// Check to see if AfterConnectScript property is set
internal bool IsSetAfterConnectScript()
{
return this._afterConnectScript != null;
}
///
/// Gets and sets the property CleanSourceMetadataOnMismatch.
///
/// Cleans and recreates table metadata information on the replication instance when a
/// mismatch occurs. For example, in a situation where running an alter DDL on the table
/// could result in different information about the table cached in the replication instance.
///
///
///
public bool CleanSourceMetadataOnMismatch
{
get { return this._cleanSourceMetadataOnMismatch.GetValueOrDefault(); }
set { this._cleanSourceMetadataOnMismatch = value; }
}
// Check to see if CleanSourceMetadataOnMismatch property is set
internal bool IsSetCleanSourceMetadataOnMismatch()
{
return this._cleanSourceMetadataOnMismatch.HasValue;
}
///
/// Gets and sets the property DatabaseName.
///
/// Database name for the endpoint. For a MySQL source or target endpoint, don't explicitly
/// specify the database using the DatabaseName
request parameter on either
/// the CreateEndpoint
or ModifyEndpoint
API call. Specifying
/// DatabaseName
when you create or modify a MySQL endpoint replicates all
/// the task tables to this single database. For MySQL endpoints, you specify the database
/// only when you specify the schema in the table-mapping rules of the DMS task.
///
///
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 EventsPollInterval.
///
/// Specifies how often to check the binary log for new changes/events when the database
/// is idle. The default is five seconds.
///
///
///
/// Example: eventsPollInterval=5;
///
///
///
/// In the example, DMS checks for changes in the binary logs every five seconds.
///
///
public int EventsPollInterval
{
get { return this._eventsPollInterval.GetValueOrDefault(); }
set { this._eventsPollInterval = value; }
}
// Check to see if EventsPollInterval property is set
internal bool IsSetEventsPollInterval()
{
return this._eventsPollInterval.HasValue;
}
///
/// Gets and sets the property MaxFileSize.
///
/// Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible
/// database.
///
///
///
/// Example: maxFileSize=512
///
///
public int MaxFileSize
{
get { return this._maxFileSize.GetValueOrDefault(); }
set { this._maxFileSize = value; }
}
// Check to see if MaxFileSize property is set
internal bool IsSetMaxFileSize()
{
return this._maxFileSize.HasValue;
}
///
/// Gets and sets the property ParallelLoadThreads.
///
/// Improves performance when loading data into the MySQL-compatible target database.
/// Specifies how many threads to use to load the data into the MySQL-compatible target
/// database. Setting a large number of threads can have an adverse effect on database
/// performance, because a separate connection is required for each thread. The default
/// is one.
///
///
///
/// Example: parallelLoadThreads=1
///
///
public int ParallelLoadThreads
{
get { return this._parallelLoadThreads.GetValueOrDefault(); }
set { this._parallelLoadThreads = value; }
}
// Check to see if ParallelLoadThreads property is set
internal bool IsSetParallelLoadThreads()
{
return this._parallelLoadThreads.HasValue;
}
///
/// Gets and sets the property Password.
///
/// Endpoint connection password.
///
///
[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.
///
/// Endpoint TCP port.
///
///
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 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 MySQL 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 MySQL 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 MySQL host name.
///
///
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 ServerTimezone.
///
/// Specifies the time zone for the source MySQL database.
///
///
///
/// Example: serverTimezone=US/Pacific;
///
///
///
/// Note: Do not enclose time zones in single quotes.
///
///
public string ServerTimezone
{
get { return this._serverTimezone; }
set { this._serverTimezone = value; }
}
// Check to see if ServerTimezone property is set
internal bool IsSetServerTimezone()
{
return this._serverTimezone != null;
}
///
/// Gets and sets the property TargetDbType.
///
/// Specifies where to migrate source tables on the target, either to a single database
/// or multiple databases.
///
///
///
/// Example: targetDbType=MULTIPLE_DATABASES
///
///
public TargetDbType TargetDbType
{
get { return this._targetDbType; }
set { this._targetDbType = value; }
}
// Check to see if TargetDbType property is set
internal bool IsSetTargetDbType()
{
return this._targetDbType != null;
}
///
/// Gets and sets the property Username.
///
/// Endpoint connection user name.
///
///
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;
}
}
}