Class: AWSCDK::DMS::CfnEndpoint::PostgreSqlSettingsProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
dms/cfn_endpoint.rb

Overview

Provides information that defines a PostgreSQL endpoint.

This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For information about other available settings, see Extra connection attributes when using PostgreSQL as a source for AWS DMS and Extra connection attributes when using PostgreSQL as a target for AWS DMS in the AWS Database Migration Service User Guide .

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(after_connect_script: nil, babelfish_database_name: nil, capture_ddls: nil, database_mode: nil, ddl_artifacts_schema: nil, execute_timeout: nil, fail_tasks_on_lob_truncation: nil, heartbeat_enable: nil, heartbeat_frequency: nil, heartbeat_schema: nil, map_boolean_as_boolean: nil, max_file_size: nil, plugin_name: nil, secrets_manager_access_role_arn: nil, secrets_manager_secret_id: nil, slot_name: nil) ⇒ PostgreSqlSettingsProperty

Returns a new instance of PostgreSqlSettingsProperty.

Parameters:

  • after_connect_script (String, nil) (defaults to: nil)

    For use with change data capture (CDC) only, this attribute has AWS DMS bypass foreign keys and user triggers to reduce the time it takes to bulk load data.

  • babelfish_database_name (String, nil) (defaults to: nil)

    The Babelfish for Aurora PostgreSQL database name for the endpoint.

  • capture_ddls (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    To capture DDL events, AWS DMS creates various artifacts in the PostgreSQL database when the task starts.

  • database_mode (String, nil) (defaults to: nil)

    Specifies the default behavior of the replication's handling of PostgreSQL- compatible endpoints that require some additional configuration, such as Babelfish endpoints.

  • ddl_artifacts_schema (String, nil) (defaults to: nil)

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

  • execute_timeout (Numeric, nil) (defaults to: nil)

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

  • fail_tasks_on_lob_truncation (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    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 .

  • heartbeat_enable (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    The write-ahead log (WAL) heartbeat feature mimics a dummy transaction.

  • heartbeat_frequency (Numeric, nil) (defaults to: nil)

    Sets the WAL heartbeat frequency (in minutes).

  • heartbeat_schema (String, nil) (defaults to: nil)

    Sets the schema in which the heartbeat artifacts are created.

  • map_boolean_as_boolean (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    When true, lets PostgreSQL migrate the boolean type as boolean.

  • max_file_size (Numeric, nil) (defaults to: nil)

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

  • plugin_name (String, nil) (defaults to: nil)

    Specifies the plugin to use to create a replication slot.

  • secrets_manager_access_role_arn (String, nil) (defaults to: nil)

    The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in SecretsManagerSecret .

  • secrets_manager_secret_id (String, nil) (defaults to: nil)

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

  • slot_name (String, nil) (defaults to: nil)

    Sets the name of a previously created logical replication slot for a change data capture (CDC) load of the PostgreSQL source instance.



2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
# File 'dms/cfn_endpoint.rb', line 2948

def initialize(after_connect_script: nil, babelfish_database_name: nil, capture_ddls: nil, database_mode: nil, ddl_artifacts_schema: nil, execute_timeout: nil, fail_tasks_on_lob_truncation: nil, heartbeat_enable: nil, heartbeat_frequency: nil, heartbeat_schema: nil, map_boolean_as_boolean: nil, max_file_size: nil, plugin_name: nil, secrets_manager_access_role_arn: nil, secrets_manager_secret_id: nil, slot_name: nil)
  @after_connect_script = after_connect_script
  Jsii::Type.check_type(@after_connect_script, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "afterConnectScript") unless @after_connect_script.nil?
  @babelfish_database_name = babelfish_database_name
  Jsii::Type.check_type(@babelfish_database_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "babelfishDatabaseName") unless @babelfish_database_name.nil?
  @capture_ddls = capture_ddls
  Jsii::Type.check_type(@capture_ddls, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "captureDdls") unless @capture_ddls.nil?
  @database_mode = database_mode
  Jsii::Type.check_type(@database_mode, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "databaseMode") unless @database_mode.nil?
  @ddl_artifacts_schema = ddl_artifacts_schema
  Jsii::Type.check_type(@ddl_artifacts_schema, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ddlArtifactsSchema") unless @ddl_artifacts_schema.nil?
  @execute_timeout = execute_timeout
  Jsii::Type.check_type(@execute_timeout, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "executeTimeout") unless @execute_timeout.nil?
  @fail_tasks_on_lob_truncation = fail_tasks_on_lob_truncation
  Jsii::Type.check_type(@fail_tasks_on_lob_truncation, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "failTasksOnLobTruncation") unless @fail_tasks_on_lob_truncation.nil?
  @heartbeat_enable = heartbeat_enable
  Jsii::Type.check_type(@heartbeat_enable, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "heartbeatEnable") unless @heartbeat_enable.nil?
  @heartbeat_frequency = heartbeat_frequency
  Jsii::Type.check_type(@heartbeat_frequency, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "heartbeatFrequency") unless @heartbeat_frequency.nil?
  @heartbeat_schema = heartbeat_schema
  Jsii::Type.check_type(@heartbeat_schema, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "heartbeatSchema") unless @heartbeat_schema.nil?
  @map_boolean_as_boolean = map_boolean_as_boolean
  Jsii::Type.check_type(@map_boolean_as_boolean, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "mapBooleanAsBoolean") unless @map_boolean_as_boolean.nil?
  @max_file_size = max_file_size
  Jsii::Type.check_type(@max_file_size, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "maxFileSize") unless @max_file_size.nil?
  @plugin_name = plugin_name
  Jsii::Type.check_type(@plugin_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "pluginName") unless @plugin_name.nil?
  @secrets_manager_access_role_arn = secrets_manager_access_role_arn
  Jsii::Type.check_type(@secrets_manager_access_role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "secretsManagerAccessRoleArn") unless @secrets_manager_access_role_arn.nil?
  @secrets_manager_secret_id = secrets_manager_secret_id
  Jsii::Type.check_type(@secrets_manager_secret_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "secretsManagerSecretId") unless @secrets_manager_secret_id.nil?
  @slot_name = slot_name
  Jsii::Type.check_type(@slot_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "slotName") unless @slot_name.nil?
end

Instance Attribute Details

#after_connect_scriptString? (readonly)

For use with change data capture (CDC) only, this attribute has AWS DMS bypass foreign keys and user triggers to reduce the time it takes to bulk load data.

Example: afterConnectScript=SET session_replication_role='replica'



2989
2990
2991
# File 'dms/cfn_endpoint.rb', line 2989

def after_connect_script
  @after_connect_script
end

#babelfish_database_nameString? (readonly)

The Babelfish for Aurora PostgreSQL database name for the endpoint.



2994
2995
2996
# File 'dms/cfn_endpoint.rb', line 2994

def babelfish_database_name
  @babelfish_database_name
end

#capture_ddlsBoolean, ... (readonly)

To capture DDL events, AWS DMS creates various artifacts in the PostgreSQL database when the task starts.

You can later remove these artifacts.

If this value is set to True , you don't have to create tables or triggers on the source database.



3003
3004
3005
# File 'dms/cfn_endpoint.rb', line 3003

def capture_ddls
  @capture_ddls
end

#database_modeString? (readonly)

Specifies the default behavior of the replication's handling of PostgreSQL- compatible endpoints that require some additional configuration, such as Babelfish endpoints.



3008
3009
3010
# File 'dms/cfn_endpoint.rb', line 3008

def database_mode
  @database_mode
end

#ddl_artifacts_schemaString? (readonly)

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

The default value is public .

Example: ddlArtifactsSchema=xyzddlschema;



3017
3018
3019
# File 'dms/cfn_endpoint.rb', line 3017

def ddl_artifacts_schema
  @ddl_artifacts_schema
end

#execute_timeoutNumeric? (readonly)

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

Example: executeTimeout=100;



3024
3025
3026
# File 'dms/cfn_endpoint.rb', line 3024

def execute_timeout
  @execute_timeout
end

#fail_tasks_on_lob_truncationBoolean, ... (readonly)

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 .

The default value is false .

If task is set to Limited LOB mode and this option is set to true, the task fails instead of truncating the LOB data.



3033
3034
3035
# File 'dms/cfn_endpoint.rb', line 3033

def fail_tasks_on_lob_truncation
  @fail_tasks_on_lob_truncation
end

#heartbeat_enableBoolean, ... (readonly)

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.

The default value is false .



3042
3043
3044
# File 'dms/cfn_endpoint.rb', line 3042

def heartbeat_enable
  @heartbeat_enable
end

#heartbeat_frequencyNumeric? (readonly)

Sets the WAL heartbeat frequency (in minutes).

The default value is 5 minutes.



3049
3050
3051
# File 'dms/cfn_endpoint.rb', line 3049

def heartbeat_frequency
  @heartbeat_frequency
end

#heartbeat_schemaString? (readonly)

Sets the schema in which the heartbeat artifacts are created.

The default value is public .



3056
3057
3058
# File 'dms/cfn_endpoint.rb', line 3056

def heartbeat_schema
  @heartbeat_schema
end

#map_boolean_as_booleanBoolean, ... (readonly)

When true, lets PostgreSQL migrate the boolean type as boolean.

By default, PostgreSQL migrates booleans as varchar(5) . You must set this setting on both the source and target endpoints for it to take effect.

The default value is false .



3065
3066
3067
# File 'dms/cfn_endpoint.rb', line 3065

def map_boolean_as_boolean
  @map_boolean_as_boolean
end

#max_file_sizeNumeric? (readonly)

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

The default value is 32,768 KB (32 MB).

Example: maxFileSize=512



3074
3075
3076
# File 'dms/cfn_endpoint.rb', line 3074

def max_file_size
  @max_file_size
end

#plugin_nameString? (readonly)

Specifies the plugin to use to create a replication slot.

The default value is pglogical .



3081
3082
3083
# File 'dms/cfn_endpoint.rb', line 3081

def plugin_name
  @plugin_name
end

#secrets_manager_access_role_arnString? (readonly)

The full Amazon Resource Name (ARN) of the IAM role that specifies AWS 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 AWS 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 , the corresponding SecretsManagerAccessRoleArn , and the SecretsManagerSecretId that is required to access it, see Using secrets to access AWS Database Migration Service resources in the AWS Database Migration Service User Guide .



3092
3093
3094
# File 'dms/cfn_endpoint.rb', line 3092

def secrets_manager_access_role_arn
  @secrets_manager_access_role_arn
end

#secrets_manager_secret_idString? (readonly)

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



3097
3098
3099
# File 'dms/cfn_endpoint.rb', line 3097

def secrets_manager_secret_id
  @secrets_manager_secret_id
end

#slot_nameString? (readonly)

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 AWS 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 AWS Database Migration Service User Guide . For more information about using CdcStartPosition , see CreateReplicationTask , StartReplicationTask , and ModifyReplicationTask .



3106
3107
3108
# File 'dms/cfn_endpoint.rb', line 3106

def slot_name
  @slot_name
end

Class Method Details

.jsii_propertiesObject



3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
# File 'dms/cfn_endpoint.rb', line 3108

def self.jsii_properties
  {
    :after_connect_script => "afterConnectScript",
    :babelfish_database_name => "babelfishDatabaseName",
    :capture_ddls => "captureDdls",
    :database_mode => "databaseMode",
    :ddl_artifacts_schema => "ddlArtifactsSchema",
    :execute_timeout => "executeTimeout",
    :fail_tasks_on_lob_truncation => "failTasksOnLobTruncation",
    :heartbeat_enable => "heartbeatEnable",
    :heartbeat_frequency => "heartbeatFrequency",
    :heartbeat_schema => "heartbeatSchema",
    :map_boolean_as_boolean => "mapBooleanAsBoolean",
    :max_file_size => "maxFileSize",
    :plugin_name => "pluginName",
    :secrets_manager_access_role_arn => "secretsManagerAccessRoleArn",
    :secrets_manager_secret_id => "secretsManagerSecretId",
    :slot_name => "slotName",
  }
end

Instance Method Details

#to_jsiiObject



3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
# File 'dms/cfn_endpoint.rb', line 3129

def to_jsii
  result = {}
  result.merge!({
    "afterConnectScript" => @after_connect_script,
    "babelfishDatabaseName" => @babelfish_database_name,
    "captureDdls" => @capture_ddls,
    "databaseMode" => @database_mode,
    "ddlArtifactsSchema" => @ddl_artifacts_schema,
    "executeTimeout" => @execute_timeout,
    "failTasksOnLobTruncation" => @fail_tasks_on_lob_truncation,
    "heartbeatEnable" => @heartbeat_enable,
    "heartbeatFrequency" => @heartbeat_frequency,
    "heartbeatSchema" => @heartbeat_schema,
    "mapBooleanAsBoolean" => @map_boolean_as_boolean,
    "maxFileSize" => @max_file_size,
    "pluginName" => @plugin_name,
    "secretsManagerAccessRoleArn" => @secrets_manager_access_role_arn,
    "secretsManagerSecretId" => @secrets_manager_secret_id,
    "slotName" => @slot_name,
  })
  result.compact
end