class Aws::DatabaseMigrationService::Types::RedshiftSettings

Provides information that defines an Amazon Redshift endpoint.

@note When making an API call, you may pass RedshiftSettings

data as a hash:

    {
      accept_any_date: false,
      after_connect_script: "String",
      bucket_folder: "String",
      bucket_name: "String",
      case_sensitive_names: false,
      comp_update: false,
      connection_timeout: 1,
      database_name: "String",
      date_format: "String",
      empty_as_null: false,
      encryption_mode: "sse-s3", # accepts sse-s3, sse-kms
      explicit_ids: false,
      file_transfer_upload_streams: 1,
      load_timeout: 1,
      max_file_size: 1,
      password: "SecretString",
      port: 1,
      remove_quotes: false,
      replace_invalid_chars: "String",
      replace_chars: "String",
      server_name: "String",
      service_access_role_arn: "String",
      server_side_encryption_kms_key_id: "String",
      time_format: "String",
      trim_blanks: false,
      truncate_columns: false,
      username: "String",
      write_buffer_size: 1,
      secrets_manager_access_role_arn: "String",
      secrets_manager_secret_id: "String",
    }

@!attribute [rw] accept_any_date

A value that indicates to allow any date format, including invalid
formats such as 00/00/00 00:00:00, to be loaded without generating
an error. You can choose `true` or `false` (the default).

This parameter applies only to TIMESTAMP and DATE columns. Always
use ACCEPTANYDATE with the DATEFORMAT parameter. If the date format
for the data doesn't match the DATEFORMAT specification, Amazon
Redshift inserts a NULL value into that field.
@return [Boolean]

@!attribute [rw] after_connect_script

Code to run after connecting. This parameter should contain the code
itself, not the name of a file containing the code.
@return [String]

@!attribute [rw] bucket_folder

An S3 folder where the comma-separated-value (.csv) files are stored
before being uploaded to the target Redshift cluster.

For full load mode, DMS converts source records into .csv files and
loads them to the *BucketFolder/TableID* path. DMS uses the Redshift
`COPY` command to upload the .csv files to the target table. The
files are deleted once the `COPY` operation has finished. For more
information, see [COPY][1] in the *Amazon Redshift Database
Developer Guide*.

For change-data-capture (CDC) mode, DMS creates a *NetChanges*
table, and loads the .csv files to this
*BucketFolder/NetChangesTableID* path.

[1]: https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html
@return [String]

@!attribute [rw] bucket_name

The name of the intermediate S3 bucket used to store .csv files
before uploading data to Redshift.
@return [String]

@!attribute [rw] case_sensitive_names

If Amazon Redshift is configured to support case sensitive schema
names, set `CaseSensitiveNames` to `true`. The default is `false`.
@return [Boolean]

@!attribute [rw] comp_update

If you set `CompUpdate` to `true` Amazon Redshift applies automatic
compression if the table is empty. This applies even if the table
columns already have encodings other than `RAW`. If you set
`CompUpdate` to `false`, automatic compression is disabled and
existing column encodings aren't changed. The default is `true`.
@return [Boolean]

@!attribute [rw] connection_timeout

A value that sets the amount of time to wait (in milliseconds)
before timing out, beginning from when you initially establish a
connection.
@return [Integer]

@!attribute [rw] database_name

The name of the Amazon Redshift data warehouse (service) that you
are working with.
@return [String]

@!attribute [rw] date_format

The date format that you are using. Valid values are `auto`
(case-sensitive), your date format string enclosed in quotes, or
NULL. If this parameter is left unset (NULL), it defaults to a
format of 'YYYY-MM-DD'. Using `auto` recognizes most strings, even
some that aren't supported when you use a date format string.

If your date and time values use formats different from each other,
set this to `auto`.
@return [String]

@!attribute [rw] empty_as_null

A value that specifies whether DMS should migrate empty CHAR and
VARCHAR fields as NULL. A value of `true` sets empty CHAR and
VARCHAR fields to null. The default is `false`.
@return [Boolean]

@!attribute [rw] encryption_mode

The type of server-side encryption that you want to use for your
data. This encryption type is part of the endpoint settings or the
extra connections attributes for Amazon S3. You can choose either
`SSE_S3` (the default) or `SSE_KMS`.

<note markdown="1"> For the `ModifyEndpoint` operation, you can change the existing
value of the `EncryptionMode` parameter from `SSE_KMS` to `SSE_S3`.
But you can’t change the existing value from `SSE_S3` to `SSE_KMS`.

 </note>

To use `SSE_S3`, create an Identity and Access Management (IAM) role
with a policy that allows `"arn:aws:s3:::*"` to use the following
actions: `"s3:PutObject", "s3:ListBucket"`
@return [String]

@!attribute [rw] explicit_ids

This setting is only valid for a full-load migration task. Set
`ExplicitIds` to `true` to have tables with `IDENTITY` columns
override their auto-generated values with explicit values loaded
from the source data files used to populate the tables. The default
is `false`.
@return [Boolean]

@!attribute [rw] file_transfer_upload_streams

The number of threads used to upload a single file. This parameter
accepts a value from 1 through 64. It defaults to 10.

The number of parallel streams used to upload a single .csv file to
an S3 bucket using S3 Multipart Upload. For more information, see
[Multipart upload overview][1].

`FileTransferUploadStreams` accepts a value from 1 through 64. It
defaults to 10.

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
@return [Integer]

@!attribute [rw] load_timeout

The amount of time to wait (in milliseconds) before timing out of
operations performed by DMS on a Redshift cluster, such as Redshift
COPY, INSERT, DELETE, and UPDATE.
@return [Integer]

@!attribute [rw] max_file_size

The maximum size (in KB) of any .csv file used to load data on an S3
bucket and transfer data to Amazon Redshift. It defaults to
1048576KB (1 GB).
@return [Integer]

@!attribute [rw] password

The password for the user named in the `username` property.
@return [String]

@!attribute [rw] port

The port number for Amazon Redshift. The default value is 5439.
@return [Integer]

@!attribute [rw] remove_quotes

A value that specifies to remove surrounding quotation marks from
strings in the incoming data. All characters within the quotation
marks, including delimiters, are retained. Choose `true` to remove
quotation marks. The default is `false`.
@return [Boolean]

@!attribute [rw] replace_invalid_chars

A list of characters that you want to replace. Use with
`ReplaceChars`.
@return [String]

@!attribute [rw] replace_chars

A value that specifies to replaces the invalid characters specified
in `ReplaceInvalidChars`, substituting the specified characters
instead. The default is `"?"`.
@return [String]

@!attribute [rw] server_name

The name of the Amazon Redshift cluster you are using.
@return [String]

@!attribute [rw] service_access_role_arn

The Amazon Resource Name (ARN) of the IAM role that has access to
the Amazon Redshift service. The role must allow the `iam:PassRole`
action.
@return [String]

@!attribute [rw] server_side_encryption_kms_key_id

The KMS key ID. If you are using `SSE_KMS` for the `EncryptionMode`,
provide this key ID. The key that you use needs an attached policy
that enables IAM user permissions and allows use of the key.
@return [String]

@!attribute [rw] time_format

The time format that you want to use. Valid values are `auto`
(case-sensitive), `'timeformat_string'`, `'epochsecs'`, or
`'epochmillisecs'`. It defaults to 10. Using `auto` recognizes most
strings, even some that aren't supported when you use a time format
string.

If your date and time values use formats different from each other,
set this parameter to `auto`.
@return [String]

@!attribute [rw] trim_blanks

A value that specifies to remove the trailing white space characters
from a VARCHAR string. This parameter applies only to columns with a
VARCHAR data type. Choose `true` to remove unneeded white space. The
default is `false`.
@return [Boolean]

@!attribute [rw] truncate_columns

A value that specifies to truncate data in columns to the
appropriate number of characters, so that the data fits in the
column. This parameter applies only to columns with a VARCHAR or
CHAR data type, and rows with a size of 4 MB or less. Choose `true`
to truncate data. The default is `false`.
@return [Boolean]

@!attribute [rw] username

An Amazon Redshift user name for a registered user.
@return [String]

@!attribute [rw] write_buffer_size

The size (in KB) of the in-memory file write buffer used when
generating .csv files on the local disk at the DMS replication
instance. The default value is 1000 (buffer size is 1000KB).
@return [Integer]

@!attribute [rw] secrets_manager_access_role_arn

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
Amazon Redshift endpoint.

<note markdown="1"> 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][1] in the *Database Migration Service
User Guide*.

 </note>

[1]: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager
@return [String]

@!attribute [rw] secrets_manager_secret_id

The full ARN, partial ARN, or friendly name of the
`SecretsManagerSecret` that contains the Amazon Redshift endpoint
connection details.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/RedshiftSettings AWS API Documentation

Constants

SENSITIVE