/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DatabaseMigrationService { namespace Model { /** *

Provides information that defines a PostgreSQL endpoint.

See * Also:

AWS * API Reference

*/ class PostgreSQLSettings { public: AWS_DATABASEMIGRATIONSERVICE_API PostgreSQLSettings(); AWS_DATABASEMIGRATIONSERVICE_API PostgreSQLSettings(Aws::Utils::Json::JsonView jsonValue); AWS_DATABASEMIGRATIONSERVICE_API PostgreSQLSettings& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DATABASEMIGRATIONSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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'

*/ inline const Aws::String& GetAfterConnectScript() const{ return m_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'

*/ inline bool AfterConnectScriptHasBeenSet() const { return m_afterConnectScriptHasBeenSet; } /** *

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'

*/ inline void SetAfterConnectScript(const Aws::String& value) { m_afterConnectScriptHasBeenSet = true; m_afterConnectScript = value; } /** *

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'

*/ inline void SetAfterConnectScript(Aws::String&& value) { m_afterConnectScriptHasBeenSet = true; m_afterConnectScript = std::move(value); } /** *

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'

*/ inline void SetAfterConnectScript(const char* value) { m_afterConnectScriptHasBeenSet = true; m_afterConnectScript.assign(value); } /** *

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'

*/ inline PostgreSQLSettings& WithAfterConnectScript(const Aws::String& value) { SetAfterConnectScript(value); return *this;} /** *

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'

*/ inline PostgreSQLSettings& WithAfterConnectScript(Aws::String&& value) { SetAfterConnectScript(std::move(value)); return *this;} /** *

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'

*/ inline PostgreSQLSettings& WithAfterConnectScript(const char* value) { SetAfterConnectScript(value); return *this;} /** *

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.

*/ inline bool GetCaptureDdls() const{ return m_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.

*/ inline bool CaptureDdlsHasBeenSet() const { return m_captureDdlsHasBeenSet; } /** *

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.

*/ inline void SetCaptureDdls(bool value) { m_captureDdlsHasBeenSet = true; m_captureDdls = value; } /** *

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.

*/ inline PostgreSQLSettings& WithCaptureDdls(bool value) { SetCaptureDdls(value); return *this;} /** *

Specifies the maximum size (in KB) of any .csv file used to transfer data to * PostgreSQL.

Example: maxFileSize=512

*/ inline int GetMaxFileSize() const{ return m_maxFileSize; } /** *

Specifies the maximum size (in KB) of any .csv file used to transfer data to * PostgreSQL.

Example: maxFileSize=512

*/ inline bool MaxFileSizeHasBeenSet() const { return m_maxFileSizeHasBeenSet; } /** *

Specifies the maximum size (in KB) of any .csv file used to transfer data to * PostgreSQL.

Example: maxFileSize=512

*/ inline void SetMaxFileSize(int value) { m_maxFileSizeHasBeenSet = true; m_maxFileSize = value; } /** *

Specifies the maximum size (in KB) of any .csv file used to transfer data to * PostgreSQL.

Example: maxFileSize=512

*/ inline PostgreSQLSettings& WithMaxFileSize(int value) { SetMaxFileSize(value); return *this;} /** *

Database name for the endpoint.

*/ inline const Aws::String& GetDatabaseName() const{ return m_databaseName; } /** *

Database name for the endpoint.

*/ inline bool DatabaseNameHasBeenSet() const { return m_databaseNameHasBeenSet; } /** *

Database name for the endpoint.

*/ inline void SetDatabaseName(const Aws::String& value) { m_databaseNameHasBeenSet = true; m_databaseName = value; } /** *

Database name for the endpoint.

*/ inline void SetDatabaseName(Aws::String&& value) { m_databaseNameHasBeenSet = true; m_databaseName = std::move(value); } /** *

Database name for the endpoint.

*/ inline void SetDatabaseName(const char* value) { m_databaseNameHasBeenSet = true; m_databaseName.assign(value); } /** *

Database name for the endpoint.

*/ inline PostgreSQLSettings& WithDatabaseName(const Aws::String& value) { SetDatabaseName(value); return *this;} /** *

Database name for the endpoint.

*/ inline PostgreSQLSettings& WithDatabaseName(Aws::String&& value) { SetDatabaseName(std::move(value)); return *this;} /** *

Database name for the endpoint.

*/ inline PostgreSQLSettings& WithDatabaseName(const char* value) { SetDatabaseName(value); return *this;} /** *

The schema in which the operational DDL database artifacts are created.

*

Example: ddlArtifactsSchema=xyzddlschema;

*/ inline const Aws::String& GetDdlArtifactsSchema() const{ return m_ddlArtifactsSchema; } /** *

The schema in which the operational DDL database artifacts are created.

*

Example: ddlArtifactsSchema=xyzddlschema;

*/ inline bool DdlArtifactsSchemaHasBeenSet() const { return m_ddlArtifactsSchemaHasBeenSet; } /** *

The schema in which the operational DDL database artifacts are created.

*

Example: ddlArtifactsSchema=xyzddlschema;

*/ inline void SetDdlArtifactsSchema(const Aws::String& value) { m_ddlArtifactsSchemaHasBeenSet = true; m_ddlArtifactsSchema = value; } /** *

The schema in which the operational DDL database artifacts are created.

*

Example: ddlArtifactsSchema=xyzddlschema;

*/ inline void SetDdlArtifactsSchema(Aws::String&& value) { m_ddlArtifactsSchemaHasBeenSet = true; m_ddlArtifactsSchema = std::move(value); } /** *

The schema in which the operational DDL database artifacts are created.

*

Example: ddlArtifactsSchema=xyzddlschema;

*/ inline void SetDdlArtifactsSchema(const char* value) { m_ddlArtifactsSchemaHasBeenSet = true; m_ddlArtifactsSchema.assign(value); } /** *

The schema in which the operational DDL database artifacts are created.

*

Example: ddlArtifactsSchema=xyzddlschema;

*/ inline PostgreSQLSettings& WithDdlArtifactsSchema(const Aws::String& value) { SetDdlArtifactsSchema(value); return *this;} /** *

The schema in which the operational DDL database artifacts are created.

*

Example: ddlArtifactsSchema=xyzddlschema;

*/ inline PostgreSQLSettings& WithDdlArtifactsSchema(Aws::String&& value) { SetDdlArtifactsSchema(std::move(value)); return *this;} /** *

The schema in which the operational DDL database artifacts are created.

*

Example: ddlArtifactsSchema=xyzddlschema;

*/ inline PostgreSQLSettings& WithDdlArtifactsSchema(const char* value) { SetDdlArtifactsSchema(value); return *this;} /** *

Sets the client statement timeout for the PostgreSQL instance, in seconds. * The default value is 60 seconds.

Example: * executeTimeout=100;

*/ inline int GetExecuteTimeout() const{ return m_executeTimeout; } /** *

Sets the client statement timeout for the PostgreSQL instance, in seconds. * The default value is 60 seconds.

Example: * executeTimeout=100;

*/ inline bool ExecuteTimeoutHasBeenSet() const { return m_executeTimeoutHasBeenSet; } /** *

Sets the client statement timeout for the PostgreSQL instance, in seconds. * The default value is 60 seconds.

Example: * executeTimeout=100;

*/ inline void SetExecuteTimeout(int value) { m_executeTimeoutHasBeenSet = true; m_executeTimeout = value; } /** *

Sets the client statement timeout for the PostgreSQL instance, in seconds. * The default value is 60 seconds.

Example: * executeTimeout=100;

*/ inline PostgreSQLSettings& WithExecuteTimeout(int value) { SetExecuteTimeout(value); return *this;} /** *

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.

*/ inline bool GetFailTasksOnLobTruncation() const{ return m_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.

*/ inline bool FailTasksOnLobTruncationHasBeenSet() const { return m_failTasksOnLobTruncationHasBeenSet; } /** *

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.

*/ inline void SetFailTasksOnLobTruncation(bool value) { m_failTasksOnLobTruncationHasBeenSet = true; m_failTasksOnLobTruncation = value; } /** *

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.

*/ inline PostgreSQLSettings& WithFailTasksOnLobTruncation(bool value) { SetFailTasksOnLobTruncation(value); return *this;} /** *

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.

*/ inline bool GetHeartbeatEnable() const{ return m_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.

*/ inline bool HeartbeatEnableHasBeenSet() const { return m_heartbeatEnableHasBeenSet; } /** *

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.

*/ inline void SetHeartbeatEnable(bool value) { m_heartbeatEnableHasBeenSet = true; m_heartbeatEnable = value; } /** *

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.

*/ inline PostgreSQLSettings& WithHeartbeatEnable(bool value) { SetHeartbeatEnable(value); return *this;} /** *

Sets the schema in which the heartbeat artifacts are created.

*/ inline const Aws::String& GetHeartbeatSchema() const{ return m_heartbeatSchema; } /** *

Sets the schema in which the heartbeat artifacts are created.

*/ inline bool HeartbeatSchemaHasBeenSet() const { return m_heartbeatSchemaHasBeenSet; } /** *

Sets the schema in which the heartbeat artifacts are created.

*/ inline void SetHeartbeatSchema(const Aws::String& value) { m_heartbeatSchemaHasBeenSet = true; m_heartbeatSchema = value; } /** *

Sets the schema in which the heartbeat artifacts are created.

*/ inline void SetHeartbeatSchema(Aws::String&& value) { m_heartbeatSchemaHasBeenSet = true; m_heartbeatSchema = std::move(value); } /** *

Sets the schema in which the heartbeat artifacts are created.

*/ inline void SetHeartbeatSchema(const char* value) { m_heartbeatSchemaHasBeenSet = true; m_heartbeatSchema.assign(value); } /** *

Sets the schema in which the heartbeat artifacts are created.

*/ inline PostgreSQLSettings& WithHeartbeatSchema(const Aws::String& value) { SetHeartbeatSchema(value); return *this;} /** *

Sets the schema in which the heartbeat artifacts are created.

*/ inline PostgreSQLSettings& WithHeartbeatSchema(Aws::String&& value) { SetHeartbeatSchema(std::move(value)); return *this;} /** *

Sets the schema in which the heartbeat artifacts are created.

*/ inline PostgreSQLSettings& WithHeartbeatSchema(const char* value) { SetHeartbeatSchema(value); return *this;} /** *

Sets the WAL heartbeat frequency (in minutes).

*/ inline int GetHeartbeatFrequency() const{ return m_heartbeatFrequency; } /** *

Sets the WAL heartbeat frequency (in minutes).

*/ inline bool HeartbeatFrequencyHasBeenSet() const { return m_heartbeatFrequencyHasBeenSet; } /** *

Sets the WAL heartbeat frequency (in minutes).

*/ inline void SetHeartbeatFrequency(int value) { m_heartbeatFrequencyHasBeenSet = true; m_heartbeatFrequency = value; } /** *

Sets the WAL heartbeat frequency (in minutes).

*/ inline PostgreSQLSettings& WithHeartbeatFrequency(int value) { SetHeartbeatFrequency(value); return *this;} /** *

Endpoint connection password.

*/ inline const Aws::String& GetPassword() const{ return m_password; } /** *

Endpoint connection password.

*/ inline bool PasswordHasBeenSet() const { return m_passwordHasBeenSet; } /** *

Endpoint connection password.

*/ inline void SetPassword(const Aws::String& value) { m_passwordHasBeenSet = true; m_password = value; } /** *

Endpoint connection password.

*/ inline void SetPassword(Aws::String&& value) { m_passwordHasBeenSet = true; m_password = std::move(value); } /** *

Endpoint connection password.

*/ inline void SetPassword(const char* value) { m_passwordHasBeenSet = true; m_password.assign(value); } /** *

Endpoint connection password.

*/ inline PostgreSQLSettings& WithPassword(const Aws::String& value) { SetPassword(value); return *this;} /** *

Endpoint connection password.

*/ inline PostgreSQLSettings& WithPassword(Aws::String&& value) { SetPassword(std::move(value)); return *this;} /** *

Endpoint connection password.

*/ inline PostgreSQLSettings& WithPassword(const char* value) { SetPassword(value); return *this;} /** *

Endpoint TCP port. The default is 5432.

*/ inline int GetPort() const{ return m_port; } /** *

Endpoint TCP port. The default is 5432.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

Endpoint TCP port. The default is 5432.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

Endpoint TCP port. The default is 5432.

*/ inline PostgreSQLSettings& WithPort(int value) { SetPort(value); return *this;} /** *

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.

*/ inline const Aws::String& GetServerName() const{ return m_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.

*/ inline bool ServerNameHasBeenSet() const { return m_serverNameHasBeenSet; } /** *

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.

*/ inline void SetServerName(const Aws::String& value) { m_serverNameHasBeenSet = true; m_serverName = value; } /** *

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.

*/ inline void SetServerName(Aws::String&& value) { m_serverNameHasBeenSet = true; m_serverName = std::move(value); } /** *

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.

*/ inline void SetServerName(const char* value) { m_serverNameHasBeenSet = true; m_serverName.assign(value); } /** *

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.

*/ inline PostgreSQLSettings& WithServerName(const Aws::String& value) { SetServerName(value); return *this;} /** *

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.

*/ inline PostgreSQLSettings& WithServerName(Aws::String&& value) { SetServerName(std::move(value)); return *this;} /** *

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.

*/ inline PostgreSQLSettings& WithServerName(const char* value) { SetServerName(value); return *this;} /** *

Endpoint connection user name.

*/ inline const Aws::String& GetUsername() const{ return m_username; } /** *

Endpoint connection user name.

*/ inline bool UsernameHasBeenSet() const { return m_usernameHasBeenSet; } /** *

Endpoint connection user name.

*/ inline void SetUsername(const Aws::String& value) { m_usernameHasBeenSet = true; m_username = value; } /** *

Endpoint connection user name.

*/ inline void SetUsername(Aws::String&& value) { m_usernameHasBeenSet = true; m_username = std::move(value); } /** *

Endpoint connection user name.

*/ inline void SetUsername(const char* value) { m_usernameHasBeenSet = true; m_username.assign(value); } /** *

Endpoint connection user name.

*/ inline PostgreSQLSettings& WithUsername(const Aws::String& value) { SetUsername(value); return *this;} /** *

Endpoint connection user name.

*/ inline PostgreSQLSettings& WithUsername(Aws::String&& value) { SetUsername(std::move(value)); return *this;} /** *

Endpoint connection user name.

*/ inline PostgreSQLSettings& WithUsername(const char* value) { SetUsername(value); return *this;} /** *

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.

*/ inline const Aws::String& GetSlotName() const{ return m_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.

*/ inline bool SlotNameHasBeenSet() const { return m_slotNameHasBeenSet; } /** *

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.

*/ inline void SetSlotName(const Aws::String& value) { m_slotNameHasBeenSet = true; m_slotName = value; } /** *

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.

*/ inline void SetSlotName(Aws::String&& value) { m_slotNameHasBeenSet = true; m_slotName = std::move(value); } /** *

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.

*/ inline void SetSlotName(const char* value) { m_slotNameHasBeenSet = true; m_slotName.assign(value); } /** *

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.

*/ inline PostgreSQLSettings& WithSlotName(const Aws::String& value) { SetSlotName(value); return *this;} /** *

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.

*/ inline PostgreSQLSettings& WithSlotName(Aws::String&& value) { SetSlotName(std::move(value)); return *this;} /** *

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.

*/ inline PostgreSQLSettings& WithSlotName(const char* value) { SetSlotName(value); return *this;} /** *

Specifies the plugin to use to create a replication slot.

*/ inline const PluginNameValue& GetPluginName() const{ return m_pluginName; } /** *

Specifies the plugin to use to create a replication slot.

*/ inline bool PluginNameHasBeenSet() const { return m_pluginNameHasBeenSet; } /** *

Specifies the plugin to use to create a replication slot.

*/ inline void SetPluginName(const PluginNameValue& value) { m_pluginNameHasBeenSet = true; m_pluginName = value; } /** *

Specifies the plugin to use to create a replication slot.

*/ inline void SetPluginName(PluginNameValue&& value) { m_pluginNameHasBeenSet = true; m_pluginName = std::move(value); } /** *

Specifies the plugin to use to create a replication slot.

*/ inline PostgreSQLSettings& WithPluginName(const PluginNameValue& value) { SetPluginName(value); return *this;} /** *

Specifies the plugin to use to create a replication slot.

*/ inline PostgreSQLSettings& WithPluginName(PluginNameValue&& value) { SetPluginName(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::String& GetSecretsManagerAccessRoleArn() const{ return m_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.

*/ inline bool SecretsManagerAccessRoleArnHasBeenSet() const { return m_secretsManagerAccessRoleArnHasBeenSet; } /** *

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.

*/ inline void SetSecretsManagerAccessRoleArn(const Aws::String& value) { m_secretsManagerAccessRoleArnHasBeenSet = true; m_secretsManagerAccessRoleArn = value; } /** *

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.

*/ inline void SetSecretsManagerAccessRoleArn(Aws::String&& value) { m_secretsManagerAccessRoleArnHasBeenSet = true; m_secretsManagerAccessRoleArn = std::move(value); } /** *

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.

*/ inline void SetSecretsManagerAccessRoleArn(const char* value) { m_secretsManagerAccessRoleArnHasBeenSet = true; m_secretsManagerAccessRoleArn.assign(value); } /** *

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.

*/ inline PostgreSQLSettings& WithSecretsManagerAccessRoleArn(const Aws::String& value) { SetSecretsManagerAccessRoleArn(value); return *this;} /** *

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.

*/ inline PostgreSQLSettings& WithSecretsManagerAccessRoleArn(Aws::String&& value) { SetSecretsManagerAccessRoleArn(std::move(value)); return *this;} /** *

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.

*/ inline PostgreSQLSettings& WithSecretsManagerAccessRoleArn(const char* value) { SetSecretsManagerAccessRoleArn(value); return *this;} /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the PostgreSQL endpoint * connection details.

*/ inline const Aws::String& GetSecretsManagerSecretId() const{ return m_secretsManagerSecretId; } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the PostgreSQL endpoint * connection details.

*/ inline bool SecretsManagerSecretIdHasBeenSet() const { return m_secretsManagerSecretIdHasBeenSet; } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the PostgreSQL endpoint * connection details.

*/ inline void SetSecretsManagerSecretId(const Aws::String& value) { m_secretsManagerSecretIdHasBeenSet = true; m_secretsManagerSecretId = value; } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the PostgreSQL endpoint * connection details.

*/ inline void SetSecretsManagerSecretId(Aws::String&& value) { m_secretsManagerSecretIdHasBeenSet = true; m_secretsManagerSecretId = std::move(value); } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the PostgreSQL endpoint * connection details.

*/ inline void SetSecretsManagerSecretId(const char* value) { m_secretsManagerSecretIdHasBeenSet = true; m_secretsManagerSecretId.assign(value); } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the PostgreSQL endpoint * connection details.

*/ inline PostgreSQLSettings& WithSecretsManagerSecretId(const Aws::String& value) { SetSecretsManagerSecretId(value); return *this;} /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the PostgreSQL endpoint * connection details.

*/ inline PostgreSQLSettings& WithSecretsManagerSecretId(Aws::String&& value) { SetSecretsManagerSecretId(std::move(value)); return *this;} /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the PostgreSQL endpoint * connection details.

*/ inline PostgreSQLSettings& WithSecretsManagerSecretId(const char* value) { SetSecretsManagerSecretId(value); return *this;} /** *

Use the TrimSpaceInChar source endpoint setting to trim data on * CHAR and NCHAR data types during migration. The default value is * true.

*/ inline bool GetTrimSpaceInChar() const{ return m_trimSpaceInChar; } /** *

Use the TrimSpaceInChar source endpoint setting to trim data on * CHAR and NCHAR data types during migration. The default value is * true.

*/ inline bool TrimSpaceInCharHasBeenSet() const { return m_trimSpaceInCharHasBeenSet; } /** *

Use the TrimSpaceInChar source endpoint setting to trim data on * CHAR and NCHAR data types during migration. The default value is * true.

*/ inline void SetTrimSpaceInChar(bool value) { m_trimSpaceInCharHasBeenSet = true; m_trimSpaceInChar = value; } /** *

Use the TrimSpaceInChar source endpoint setting to trim data on * CHAR and NCHAR data types during migration. The default value is * true.

*/ inline PostgreSQLSettings& WithTrimSpaceInChar(bool value) { SetTrimSpaceInChar(value); return *this;} /** *

When true, lets PostgreSQL migrate the boolean type as boolean. By default, * PostgreSQL migrates booleans as varchar(5).

*/ inline bool GetMapBooleanAsBoolean() const{ return m_mapBooleanAsBoolean; } /** *

When true, lets PostgreSQL migrate the boolean type as boolean. By default, * PostgreSQL migrates booleans as varchar(5).

*/ inline bool MapBooleanAsBooleanHasBeenSet() const { return m_mapBooleanAsBooleanHasBeenSet; } /** *

When true, lets PostgreSQL migrate the boolean type as boolean. By default, * PostgreSQL migrates booleans as varchar(5).

*/ inline void SetMapBooleanAsBoolean(bool value) { m_mapBooleanAsBooleanHasBeenSet = true; m_mapBooleanAsBoolean = value; } /** *

When true, lets PostgreSQL migrate the boolean type as boolean. By default, * PostgreSQL migrates booleans as varchar(5).

*/ inline PostgreSQLSettings& WithMapBooleanAsBoolean(bool value) { SetMapBooleanAsBoolean(value); return *this;} /** *

When true, DMS migrates JSONB values as CLOB.

*/ inline bool GetMapJsonbAsClob() const{ return m_mapJsonbAsClob; } /** *

When true, DMS migrates JSONB values as CLOB.

*/ inline bool MapJsonbAsClobHasBeenSet() const { return m_mapJsonbAsClobHasBeenSet; } /** *

When true, DMS migrates JSONB values as CLOB.

*/ inline void SetMapJsonbAsClob(bool value) { m_mapJsonbAsClobHasBeenSet = true; m_mapJsonbAsClob = value; } /** *

When true, DMS migrates JSONB values as CLOB.

*/ inline PostgreSQLSettings& WithMapJsonbAsClob(bool value) { SetMapJsonbAsClob(value); return *this;} /** *

When true, DMS migrates LONG values as VARCHAR.

*/ inline const LongVarcharMappingType& GetMapLongVarcharAs() const{ return m_mapLongVarcharAs; } /** *

When true, DMS migrates LONG values as VARCHAR.

*/ inline bool MapLongVarcharAsHasBeenSet() const { return m_mapLongVarcharAsHasBeenSet; } /** *

When true, DMS migrates LONG values as VARCHAR.

*/ inline void SetMapLongVarcharAs(const LongVarcharMappingType& value) { m_mapLongVarcharAsHasBeenSet = true; m_mapLongVarcharAs = value; } /** *

When true, DMS migrates LONG values as VARCHAR.

*/ inline void SetMapLongVarcharAs(LongVarcharMappingType&& value) { m_mapLongVarcharAsHasBeenSet = true; m_mapLongVarcharAs = std::move(value); } /** *

When true, DMS migrates LONG values as VARCHAR.

*/ inline PostgreSQLSettings& WithMapLongVarcharAs(const LongVarcharMappingType& value) { SetMapLongVarcharAs(value); return *this;} /** *

When true, DMS migrates LONG values as VARCHAR.

*/ inline PostgreSQLSettings& WithMapLongVarcharAs(LongVarcharMappingType&& value) { SetMapLongVarcharAs(std::move(value)); return *this;} /** *

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.

*/ inline const DatabaseMode& GetDatabaseMode() const{ return m_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.

*/ inline bool DatabaseModeHasBeenSet() const { return m_databaseModeHasBeenSet; } /** *

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.

*/ inline void SetDatabaseMode(const DatabaseMode& value) { m_databaseModeHasBeenSet = true; m_databaseMode = value; } /** *

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.

*/ inline void SetDatabaseMode(DatabaseMode&& value) { m_databaseModeHasBeenSet = true; m_databaseMode = std::move(value); } /** *

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.

*/ inline PostgreSQLSettings& WithDatabaseMode(const DatabaseMode& value) { SetDatabaseMode(value); return *this;} /** *

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.

*/ inline PostgreSQLSettings& WithDatabaseMode(DatabaseMode&& value) { SetDatabaseMode(std::move(value)); return *this;} /** *

The Babelfish for Aurora PostgreSQL database name for the endpoint.

*/ inline const Aws::String& GetBabelfishDatabaseName() const{ return m_babelfishDatabaseName; } /** *

The Babelfish for Aurora PostgreSQL database name for the endpoint.

*/ inline bool BabelfishDatabaseNameHasBeenSet() const { return m_babelfishDatabaseNameHasBeenSet; } /** *

The Babelfish for Aurora PostgreSQL database name for the endpoint.

*/ inline void SetBabelfishDatabaseName(const Aws::String& value) { m_babelfishDatabaseNameHasBeenSet = true; m_babelfishDatabaseName = value; } /** *

The Babelfish for Aurora PostgreSQL database name for the endpoint.

*/ inline void SetBabelfishDatabaseName(Aws::String&& value) { m_babelfishDatabaseNameHasBeenSet = true; m_babelfishDatabaseName = std::move(value); } /** *

The Babelfish for Aurora PostgreSQL database name for the endpoint.

*/ inline void SetBabelfishDatabaseName(const char* value) { m_babelfishDatabaseNameHasBeenSet = true; m_babelfishDatabaseName.assign(value); } /** *

The Babelfish for Aurora PostgreSQL database name for the endpoint.

*/ inline PostgreSQLSettings& WithBabelfishDatabaseName(const Aws::String& value) { SetBabelfishDatabaseName(value); return *this;} /** *

The Babelfish for Aurora PostgreSQL database name for the endpoint.

*/ inline PostgreSQLSettings& WithBabelfishDatabaseName(Aws::String&& value) { SetBabelfishDatabaseName(std::move(value)); return *this;} /** *

The Babelfish for Aurora PostgreSQL database name for the endpoint.

*/ inline PostgreSQLSettings& WithBabelfishDatabaseName(const char* value) { SetBabelfishDatabaseName(value); return *this;} private: Aws::String m_afterConnectScript; bool m_afterConnectScriptHasBeenSet = false; bool m_captureDdls; bool m_captureDdlsHasBeenSet = false; int m_maxFileSize; bool m_maxFileSizeHasBeenSet = false; Aws::String m_databaseName; bool m_databaseNameHasBeenSet = false; Aws::String m_ddlArtifactsSchema; bool m_ddlArtifactsSchemaHasBeenSet = false; int m_executeTimeout; bool m_executeTimeoutHasBeenSet = false; bool m_failTasksOnLobTruncation; bool m_failTasksOnLobTruncationHasBeenSet = false; bool m_heartbeatEnable; bool m_heartbeatEnableHasBeenSet = false; Aws::String m_heartbeatSchema; bool m_heartbeatSchemaHasBeenSet = false; int m_heartbeatFrequency; bool m_heartbeatFrequencyHasBeenSet = false; Aws::String m_password; bool m_passwordHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_serverName; bool m_serverNameHasBeenSet = false; Aws::String m_username; bool m_usernameHasBeenSet = false; Aws::String m_slotName; bool m_slotNameHasBeenSet = false; PluginNameValue m_pluginName; bool m_pluginNameHasBeenSet = false; Aws::String m_secretsManagerAccessRoleArn; bool m_secretsManagerAccessRoleArnHasBeenSet = false; Aws::String m_secretsManagerSecretId; bool m_secretsManagerSecretIdHasBeenSet = false; bool m_trimSpaceInChar; bool m_trimSpaceInCharHasBeenSet = false; bool m_mapBooleanAsBoolean; bool m_mapBooleanAsBooleanHasBeenSet = false; bool m_mapJsonbAsClob; bool m_mapJsonbAsClobHasBeenSet = false; LongVarcharMappingType m_mapLongVarcharAs; bool m_mapLongVarcharAsHasBeenSet = false; DatabaseMode m_databaseMode; bool m_databaseModeHasBeenSet = false; Aws::String m_babelfishDatabaseName; bool m_babelfishDatabaseNameHasBeenSet = false; }; } // namespace Model } // namespace DatabaseMigrationService } // namespace Aws