/*
* 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 an Amazon Redshift endpoint.
///
public partial class RedshiftSettings
{
private bool? _acceptAnyDate;
private string _afterConnectScript;
private string _bucketFolder;
private string _bucketName;
private bool? _caseSensitiveNames;
private bool? _compUpdate;
private int? _connectionTimeout;
private string _databaseName;
private string _dateFormat;
private bool? _emptyAsNull;
private EncryptionModeValue _encryptionMode;
private bool? _explicitIds;
private int? _fileTransferUploadStreams;
private int? _loadTimeout;
private bool? _mapBooleanAsBoolean;
private int? _maxFileSize;
private string _password;
private int? _port;
private bool? _removeQuotes;
private string _replaceChars;
private string _replaceInvalidChars;
private string _secretsManagerAccessRoleArn;
private string _secretsManagerSecretId;
private string _serverName;
private string _serverSideEncryptionKmsKeyId;
private string _serviceAccessRoleArn;
private string _timeFormat;
private bool? _trimBlanks;
private bool? _truncateColumns;
private string _username;
private int? _writeBufferSize;
///
/// Gets and sets the property AcceptAnyDate.
///
/// 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.
///
///
public bool AcceptAnyDate
{
get { return this._acceptAnyDate.GetValueOrDefault(); }
set { this._acceptAnyDate = value; }
}
// Check to see if AcceptAnyDate property is set
internal bool IsSetAcceptAnyDate()
{
return this._acceptAnyDate.HasValue;
}
///
/// Gets and sets the property AfterConnectScript.
///
/// Code to run after connecting. This parameter should contain the code itself, not the
/// name of a file containing the code.
///
///
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 BucketFolder.
///
/// 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
/// 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.
///
///
public string BucketFolder
{
get { return this._bucketFolder; }
set { this._bucketFolder = value; }
}
// Check to see if BucketFolder property is set
internal bool IsSetBucketFolder()
{
return this._bucketFolder != null;
}
///
/// Gets and sets the property BucketName.
///
/// The name of the intermediate S3 bucket used to store .csv files before uploading data
/// to Redshift.
///
///
public string BucketName
{
get { return this._bucketName; }
set { this._bucketName = value; }
}
// Check to see if BucketName property is set
internal bool IsSetBucketName()
{
return this._bucketName != null;
}
///
/// Gets and sets the property CaseSensitiveNames.
///
/// If Amazon Redshift is configured to support case sensitive schema names, set CaseSensitiveNames
/// to true
. The default is false
.
///
///
public bool CaseSensitiveNames
{
get { return this._caseSensitiveNames.GetValueOrDefault(); }
set { this._caseSensitiveNames = value; }
}
// Check to see if CaseSensitiveNames property is set
internal bool IsSetCaseSensitiveNames()
{
return this._caseSensitiveNames.HasValue;
}
///
/// Gets and sets the property CompUpdate.
///
/// 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
.
///
///
public bool CompUpdate
{
get { return this._compUpdate.GetValueOrDefault(); }
set { this._compUpdate = value; }
}
// Check to see if CompUpdate property is set
internal bool IsSetCompUpdate()
{
return this._compUpdate.HasValue;
}
///
/// Gets and sets the property ConnectionTimeout.
///
/// A value that sets the amount of time to wait (in milliseconds) before timing out,
/// beginning from when you initially establish a connection.
///
///
public int ConnectionTimeout
{
get { return this._connectionTimeout.GetValueOrDefault(); }
set { this._connectionTimeout = value; }
}
// Check to see if ConnectionTimeout property is set
internal bool IsSetConnectionTimeout()
{
return this._connectionTimeout.HasValue;
}
///
/// Gets and sets the property DatabaseName.
///
/// The name of the Amazon Redshift data warehouse (service) that you are working with.
///
///
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 DateFormat.
///
/// 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
.
///
///
///
public string DateFormat
{
get { return this._dateFormat; }
set { this._dateFormat = value; }
}
// Check to see if DateFormat property is set
internal bool IsSetDateFormat()
{
return this._dateFormat != null;
}
///
/// Gets and sets the property EmptyAsNull.
///
/// 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
.
///
///
public bool EmptyAsNull
{
get { return this._emptyAsNull.GetValueOrDefault(); }
set { this._emptyAsNull = value; }
}
// Check to see if EmptyAsNull property is set
internal bool IsSetEmptyAsNull()
{
return this._emptyAsNull.HasValue;
}
///
/// Gets and sets the property EncryptionMode.
///
/// 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
.
///
///
///
///
/// 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
.
///
///
///
/// 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"
///
///
public EncryptionModeValue EncryptionMode
{
get { return this._encryptionMode; }
set { this._encryptionMode = value; }
}
// Check to see if EncryptionMode property is set
internal bool IsSetEncryptionMode()
{
return this._encryptionMode != null;
}
///
/// Gets and sets the property ExplicitIds.
///
/// 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
.
///
///
public bool ExplicitIds
{
get { return this._explicitIds.GetValueOrDefault(); }
set { this._explicitIds = value; }
}
// Check to see if ExplicitIds property is set
internal bool IsSetExplicitIds()
{
return this._explicitIds.HasValue;
}
///
/// Gets and sets the property FileTransferUploadStreams.
///
/// 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.
///
///
///
/// FileTransferUploadStreams
accepts a value from 1 through 64. It defaults
/// to 10.
///
///
public int FileTransferUploadStreams
{
get { return this._fileTransferUploadStreams.GetValueOrDefault(); }
set { this._fileTransferUploadStreams = value; }
}
// Check to see if FileTransferUploadStreams property is set
internal bool IsSetFileTransferUploadStreams()
{
return this._fileTransferUploadStreams.HasValue;
}
///
/// Gets and sets the property LoadTimeout.
///
/// 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.
///
///
public int LoadTimeout
{
get { return this._loadTimeout.GetValueOrDefault(); }
set { this._loadTimeout = value; }
}
// Check to see if LoadTimeout property is set
internal bool IsSetLoadTimeout()
{
return this._loadTimeout.HasValue;
}
///
/// Gets and sets the property MapBooleanAsBoolean.
///
/// When true, lets Redshift migrate the boolean type as boolean. By default, Redshift
/// migrates booleans as varchar(1)
.
///
///
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 MaxFileSize.
///
/// 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).
///
///
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.
///
/// The password for the user named in the username
property.
///
///
[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.
///
/// The port number for Amazon Redshift. The default value is 5439.
///
///
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 RemoveQuotes.
///
/// 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
.
///
///
public bool RemoveQuotes
{
get { return this._removeQuotes.GetValueOrDefault(); }
set { this._removeQuotes = value; }
}
// Check to see if RemoveQuotes property is set
internal bool IsSetRemoveQuotes()
{
return this._removeQuotes.HasValue;
}
///
/// Gets and sets the property ReplaceChars.
///
/// A value that specifies to replaces the invalid characters specified in ReplaceInvalidChars
,
/// substituting the specified characters instead. The default is "?"
.
///
///
public string ReplaceChars
{
get { return this._replaceChars; }
set { this._replaceChars = value; }
}
// Check to see if ReplaceChars property is set
internal bool IsSetReplaceChars()
{
return this._replaceChars != null;
}
///
/// Gets and sets the property ReplaceInvalidChars.
///
/// A list of characters that you want to replace. Use with ReplaceChars
.
///
///
public string ReplaceInvalidChars
{
get { return this._replaceInvalidChars; }
set { this._replaceInvalidChars = value; }
}
// Check to see if ReplaceInvalidChars property is set
internal bool IsSetReplaceInvalidChars()
{
return this._replaceInvalidChars != null;
}
///
/// 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 Amazon Redshift 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 Amazon Redshift 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 name of the Amazon Redshift cluster you are using.
///
///
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 ServerSideEncryptionKmsKeyId.
///
/// 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.
///
///
public string ServerSideEncryptionKmsKeyId
{
get { return this._serverSideEncryptionKmsKeyId; }
set { this._serverSideEncryptionKmsKeyId = value; }
}
// Check to see if ServerSideEncryptionKmsKeyId property is set
internal bool IsSetServerSideEncryptionKmsKeyId()
{
return this._serverSideEncryptionKmsKeyId != null;
}
///
/// Gets and sets the property ServiceAccessRoleArn.
///
/// 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.
///
///
public string ServiceAccessRoleArn
{
get { return this._serviceAccessRoleArn; }
set { this._serviceAccessRoleArn = value; }
}
// Check to see if ServiceAccessRoleArn property is set
internal bool IsSetServiceAccessRoleArn()
{
return this._serviceAccessRoleArn != null;
}
///
/// Gets and sets the property TimeFormat.
///
/// 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
.
///
///
public string TimeFormat
{
get { return this._timeFormat; }
set { this._timeFormat = value; }
}
// Check to see if TimeFormat property is set
internal bool IsSetTimeFormat()
{
return this._timeFormat != null;
}
///
/// Gets and sets the property TrimBlanks.
///
/// 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
.
///
///
public bool TrimBlanks
{
get { return this._trimBlanks.GetValueOrDefault(); }
set { this._trimBlanks = value; }
}
// Check to see if TrimBlanks property is set
internal bool IsSetTrimBlanks()
{
return this._trimBlanks.HasValue;
}
///
/// Gets and sets the property TruncateColumns.
///
/// 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
.
///
///
public bool TruncateColumns
{
get { return this._truncateColumns.GetValueOrDefault(); }
set { this._truncateColumns = value; }
}
// Check to see if TruncateColumns property is set
internal bool IsSetTruncateColumns()
{
return this._truncateColumns.HasValue;
}
///
/// Gets and sets the property Username.
///
/// An Amazon Redshift user name for a registered user.
///
///
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;
}
///
/// Gets and sets the property WriteBufferSize.
///
/// 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).
///
///
public int WriteBufferSize
{
get { return this._writeBufferSize.GetValueOrDefault(); }
set { this._writeBufferSize = value; }
}
// Check to see if WriteBufferSize property is set
internal bool IsSetWriteBufferSize()
{
return this._writeBufferSize.HasValue;
}
}
}