/*
* 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 PostgreSQL endpoint.
///
public partial class PostgreSQLSettings
{
private string _afterConnectScript;
private string _babelfishDatabaseName;
private bool? _captureDdls;
private DatabaseMode _databaseMode;
private string _databaseName;
private string _ddlArtifactsSchema;
private int? _executeTimeout;
private bool? _failTasksOnLobTruncation;
private bool? _heartbeatEnable;
private int? _heartbeatFrequency;
private string _heartbeatSchema;
private bool? _mapBooleanAsBoolean;
private bool? _mapJsonbAsClob;
private LongVarcharMappingType _mapLongVarcharAs;
private int? _maxFileSize;
private string _password;
private PluginNameValue _pluginName;
private int? _port;
private string _secretsManagerAccessRoleArn;
private string _secretsManagerSecretId;
private string _serverName;
private string _slotName;
private bool? _trimSpaceInChar;
private string _username;
///
/// Gets and sets the property AfterConnectScript.
///
/// For use with change data capture (CDC) only, this attribute has DMS bypass foreign
/// keys and user triggers to reduce the time it takes to bulk load data.
///
///
///
/// Example: afterConnectScript=SET session_replication_role='replica'
///
///
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 BabelfishDatabaseName.
///
/// The Babelfish for Aurora PostgreSQL database name for the endpoint.
///
///
public string BabelfishDatabaseName
{
get { return this._babelfishDatabaseName; }
set { this._babelfishDatabaseName = value; }
}
// Check to see if BabelfishDatabaseName property is set
internal bool IsSetBabelfishDatabaseName()
{
return this._babelfishDatabaseName != null;
}
///
/// Gets and sets the property CaptureDdls.
///
/// To capture DDL events, DMS creates various artifacts in the PostgreSQL database when
/// the task starts. You can later remove these artifacts.
///
///
///
/// If this value is set to N
, you don't have to create tables or triggers
/// on the source database.
///
///
public bool CaptureDdls
{
get { return this._captureDdls.GetValueOrDefault(); }
set { this._captureDdls = value; }
}
// Check to see if CaptureDdls property is set
internal bool IsSetCaptureDdls()
{
return this._captureDdls.HasValue;
}
///
/// Gets and sets the property DatabaseMode.
///
/// Specifies whether to use default or custom replication behavior for PostgreSQL-compatible
/// endpoints. You can use this setting to specify replication behavior for endpoints
/// that require additional configuration, such as Babelfish endpoints.
///
///
public DatabaseMode DatabaseMode
{
get { return this._databaseMode; }
set { this._databaseMode = value; }
}
// Check to see if DatabaseMode property is set
internal bool IsSetDatabaseMode()
{
return this._databaseMode != null;
}
///
/// Gets and sets the property DatabaseName.
///
/// Database name for the 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 DdlArtifactsSchema.
///
/// The schema in which the operational DDL database artifacts are created.
///
///
///
/// Example: ddlArtifactsSchema=xyzddlschema;
///
///
public string DdlArtifactsSchema
{
get { return this._ddlArtifactsSchema; }
set { this._ddlArtifactsSchema = value; }
}
// Check to see if DdlArtifactsSchema property is set
internal bool IsSetDdlArtifactsSchema()
{
return this._ddlArtifactsSchema != null;
}
///
/// Gets and sets the property ExecuteTimeout.
///
/// Sets the client statement timeout for the PostgreSQL instance, in seconds. The default
/// value is 60 seconds.
///
///
///
/// Example: executeTimeout=100;
///
///
public int ExecuteTimeout
{
get { return this._executeTimeout.GetValueOrDefault(); }
set { this._executeTimeout = value; }
}
// Check to see if ExecuteTimeout property is set
internal bool IsSetExecuteTimeout()
{
return this._executeTimeout.HasValue;
}
///
/// Gets and sets the property FailTasksOnLobTruncation.
///
/// When set to true
, this value causes a task to fail if the actual size
/// of a LOB column is greater than the specified LobMaxSize
.
///
///
///
/// If task is set to Limited LOB mode and this option is set to true, the task fails
/// instead of truncating the LOB data.
///
///
public bool FailTasksOnLobTruncation
{
get { return this._failTasksOnLobTruncation.GetValueOrDefault(); }
set { this._failTasksOnLobTruncation = value; }
}
// Check to see if FailTasksOnLobTruncation property is set
internal bool IsSetFailTasksOnLobTruncation()
{
return this._failTasksOnLobTruncation.HasValue;
}
///
/// Gets and sets the property HeartbeatEnable.
///
/// The write-ahead log (WAL) heartbeat feature mimics a dummy transaction. By doing this,
/// it prevents idle logical replication slots from holding onto old WAL logs, which can
/// result in storage full situations on the source. This heartbeat keeps restart_lsn
/// moving and prevents storage full scenarios.
///
///
public bool HeartbeatEnable
{
get { return this._heartbeatEnable.GetValueOrDefault(); }
set { this._heartbeatEnable = value; }
}
// Check to see if HeartbeatEnable property is set
internal bool IsSetHeartbeatEnable()
{
return this._heartbeatEnable.HasValue;
}
///
/// Gets and sets the property HeartbeatFrequency.
///
/// Sets the WAL heartbeat frequency (in minutes).
///
///
public int HeartbeatFrequency
{
get { return this._heartbeatFrequency.GetValueOrDefault(); }
set { this._heartbeatFrequency = value; }
}
// Check to see if HeartbeatFrequency property is set
internal bool IsSetHeartbeatFrequency()
{
return this._heartbeatFrequency.HasValue;
}
///
/// Gets and sets the property HeartbeatSchema.
///
/// Sets the schema in which the heartbeat artifacts are created.
///
///
public string HeartbeatSchema
{
get { return this._heartbeatSchema; }
set { this._heartbeatSchema = value; }
}
// Check to see if HeartbeatSchema property is set
internal bool IsSetHeartbeatSchema()
{
return this._heartbeatSchema != null;
}
///
/// Gets and sets the property MapBooleanAsBoolean.
///
/// When true, lets PostgreSQL migrate the boolean type as boolean. By default, PostgreSQL
/// migrates booleans as varchar(5)
.
///
///
public bool MapBooleanAsBoolean
{
get { return this._mapBooleanAsBoolean.GetValueOrDefault(); }
set { this._mapBooleanAsBoolean = value; }
}
// Check to see if MapBooleanAsBoolean property is set
internal bool IsSetMapBooleanAsBoolean()
{
return this._mapBooleanAsBoolean.HasValue;
}
///
/// Gets and sets the property MapJsonbAsClob.
///
/// When true, DMS migrates JSONB values as CLOB.
///
///
public bool MapJsonbAsClob
{
get { return this._mapJsonbAsClob.GetValueOrDefault(); }
set { this._mapJsonbAsClob = value; }
}
// Check to see if MapJsonbAsClob property is set
internal bool IsSetMapJsonbAsClob()
{
return this._mapJsonbAsClob.HasValue;
}
///
/// Gets and sets the property MapLongVarcharAs.
///
/// When true, DMS migrates LONG values as VARCHAR.
///
///
public LongVarcharMappingType MapLongVarcharAs
{
get { return this._mapLongVarcharAs; }
set { this._mapLongVarcharAs = value; }
}
// Check to see if MapLongVarcharAs property is set
internal bool IsSetMapLongVarcharAs()
{
return this._mapLongVarcharAs != null;
}
///
/// Gets and sets the property MaxFileSize.
///
/// Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL.
///
///
///
/// 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 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 PluginName.
///
/// Specifies the plugin to use to create a replication slot.
///
///
public PluginNameValue PluginName
{
get { return this._pluginName; }
set { this._pluginName = value; }
}
// Check to see if PluginName property is set
internal bool IsSetPluginName()
{
return this._pluginName != null;
}
///
/// Gets and sets the property Port.
///
/// Endpoint TCP port. The default is 5432.
///
///
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 PostgreSQL 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 PostgreSQL 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 host name of the endpoint database.
///
///
///
/// For an Amazon RDS PostgreSQL instance, this is the output of DescribeDBInstances,
/// in the Endpoint.Address
/// field.
///
///
///
/// For an Aurora PostgreSQL instance, this is the output of DescribeDBClusters,
/// in the Endpoint
field.
///
///
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 SlotName.
///
/// Sets the name of a previously created logical replication slot for a change data capture
/// (CDC) load of the PostgreSQL source instance.
///
///
///
/// When used with the CdcStartPosition
request parameter for the DMS API
/// , this attribute also makes it possible to use native CDC start points. DMS verifies
/// that the specified logical replication slot exists before starting the CDC load task.
/// It also verifies that the task was created with a valid setting of CdcStartPosition
.
/// If the specified slot doesn't exist or the task doesn't have a valid CdcStartPosition
/// setting, DMS raises an error.
///
///
///
/// For more information about setting the CdcStartPosition
request parameter,
/// see Determining
/// a CDC native start point in the Database Migration Service User Guide.
/// For more information about using CdcStartPosition
, see CreateReplicationTask,
/// StartReplicationTask,
/// and ModifyReplicationTask.
///
///
public string SlotName
{
get { return this._slotName; }
set { this._slotName = value; }
}
// Check to see if SlotName property is set
internal bool IsSetSlotName()
{
return this._slotName != null;
}
///
/// Gets and sets the property TrimSpaceInChar.
///
/// Use the TrimSpaceInChar
source endpoint setting to trim data on CHAR
/// and NCHAR data types during migration. The default value is true
.
///
///
public bool TrimSpaceInChar
{
get { return this._trimSpaceInChar.GetValueOrDefault(); }
set { this._trimSpaceInChar = value; }
}
// Check to see if TrimSpaceInChar property is set
internal bool IsSetTrimSpaceInChar()
{
return this._trimSpaceInChar.HasValue;
}
///
/// 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;
}
}
}