software.amazon.awscdk.services.dms.CfnEndpoint Maven / Gradle / Ivy
Show all versions of dms Show documentation
package software.amazon.awscdk.services.dms;
/**
* A CloudFormation AWS::DMS::Endpoint
.
*
* The AWS::DMS::Endpoint
resource specifies an AWS DMS endpoint.
*
* Currently, AWS CloudFormation supports all AWS DMS endpoint types.
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* CfnEndpoint cfnEndpoint = CfnEndpoint.Builder.create(this, "MyCfnEndpoint")
* .endpointType("endpointType")
* .engineName("engineName")
* // the properties below are optional
* .certificateArn("certificateArn")
* .databaseName("databaseName")
* .docDbSettings(DocDbSettingsProperty.builder()
* .docsToInvestigate(123)
* .extractDocId(false)
* .nestingLevel("nestingLevel")
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .build())
* .dynamoDbSettings(DynamoDbSettingsProperty.builder()
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .build())
* .elasticsearchSettings(ElasticsearchSettingsProperty.builder()
* .endpointUri("endpointUri")
* .errorRetryDuration(123)
* .fullLoadErrorPercentage(123)
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .build())
* .endpointIdentifier("endpointIdentifier")
* .extraConnectionAttributes("extraConnectionAttributes")
* .gcpMySqlSettings(GcpMySQLSettingsProperty.builder()
* .afterConnectScript("afterConnectScript")
* .cleanSourceMetadataOnMismatch(false)
* .databaseName("databaseName")
* .eventsPollInterval(123)
* .maxFileSize(123)
* .parallelLoadThreads(123)
* .password("password")
* .port(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .serverName("serverName")
* .serverTimezone("serverTimezone")
* .username("username")
* .build())
* .ibmDb2Settings(IbmDb2SettingsProperty.builder()
* .currentLsn("currentLsn")
* .maxKBytesPerRead(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .setDataCaptureChanges(false)
* .build())
* .kafkaSettings(KafkaSettingsProperty.builder()
* .broker("broker")
* .includeControlDetails(false)
* .includeNullAndEmpty(false)
* .includePartitionValue(false)
* .includeTableAlterOperations(false)
* .includeTransactionDetails(false)
* .messageFormat("messageFormat")
* .messageMaxBytes(123)
* .noHexPrefix(false)
* .partitionIncludeSchemaTable(false)
* .saslPassword("saslPassword")
* .saslUserName("saslUserName")
* .securityProtocol("securityProtocol")
* .sslCaCertificateArn("sslCaCertificateArn")
* .sslClientCertificateArn("sslClientCertificateArn")
* .sslClientKeyArn("sslClientKeyArn")
* .sslClientKeyPassword("sslClientKeyPassword")
* .topic("topic")
* .build())
* .kinesisSettings(KinesisSettingsProperty.builder()
* .includeControlDetails(false)
* .includeNullAndEmpty(false)
* .includePartitionValue(false)
* .includeTableAlterOperations(false)
* .includeTransactionDetails(false)
* .messageFormat("messageFormat")
* .noHexPrefix(false)
* .partitionIncludeSchemaTable(false)
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .streamArn("streamArn")
* .build())
* .kmsKeyId("kmsKeyId")
* .microsoftSqlServerSettings(MicrosoftSqlServerSettingsProperty.builder()
* .bcpPacketSize(123)
* .controlTablesFileGroup("controlTablesFileGroup")
* .querySingleAlwaysOnNode(false)
* .readBackupOnly(false)
* .safeguardPolicy("safeguardPolicy")
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .useBcpFullLoad(false)
* .useThirdPartyBackupDevice(false)
* .build())
* .mongoDbSettings(MongoDbSettingsProperty.builder()
* .authMechanism("authMechanism")
* .authSource("authSource")
* .authType("authType")
* .databaseName("databaseName")
* .docsToInvestigate("docsToInvestigate")
* .extractDocId("extractDocId")
* .nestingLevel("nestingLevel")
* .password("password")
* .port(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .serverName("serverName")
* .username("username")
* .build())
* .mySqlSettings(MySqlSettingsProperty.builder()
* .afterConnectScript("afterConnectScript")
* .cleanSourceMetadataOnMismatch(false)
* .eventsPollInterval(123)
* .maxFileSize(123)
* .parallelLoadThreads(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .serverTimezone("serverTimezone")
* .targetDbType("targetDbType")
* .build())
* .neptuneSettings(NeptuneSettingsProperty.builder()
* .errorRetryDuration(123)
* .iamAuthEnabled(false)
* .maxFileSize(123)
* .maxRetryCount(123)
* .s3BucketFolder("s3BucketFolder")
* .s3BucketName("s3BucketName")
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .build())
* .oracleSettings(OracleSettingsProperty.builder()
* .accessAlternateDirectly(false)
* .additionalArchivedLogDestId(123)
* .addSupplementalLogging(false)
* .allowSelectNestedTables(false)
* .archivedLogDestId(123)
* .archivedLogsOnly(false)
* .asmPassword("asmPassword")
* .asmServer("asmServer")
* .asmUser("asmUser")
* .charLengthSemantics("charLengthSemantics")
* .directPathNoLog(false)
* .directPathParallelLoad(false)
* .enableHomogenousTablespace(false)
* .extraArchivedLogDestIds(List.of(123))
* .failTasksOnLobTruncation(false)
* .numberDatatypeScale(123)
* .oraclePathPrefix("oraclePathPrefix")
* .parallelAsmReadThreads(123)
* .readAheadBlocks(123)
* .readTableSpaceName(false)
* .replacePathPrefix(false)
* .retryInterval(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerOracleAsmAccessRoleArn("secretsManagerOracleAsmAccessRoleArn")
* .secretsManagerOracleAsmSecretId("secretsManagerOracleAsmSecretId")
* .secretsManagerSecretId("secretsManagerSecretId")
* .securityDbEncryption("securityDbEncryption")
* .securityDbEncryptionName("securityDbEncryptionName")
* .spatialDataOptionToGeoJsonFunctionName("spatialDataOptionToGeoJsonFunctionName")
* .standbyDelayTime(123)
* .useAlternateFolderForOnline(false)
* .useBFile(false)
* .useDirectPathFullLoad(false)
* .useLogminerReader(false)
* .usePathPrefix("usePathPrefix")
* .build())
* .password("password")
* .port(123)
* .postgreSqlSettings(PostgreSqlSettingsProperty.builder()
* .afterConnectScript("afterConnectScript")
* .captureDdls(false)
* .ddlArtifactsSchema("ddlArtifactsSchema")
* .executeTimeout(123)
* .failTasksOnLobTruncation(false)
* .heartbeatEnable(false)
* .heartbeatFrequency(123)
* .heartbeatSchema("heartbeatSchema")
* .mapBooleanAsBoolean(false)
* .maxFileSize(123)
* .pluginName("pluginName")
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .slotName("slotName")
* .build())
* .redisSettings(RedisSettingsProperty.builder()
* .authPassword("authPassword")
* .authType("authType")
* .authUserName("authUserName")
* .port(123)
* .serverName("serverName")
* .sslCaCertificateArn("sslCaCertificateArn")
* .sslSecurityProtocol("sslSecurityProtocol")
* .build())
* .redshiftSettings(RedshiftSettingsProperty.builder()
* .acceptAnyDate(false)
* .afterConnectScript("afterConnectScript")
* .bucketFolder("bucketFolder")
* .bucketName("bucketName")
* .caseSensitiveNames(false)
* .compUpdate(false)
* .connectionTimeout(123)
* .dateFormat("dateFormat")
* .emptyAsNull(false)
* .encryptionMode("encryptionMode")
* .explicitIds(false)
* .fileTransferUploadStreams(123)
* .loadTimeout(123)
* .mapBooleanAsBoolean(false)
* .maxFileSize(123)
* .removeQuotes(false)
* .replaceChars("replaceChars")
* .replaceInvalidChars("replaceInvalidChars")
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .serverSideEncryptionKmsKeyId("serverSideEncryptionKmsKeyId")
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .timeFormat("timeFormat")
* .trimBlanks(false)
* .truncateColumns(false)
* .writeBufferSize(123)
* .build())
* .resourceIdentifier("resourceIdentifier")
* .s3Settings(S3SettingsProperty.builder()
* .addColumnName(false)
* .bucketFolder("bucketFolder")
* .bucketName("bucketName")
* .cannedAclForObjects("cannedAclForObjects")
* .cdcInsertsAndUpdates(false)
* .cdcInsertsOnly(false)
* .cdcMaxBatchInterval(123)
* .cdcMinFileSize(123)
* .cdcPath("cdcPath")
* .compressionType("compressionType")
* .csvDelimiter("csvDelimiter")
* .csvNoSupValue("csvNoSupValue")
* .csvNullValue("csvNullValue")
* .csvRowDelimiter("csvRowDelimiter")
* .dataFormat("dataFormat")
* .dataPageSize(123)
* .datePartitionDelimiter("datePartitionDelimiter")
* .datePartitionEnabled(false)
* .datePartitionSequence("datePartitionSequence")
* .datePartitionTimezone("datePartitionTimezone")
* .dictPageSizeLimit(123)
* .enableStatistics(false)
* .encodingType("encodingType")
* .encryptionMode("encryptionMode")
* .externalTableDefinition("externalTableDefinition")
* .ignoreHeaderRows(123)
* .includeOpForFullLoad(false)
* .maxFileSize(123)
* .parquetTimestampInMillisecond(false)
* .parquetVersion("parquetVersion")
* .preserveTransactions(false)
* .rfc4180(false)
* .rowGroupLength(123)
* .serverSideEncryptionKmsKeyId("serverSideEncryptionKmsKeyId")
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .timestampColumnName("timestampColumnName")
* .useCsvNoSupValue(false)
* .useTaskStartTimeForFullLoadTimestamp(false)
* .build())
* .serverName("serverName")
* .sslMode("sslMode")
* .sybaseSettings(SybaseSettingsProperty.builder()
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .build())
* .tags(List.of(CfnTag.builder()
* .key("key")
* .value("value")
* .build()))
* .username("username")
* .build();
*
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.84.0 (build 5404dcf)", date = "2023-06-19T16:29:56.309Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint")
public class CfnEndpoint extends software.amazon.awscdk.core.CfnResource implements software.amazon.awscdk.core.IInspectable {
protected CfnEndpoint(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
protected CfnEndpoint(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
super(initializationMode);
}
static {
CFN_RESOURCE_TYPE_NAME = software.amazon.jsii.JsiiObject.jsiiStaticGet(software.amazon.awscdk.services.dms.CfnEndpoint.class, "CFN_RESOURCE_TYPE_NAME", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Create a new AWS::DMS::Endpoint
.
*
* @param scope
- scope in which this resource is defined.
This parameter is required.
* @param id - scoped id of the resource.
This parameter is required.
* @param props - resource properties.
This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public CfnEndpoint(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.dms.CfnEndpointProps props) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required"), java.util.Objects.requireNonNull(props, "props is required") });
}
/**
* Examines the CloudFormation resource and discloses attributes.
*
* @param inspector
- tree inspector to collect and process attributes.
This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public void inspect(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.TreeInspector inspector) {
software.amazon.jsii.Kernel.call(this, "inspect", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(inspector, "inspector is required") });
}
/**
* @param props This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
protected @org.jetbrains.annotations.NotNull java.util.Map renderProperties(final @org.jetbrains.annotations.NotNull java.util.Map props) {
return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.call(this, "renderProperties", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class)), new Object[] { java.util.Objects.requireNonNull(props, "props is required") }));
}
/**
* The CloudFormation resource type name for this resource class.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public final static java.lang.String CFN_RESOURCE_TYPE_NAME;
/**
* A value that can be used for cross-account validation.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull java.lang.String getAttrExternalId() {
return software.amazon.jsii.Kernel.get(this, "attrExternalId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
*/
@Override
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
protected @org.jetbrains.annotations.NotNull java.util.Map getCfnProperties() {
return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.get(this, "cfnProperties", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class))));
}
/**
* One or more tags to be assigned to the endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.TagManager getTags() {
return software.amazon.jsii.Kernel.get(this, "tags", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.core.TagManager.class));
}
/**
* The type of endpoint.
*
* Valid values are source
and target
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull java.lang.String getEndpointType() {
return software.amazon.jsii.Kernel.get(this, "endpointType", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The type of endpoint.
*
* Valid values are source
and target
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setEndpointType(final @org.jetbrains.annotations.NotNull java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "endpointType", java.util.Objects.requireNonNull(value, "endpointType is required"));
}
/**
* The type of engine for the endpoint, depending on the EndpointType
value.
*
* Valid values : mysql
| oracle
| postgres
| mariadb
| aurora
| aurora-postgresql
| opensearch
| redshift
| s3
| db2
| azuredb
| sybase
| dynamodb
| mongodb
| kinesis
| kafka
| elasticsearch
| docdb
| sqlserver
| neptune
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.NotNull java.lang.String getEngineName() {
return software.amazon.jsii.Kernel.get(this, "engineName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The type of engine for the endpoint, depending on the EndpointType
value.
*
* Valid values : mysql
| oracle
| postgres
| mariadb
| aurora
| aurora-postgresql
| opensearch
| redshift
| s3
| db2
| azuredb
| sybase
| dynamodb
| mongodb
| kinesis
| kafka
| elasticsearch
| docdb
| sqlserver
| neptune
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setEngineName(final @org.jetbrains.annotations.NotNull java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "engineName", java.util.Objects.requireNonNull(value, "engineName is required"));
}
/**
* The Amazon Resource Name (ARN) for the certificate.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getCertificateArn() {
return software.amazon.jsii.Kernel.get(this, "certificateArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The Amazon Resource Name (ARN) for the certificate.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setCertificateArn(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "certificateArn", value);
}
/**
* The name of the endpoint database.
*
* For a MySQL source or target endpoint, don't specify DatabaseName
. To migrate to a specific database, use this setting and targetDbType
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getDatabaseName() {
return software.amazon.jsii.Kernel.get(this, "databaseName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The name of the endpoint database.
*
* For a MySQL source or target endpoint, don't specify DatabaseName
. To migrate to a specific database, use this setting and targetDbType
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setDatabaseName(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "databaseName", value);
}
/**
* Settings in JSON format for the source and target DocumentDB endpoint.
*
* For more information about other available settings, see Using extra connections attributes with Amazon DocumentDB as a source and Using Amazon DocumentDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getDocDbSettings() {
return software.amazon.jsii.Kernel.get(this, "docDbSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source and target DocumentDB endpoint.
*
* For more information about other available settings, see Using extra connections attributes with Amazon DocumentDB as a source and Using Amazon DocumentDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setDocDbSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.DocDbSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "docDbSettings", value);
}
/**
* Settings in JSON format for the source and target DocumentDB endpoint.
*
* For more information about other available settings, see Using extra connections attributes with Amazon DocumentDB as a source and Using Amazon DocumentDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setDocDbSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "docDbSettings", value);
}
/**
* Settings in JSON format for the target Amazon DynamoDB endpoint.
*
* For information about other available settings, see Using object mapping to migrate data to DynamoDB in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getDynamoDbSettings() {
return software.amazon.jsii.Kernel.get(this, "dynamoDbSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the target Amazon DynamoDB endpoint.
*
* For information about other available settings, see Using object mapping to migrate data to DynamoDB in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setDynamoDbSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "dynamoDbSettings", value);
}
/**
* Settings in JSON format for the target Amazon DynamoDB endpoint.
*
* For information about other available settings, see Using object mapping to migrate data to DynamoDB in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setDynamoDbSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.DynamoDbSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "dynamoDbSettings", value);
}
/**
* Settings in JSON format for the target OpenSearch endpoint.
*
* For more information about the available settings, see Extra connection attributes when using OpenSearch as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getElasticsearchSettings() {
return software.amazon.jsii.Kernel.get(this, "elasticsearchSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the target OpenSearch endpoint.
*
* For more information about the available settings, see Extra connection attributes when using OpenSearch as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setElasticsearchSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "elasticsearchSettings", value);
}
/**
* Settings in JSON format for the target OpenSearch endpoint.
*
* For more information about the available settings, see Extra connection attributes when using OpenSearch as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setElasticsearchSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.ElasticsearchSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "elasticsearchSettings", value);
}
/**
* The database endpoint identifier.
*
* Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen, or contain two consecutive hyphens.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getEndpointIdentifier() {
return software.amazon.jsii.Kernel.get(this, "endpointIdentifier", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The database endpoint identifier.
*
* Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen, or contain two consecutive hyphens.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setEndpointIdentifier(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "endpointIdentifier", value);
}
/**
* Additional attributes associated with the connection.
*
* Each attribute is specified as a name-value pair associated by an equal sign (=). Multiple attributes are separated by a semicolon (;) with no additional white space. For information on the attributes available for connecting your source or target endpoint, see Working with AWS DMS Endpoints in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getExtraConnectionAttributes() {
return software.amazon.jsii.Kernel.get(this, "extraConnectionAttributes", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Additional attributes associated with the connection.
*
* Each attribute is specified as a name-value pair associated by an equal sign (=). Multiple attributes are separated by a semicolon (;) with no additional white space. For information on the attributes available for connecting your source or target endpoint, see Working with AWS DMS Endpoints in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setExtraConnectionAttributes(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "extraConnectionAttributes", value);
}
/**
* Settings in JSON format for the source GCP MySQL endpoint.
*
* These settings are much the same as the settings for any MySQL-compatible endpoint. For more information, see Extra connection attributes when using MySQL as a source for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getGcpMySqlSettings() {
return software.amazon.jsii.Kernel.get(this, "gcpMySqlSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source GCP MySQL endpoint.
*
* These settings are much the same as the settings for any MySQL-compatible endpoint. For more information, see Extra connection attributes when using MySQL as a source for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setGcpMySqlSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "gcpMySqlSettings", value);
}
/**
* Settings in JSON format for the source GCP MySQL endpoint.
*
* These settings are much the same as the settings for any MySQL-compatible endpoint. For more information, see Extra connection attributes when using MySQL as a source for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setGcpMySqlSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.GcpMySQLSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "gcpMySqlSettings", value);
}
/**
* Settings in JSON format for the source IBM Db2 LUW endpoint.
*
* For information about other available settings, see Extra connection attributes when using Db2 LUW as a source for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getIbmDb2Settings() {
return software.amazon.jsii.Kernel.get(this, "ibmDb2Settings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source IBM Db2 LUW endpoint.
*
* For information about other available settings, see Extra connection attributes when using Db2 LUW as a source for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setIbmDb2Settings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "ibmDb2Settings", value);
}
/**
* Settings in JSON format for the source IBM Db2 LUW endpoint.
*
* For information about other available settings, see Extra connection attributes when using Db2 LUW as a source for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setIbmDb2Settings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.IbmDb2SettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "ibmDb2Settings", value);
}
/**
* Settings in JSON format for the target Apache Kafka endpoint.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kafka topic in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getKafkaSettings() {
return software.amazon.jsii.Kernel.get(this, "kafkaSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the target Apache Kafka endpoint.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kafka topic in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setKafkaSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "kafkaSettings", value);
}
/**
* Settings in JSON format for the target Apache Kafka endpoint.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kafka topic in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setKafkaSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.KafkaSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "kafkaSettings", value);
}
/**
* Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kinesis data stream in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getKinesisSettings() {
return software.amazon.jsii.Kernel.get(this, "kinesisSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kinesis data stream in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setKinesisSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "kinesisSettings", value);
}
/**
* Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kinesis data stream in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setKinesisSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.KinesisSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "kinesisSettings", value);
}
/**
* An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint.
*
* If you don't specify a value for the KmsKeyId
parameter, AWS DMS uses your default encryption key.
*
* AWS KMS creates the default encryption key for your AWS account . Your AWS account has a different default encryption key for each AWS Region .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getKmsKeyId() {
return software.amazon.jsii.Kernel.get(this, "kmsKeyId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint.
*
* If you don't specify a value for the KmsKeyId
parameter, AWS DMS uses your default encryption key.
*
* AWS KMS creates the default encryption key for your AWS account . Your AWS account has a different default encryption key for each AWS Region .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setKmsKeyId(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "kmsKeyId", value);
}
/**
* Settings in JSON format for the source and target Microsoft SQL Server endpoint.
*
* For information about other available settings, see Extra connection attributes when using SQL Server as a source for AWS DMS and Extra connection attributes when using SQL Server as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getMicrosoftSqlServerSettings() {
return software.amazon.jsii.Kernel.get(this, "microsoftSqlServerSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source and target Microsoft SQL Server endpoint.
*
* For information about other available settings, see Extra connection attributes when using SQL Server as a source for AWS DMS and Extra connection attributes when using SQL Server as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setMicrosoftSqlServerSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "microsoftSqlServerSettings", value);
}
/**
* Settings in JSON format for the source and target Microsoft SQL Server endpoint.
*
* For information about other available settings, see Extra connection attributes when using SQL Server as a source for AWS DMS and Extra connection attributes when using SQL Server as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setMicrosoftSqlServerSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.MicrosoftSqlServerSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "microsoftSqlServerSettings", value);
}
/**
* Settings in JSON format for the source MongoDB endpoint.
*
* For more information about the available settings, see Using MongoDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getMongoDbSettings() {
return software.amazon.jsii.Kernel.get(this, "mongoDbSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source MongoDB endpoint.
*
* For more information about the available settings, see Using MongoDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setMongoDbSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "mongoDbSettings", value);
}
/**
* Settings in JSON format for the source MongoDB endpoint.
*
* For more information about the available settings, see Using MongoDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setMongoDbSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.MongoDbSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "mongoDbSettings", value);
}
/**
* Settings in JSON format for the source and target MySQL endpoint.
*
* For information about other available settings, see Extra connection attributes when using MySQL as a source for AWS DMS and Extra connection attributes when using a MySQL-compatible database as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getMySqlSettings() {
return software.amazon.jsii.Kernel.get(this, "mySqlSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source and target MySQL endpoint.
*
* For information about other available settings, see Extra connection attributes when using MySQL as a source for AWS DMS and Extra connection attributes when using a MySQL-compatible database as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setMySqlSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "mySqlSettings", value);
}
/**
* Settings in JSON format for the source and target MySQL endpoint.
*
* For information about other available settings, see Extra connection attributes when using MySQL as a source for AWS DMS and Extra connection attributes when using a MySQL-compatible database as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setMySqlSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.MySqlSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "mySqlSettings", value);
}
/**
* Settings in JSON format for the target Amazon Neptune endpoint.
*
* For more information about the available settings, see Specifying endpoint settings for Amazon Neptune as a target in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getNeptuneSettings() {
return software.amazon.jsii.Kernel.get(this, "neptuneSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the target Amazon Neptune endpoint.
*
* For more information about the available settings, see Specifying endpoint settings for Amazon Neptune as a target in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setNeptuneSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "neptuneSettings", value);
}
/**
* Settings in JSON format for the target Amazon Neptune endpoint.
*
* For more information about the available settings, see Specifying endpoint settings for Amazon Neptune as a target in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setNeptuneSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.NeptuneSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "neptuneSettings", value);
}
/**
* Settings in JSON format for the source and target Oracle endpoint.
*
* For information about other available settings, see Extra connection attributes when using Oracle as a source for AWS DMS and Extra connection attributes when using Oracle as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getOracleSettings() {
return software.amazon.jsii.Kernel.get(this, "oracleSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source and target Oracle endpoint.
*
* For information about other available settings, see Extra connection attributes when using Oracle as a source for AWS DMS and Extra connection attributes when using Oracle as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setOracleSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "oracleSettings", value);
}
/**
* Settings in JSON format for the source and target Oracle endpoint.
*
* For information about other available settings, see Extra connection attributes when using Oracle as a source for AWS DMS and Extra connection attributes when using Oracle as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setOracleSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.OracleSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "oracleSettings", value);
}
/**
* The password to be used to log in to the endpoint database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getPassword() {
return software.amazon.jsii.Kernel.get(this, "password", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The password to be used to log in to the endpoint database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setPassword(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "password", value);
}
/**
* The port used by the endpoint database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Number getPort() {
return software.amazon.jsii.Kernel.get(this, "port", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
}
/**
* The port used by the endpoint database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setPort(final @org.jetbrains.annotations.Nullable java.lang.Number value) {
software.amazon.jsii.Kernel.set(this, "port", value);
}
/**
* Settings in JSON format for the source and target PostgreSQL endpoint.
*
* 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 .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getPostgreSqlSettings() {
return software.amazon.jsii.Kernel.get(this, "postgreSqlSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source and target PostgreSQL endpoint.
*
* 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 .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setPostgreSqlSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "postgreSqlSettings", value);
}
/**
* Settings in JSON format for the source and target PostgreSQL endpoint.
*
* 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 .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setPostgreSqlSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.PostgreSqlSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "postgreSqlSettings", value);
}
/**
* Settings in JSON format for the target Redis endpoint.
*
* For information about other available settings, see Specifying endpoint settings for Redis as a target in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getRedisSettings() {
return software.amazon.jsii.Kernel.get(this, "redisSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the target Redis endpoint.
*
* For information about other available settings, see Specifying endpoint settings for Redis as a target in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setRedisSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "redisSettings", value);
}
/**
* Settings in JSON format for the target Redis endpoint.
*
* For information about other available settings, see Specifying endpoint settings for Redis as a target in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setRedisSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.RedisSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "redisSettings", value);
}
/**
* Settings in JSON format for the Amazon Redshift endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon Redshift as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getRedshiftSettings() {
return software.amazon.jsii.Kernel.get(this, "redshiftSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the Amazon Redshift endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon Redshift as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setRedshiftSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "redshiftSettings", value);
}
/**
* Settings in JSON format for the Amazon Redshift endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon Redshift as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setRedshiftSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.RedshiftSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "redshiftSettings", value);
}
/**
* A display name for the resource identifier at the end of the EndpointArn
response parameter that is returned in the created Endpoint
object.
*
* The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as Example-App-ARN1
.
*
* For example, this value might result in the EndpointArn
value arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1
. If you don't specify a ResourceIdentifier
value, AWS DMS generates a default identifier value for the end of EndpointArn
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getResourceIdentifier() {
return software.amazon.jsii.Kernel.get(this, "resourceIdentifier", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* A display name for the resource identifier at the end of the EndpointArn
response parameter that is returned in the created Endpoint
object.
*
* The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as Example-App-ARN1
.
*
* For example, this value might result in the EndpointArn
value arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1
. If you don't specify a ResourceIdentifier
value, AWS DMS generates a default identifier value for the end of EndpointArn
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setResourceIdentifier(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "resourceIdentifier", value);
}
/**
* Settings in JSON format for the source and target Amazon S3 endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon S3 as a source for AWS DMS and Extra connection attributes when using Amazon S3 as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getS3Settings() {
return software.amazon.jsii.Kernel.get(this, "s3Settings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source and target Amazon S3 endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon S3 as a source for AWS DMS and Extra connection attributes when using Amazon S3 as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setS3Settings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "s3Settings", value);
}
/**
* Settings in JSON format for the source and target Amazon S3 endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon S3 as a source for AWS DMS and Extra connection attributes when using Amazon S3 as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setS3Settings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.S3SettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "s3Settings", value);
}
/**
* The name of the server where the endpoint database resides.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getServerName() {
return software.amazon.jsii.Kernel.get(this, "serverName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The name of the server where the endpoint database resides.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setServerName(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "serverName", value);
}
/**
* The Secure Sockets Layer (SSL) mode to use for the SSL connection. The default is none
.
*
*
*
* When engine_name
is set to S3, the only allowed value is none
.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getSslMode() {
return software.amazon.jsii.Kernel.get(this, "sslMode", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The Secure Sockets Layer (SSL) mode to use for the SSL connection. The default is none
.
*
*
*
* When engine_name
is set to S3, the only allowed value is none
.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setSslMode(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "sslMode", value);
}
/**
* Settings in JSON format for the source and target SAP ASE endpoint.
*
* For information about other available settings, see Extra connection attributes when using SAP ASE as a source for AWS DMS and Extra connection attributes when using SAP ASE as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.Object getSybaseSettings() {
return software.amazon.jsii.Kernel.get(this, "sybaseSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Settings in JSON format for the source and target SAP ASE endpoint.
*
* For information about other available settings, see Extra connection attributes when using SAP ASE as a source for AWS DMS and Extra connection attributes when using SAP ASE as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setSybaseSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.core.IResolvable value) {
software.amazon.jsii.Kernel.set(this, "sybaseSettings", value);
}
/**
* Settings in JSON format for the source and target SAP ASE endpoint.
*
* For information about other available settings, see Extra connection attributes when using SAP ASE as a source for AWS DMS and Extra connection attributes when using SAP ASE as a target for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setSybaseSettings(final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.dms.CfnEndpoint.SybaseSettingsProperty value) {
software.amazon.jsii.Kernel.set(this, "sybaseSettings", value);
}
/**
* The user name to be used to log in to the endpoint database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public @org.jetbrains.annotations.Nullable java.lang.String getUsername() {
return software.amazon.jsii.Kernel.get(this, "username", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* The user name to be used to log in to the endpoint database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public void setUsername(final @org.jetbrains.annotations.Nullable java.lang.String value) {
software.amazon.jsii.Kernel.set(this, "username", value);
}
/**
* Provides information that defines a DocumentDB endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about other available settings, see Using extra connections attributes with Amazon DocumentDB as a source and Using Amazon DocumentDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* DocDbSettingsProperty docDbSettingsProperty = DocDbSettingsProperty.builder()
* .docsToInvestigate(123)
* .extractDocId(false)
* .nestingLevel("nestingLevel")
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.DocDbSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(DocDbSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface DocDbSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* Indicates the number of documents to preview to determine the document organization.
*
* Use this setting when NestingLevel
is set to "one"
.
*
* Must be a positive value greater than 0
. Default value is 1000
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getDocsToInvestigate() {
return null;
}
/**
* Specifies the document ID. Use this setting when NestingLevel
is set to "none"
.
*
* Default value is "false"
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getExtractDocId() {
return null;
}
/**
* Specifies either document or table mode.
*
* Default value is "none"
. Specify "none"
to use document mode. Specify "one"
to use table mode.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getNestingLevel() {
return null;
}
/**
* 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 DocumentDB 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the DocumentDB endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* @return a {@link Builder} of {@link DocDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link DocDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Number docsToInvestigate;
java.lang.Object extractDocId;
java.lang.String nestingLevel;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
/**
* Sets the value of {@link DocDbSettingsProperty#getDocsToInvestigate}
* @param docsToInvestigate Indicates the number of documents to preview to determine the document organization.
* Use this setting when NestingLevel
is set to "one"
.
*
* Must be a positive value greater than 0
. Default value is 1000
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder docsToInvestigate(java.lang.Number docsToInvestigate) {
this.docsToInvestigate = docsToInvestigate;
return this;
}
/**
* Sets the value of {@link DocDbSettingsProperty#getExtractDocId}
* @param extractDocId Specifies the document ID. Use this setting when NestingLevel
is set to "none"
.
* Default value is "false"
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder extractDocId(java.lang.Boolean extractDocId) {
this.extractDocId = extractDocId;
return this;
}
/**
* Sets the value of {@link DocDbSettingsProperty#getExtractDocId}
* @param extractDocId Specifies the document ID. Use this setting when NestingLevel
is set to "none"
.
* Default value is "false"
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder extractDocId(software.amazon.awscdk.core.IResolvable extractDocId) {
this.extractDocId = extractDocId;
return this;
}
/**
* Sets the value of {@link DocDbSettingsProperty#getNestingLevel}
* @param nestingLevel Specifies either document or table mode.
* Default value is "none"
. Specify "none"
to use document mode. Specify "one"
to use table mode.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder nestingLevel(java.lang.String nestingLevel) {
this.nestingLevel = nestingLevel;
return this;
}
/**
* Sets the value of {@link DocDbSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 DocumentDB 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link DocDbSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the DocumentDB endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link DocDbSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public DocDbSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link DocDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements DocDbSettingsProperty {
private final java.lang.Number docsToInvestigate;
private final java.lang.Object extractDocId;
private final java.lang.String nestingLevel;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.docsToInvestigate = software.amazon.jsii.Kernel.get(this, "docsToInvestigate", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.extractDocId = software.amazon.jsii.Kernel.get(this, "extractDocId", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.nestingLevel = software.amazon.jsii.Kernel.get(this, "nestingLevel", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.docsToInvestigate = builder.docsToInvestigate;
this.extractDocId = builder.extractDocId;
this.nestingLevel = builder.nestingLevel;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
}
@Override
public final java.lang.Number getDocsToInvestigate() {
return this.docsToInvestigate;
}
@Override
public final java.lang.Object getExtractDocId() {
return this.extractDocId;
}
@Override
public final java.lang.String getNestingLevel() {
return this.nestingLevel;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getDocsToInvestigate() != null) {
data.set("docsToInvestigate", om.valueToTree(this.getDocsToInvestigate()));
}
if (this.getExtractDocId() != null) {
data.set("extractDocId", om.valueToTree(this.getExtractDocId()));
}
if (this.getNestingLevel() != null) {
data.set("nestingLevel", om.valueToTree(this.getNestingLevel()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.DocDbSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DocDbSettingsProperty.Jsii$Proxy that = (DocDbSettingsProperty.Jsii$Proxy) o;
if (this.docsToInvestigate != null ? !this.docsToInvestigate.equals(that.docsToInvestigate) : that.docsToInvestigate != null) return false;
if (this.extractDocId != null ? !this.extractDocId.equals(that.extractDocId) : that.extractDocId != null) return false;
if (this.nestingLevel != null ? !this.nestingLevel.equals(that.nestingLevel) : that.nestingLevel != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
return this.secretsManagerSecretId != null ? this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId == null;
}
@Override
public final int hashCode() {
int result = this.docsToInvestigate != null ? this.docsToInvestigate.hashCode() : 0;
result = 31 * result + (this.extractDocId != null ? this.extractDocId.hashCode() : 0);
result = 31 * result + (this.nestingLevel != null ? this.nestingLevel.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
return result;
}
}
}
/**
* Provides information, including the Amazon Resource Name (ARN) of the IAM role used to define an Amazon DynamoDB target endpoint.
*
* This information also 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 Using object mapping to migrate data to DynamoDB in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* DynamoDbSettingsProperty dynamoDbSettingsProperty = DynamoDbSettingsProperty.builder()
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.DynamoDbSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(DynamoDbSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface DynamoDbSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* The Amazon Resource Name (ARN) used by the service to access the IAM role.
*
* The role must allow the iam:PassRole
action.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServiceAccessRoleArn() {
return null;
}
/**
* @return a {@link Builder} of {@link DynamoDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link DynamoDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String serviceAccessRoleArn;
/**
* Sets the value of {@link DynamoDbSettingsProperty#getServiceAccessRoleArn}
* @param serviceAccessRoleArn The Amazon Resource Name (ARN) used by the service to access the IAM role.
* The role must allow the iam:PassRole
action.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serviceAccessRoleArn(java.lang.String serviceAccessRoleArn) {
this.serviceAccessRoleArn = serviceAccessRoleArn;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link DynamoDbSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public DynamoDbSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link DynamoDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements DynamoDbSettingsProperty {
private final java.lang.String serviceAccessRoleArn;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.serviceAccessRoleArn = software.amazon.jsii.Kernel.get(this, "serviceAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.serviceAccessRoleArn = builder.serviceAccessRoleArn;
}
@Override
public final java.lang.String getServiceAccessRoleArn() {
return this.serviceAccessRoleArn;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getServiceAccessRoleArn() != null) {
data.set("serviceAccessRoleArn", om.valueToTree(this.getServiceAccessRoleArn()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.DynamoDbSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DynamoDbSettingsProperty.Jsii$Proxy that = (DynamoDbSettingsProperty.Jsii$Proxy) o;
return this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.equals(that.serviceAccessRoleArn) : that.serviceAccessRoleArn == null;
}
@Override
public final int hashCode() {
int result = this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.hashCode() : 0;
return result;
}
}
}
/**
* Provides information that defines an OpenSearch endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about the available settings, see Extra connection attributes when using OpenSearch as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* ElasticsearchSettingsProperty elasticsearchSettingsProperty = ElasticsearchSettingsProperty.builder()
* .endpointUri("endpointUri")
* .errorRetryDuration(123)
* .fullLoadErrorPercentage(123)
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.ElasticsearchSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(ElasticsearchSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface ElasticsearchSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* The endpoint for the OpenSearch cluster.
*
* AWS DMS uses HTTPS if a transport protocol (either HTTP or HTTPS) isn't specified.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getEndpointUri() {
return null;
}
/**
* The maximum number of seconds for which DMS retries failed API requests to the OpenSearch cluster.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getErrorRetryDuration() {
return null;
}
/**
* The maximum percentage of records that can fail to be written before a full load operation stops.
*
* To avoid early failure, this counter is only effective after 1,000 records are transferred. OpenSearch also has the concept of error monitoring during the last 10 minutes of an Observation Window. If transfer of all records fail in the last 10 minutes, the full load operation stops.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getFullLoadErrorPercentage() {
return null;
}
/**
* The Amazon Resource Name (ARN) used by the service to access the IAM role.
*
* The role must allow the iam:PassRole
action.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServiceAccessRoleArn() {
return null;
}
/**
* @return a {@link Builder} of {@link ElasticsearchSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link ElasticsearchSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String endpointUri;
java.lang.Number errorRetryDuration;
java.lang.Number fullLoadErrorPercentage;
java.lang.String serviceAccessRoleArn;
/**
* Sets the value of {@link ElasticsearchSettingsProperty#getEndpointUri}
* @param endpointUri The endpoint for the OpenSearch cluster.
* AWS DMS uses HTTPS if a transport protocol (either HTTP or HTTPS) isn't specified.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder endpointUri(java.lang.String endpointUri) {
this.endpointUri = endpointUri;
return this;
}
/**
* Sets the value of {@link ElasticsearchSettingsProperty#getErrorRetryDuration}
* @param errorRetryDuration The maximum number of seconds for which DMS retries failed API requests to the OpenSearch cluster.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder errorRetryDuration(java.lang.Number errorRetryDuration) {
this.errorRetryDuration = errorRetryDuration;
return this;
}
/**
* Sets the value of {@link ElasticsearchSettingsProperty#getFullLoadErrorPercentage}
* @param fullLoadErrorPercentage The maximum percentage of records that can fail to be written before a full load operation stops.
* To avoid early failure, this counter is only effective after 1,000 records are transferred. OpenSearch also has the concept of error monitoring during the last 10 minutes of an Observation Window. If transfer of all records fail in the last 10 minutes, the full load operation stops.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder fullLoadErrorPercentage(java.lang.Number fullLoadErrorPercentage) {
this.fullLoadErrorPercentage = fullLoadErrorPercentage;
return this;
}
/**
* Sets the value of {@link ElasticsearchSettingsProperty#getServiceAccessRoleArn}
* @param serviceAccessRoleArn The Amazon Resource Name (ARN) used by the service to access the IAM role.
* The role must allow the iam:PassRole
action.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serviceAccessRoleArn(java.lang.String serviceAccessRoleArn) {
this.serviceAccessRoleArn = serviceAccessRoleArn;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link ElasticsearchSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public ElasticsearchSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link ElasticsearchSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements ElasticsearchSettingsProperty {
private final java.lang.String endpointUri;
private final java.lang.Number errorRetryDuration;
private final java.lang.Number fullLoadErrorPercentage;
private final java.lang.String serviceAccessRoleArn;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.endpointUri = software.amazon.jsii.Kernel.get(this, "endpointUri", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.errorRetryDuration = software.amazon.jsii.Kernel.get(this, "errorRetryDuration", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.fullLoadErrorPercentage = software.amazon.jsii.Kernel.get(this, "fullLoadErrorPercentage", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.serviceAccessRoleArn = software.amazon.jsii.Kernel.get(this, "serviceAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.endpointUri = builder.endpointUri;
this.errorRetryDuration = builder.errorRetryDuration;
this.fullLoadErrorPercentage = builder.fullLoadErrorPercentage;
this.serviceAccessRoleArn = builder.serviceAccessRoleArn;
}
@Override
public final java.lang.String getEndpointUri() {
return this.endpointUri;
}
@Override
public final java.lang.Number getErrorRetryDuration() {
return this.errorRetryDuration;
}
@Override
public final java.lang.Number getFullLoadErrorPercentage() {
return this.fullLoadErrorPercentage;
}
@Override
public final java.lang.String getServiceAccessRoleArn() {
return this.serviceAccessRoleArn;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getEndpointUri() != null) {
data.set("endpointUri", om.valueToTree(this.getEndpointUri()));
}
if (this.getErrorRetryDuration() != null) {
data.set("errorRetryDuration", om.valueToTree(this.getErrorRetryDuration()));
}
if (this.getFullLoadErrorPercentage() != null) {
data.set("fullLoadErrorPercentage", om.valueToTree(this.getFullLoadErrorPercentage()));
}
if (this.getServiceAccessRoleArn() != null) {
data.set("serviceAccessRoleArn", om.valueToTree(this.getServiceAccessRoleArn()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.ElasticsearchSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ElasticsearchSettingsProperty.Jsii$Proxy that = (ElasticsearchSettingsProperty.Jsii$Proxy) o;
if (this.endpointUri != null ? !this.endpointUri.equals(that.endpointUri) : that.endpointUri != null) return false;
if (this.errorRetryDuration != null ? !this.errorRetryDuration.equals(that.errorRetryDuration) : that.errorRetryDuration != null) return false;
if (this.fullLoadErrorPercentage != null ? !this.fullLoadErrorPercentage.equals(that.fullLoadErrorPercentage) : that.fullLoadErrorPercentage != null) return false;
return this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.equals(that.serviceAccessRoleArn) : that.serviceAccessRoleArn == null;
}
@Override
public final int hashCode() {
int result = this.endpointUri != null ? this.endpointUri.hashCode() : 0;
result = 31 * result + (this.errorRetryDuration != null ? this.errorRetryDuration.hashCode() : 0);
result = 31 * result + (this.fullLoadErrorPercentage != null ? this.fullLoadErrorPercentage.hashCode() : 0);
result = 31 * result + (this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines a GCP MySQL endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. These settings are much the same as the settings for any MySQL-compatible endpoint. For more information, see Extra connection attributes when using MySQL as a source for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* GcpMySQLSettingsProperty gcpMySQLSettingsProperty = GcpMySQLSettingsProperty.builder()
* .afterConnectScript("afterConnectScript")
* .cleanSourceMetadataOnMismatch(false)
* .databaseName("databaseName")
* .eventsPollInterval(123)
* .maxFileSize(123)
* .parallelLoadThreads(123)
* .password("password")
* .port(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .serverName("serverName")
* .serverTimezone("serverTimezone")
* .username("username")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.GcpMySQLSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(GcpMySQLSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface GcpMySQLSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* Specifies a script to run immediately after AWS DMS connects to the endpoint.
*
* The migration task continues running regardless if the SQL statement succeeds or fails.
*
* For this parameter, provide the code of the script itself, not the name of a file containing the script.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAfterConnectScript() {
return null;
}
/**
* Adjusts the behavior of AWS DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster.
*
* If you need AWS DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getCleanSourceMetadataOnMismatch() {
return null;
}
/**
* Database name for the endpoint.
*
* For a MySQL source or target endpoint, don't explicitly specify the database using the DatabaseName
request parameter on either the CreateEndpoint
or ModifyEndpoint
API call. Specifying DatabaseName
when you create or modify a MySQL endpoint replicates all the task tables to this single database. For MySQL endpoints, you specify the database only when you specify the schema in the table-mapping rules of the AWS DMS task.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDatabaseName() {
return null;
}
/**
* Specifies how often to check the binary log for new changes/events when the database is idle.
*
* The default is five seconds.
*
* Example: eventsPollInterval=5;
*
* In the example, AWS DMS checks for changes in the binary logs every five seconds.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getEventsPollInterval() {
return null;
}
/**
* Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database.
*
* Example: maxFileSize=512
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMaxFileSize() {
return null;
}
/**
* Improves performance when loading data into the MySQL-compatible target database.
*
* Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. The default is one.
*
* Example: parallelLoadThreads=1
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getParallelLoadThreads() {
return null;
}
/**
* Endpoint connection password.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getPassword() {
return null;
}
/**
* The port used by the endpoint database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getPort() {
return null;
}
/**
* 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 MySQL 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
required to access it, see Using secrets to access AWS Database Migration Service resources in the AWS Database Migration Service User Guide .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the MySQL endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* Endpoint TCP port.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServerName() {
return null;
}
/**
* Specifies the time zone for the source MySQL database. Don't enclose time zones in single quotation marks.
*
* Example: serverTimezone=US/Pacific;
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServerTimezone() {
return null;
}
/**
* Endpoint connection user name.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getUsername() {
return null;
}
/**
* @return a {@link Builder} of {@link GcpMySQLSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link GcpMySQLSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String afterConnectScript;
java.lang.Object cleanSourceMetadataOnMismatch;
java.lang.String databaseName;
java.lang.Number eventsPollInterval;
java.lang.Number maxFileSize;
java.lang.Number parallelLoadThreads;
java.lang.String password;
java.lang.Number port;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
java.lang.String serverName;
java.lang.String serverTimezone;
java.lang.String username;
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getAfterConnectScript}
* @param afterConnectScript Specifies a script to run immediately after AWS DMS connects to the endpoint.
* The migration task continues running regardless if the SQL statement succeeds or fails.
*
* For this parameter, provide the code of the script itself, not the name of a file containing the script.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder afterConnectScript(java.lang.String afterConnectScript) {
this.afterConnectScript = afterConnectScript;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getCleanSourceMetadataOnMismatch}
* @param cleanSourceMetadataOnMismatch Adjusts the behavior of AWS DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster.
* If you need AWS DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cleanSourceMetadataOnMismatch(java.lang.Boolean cleanSourceMetadataOnMismatch) {
this.cleanSourceMetadataOnMismatch = cleanSourceMetadataOnMismatch;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getCleanSourceMetadataOnMismatch}
* @param cleanSourceMetadataOnMismatch Adjusts the behavior of AWS DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster.
* If you need AWS DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cleanSourceMetadataOnMismatch(software.amazon.awscdk.core.IResolvable cleanSourceMetadataOnMismatch) {
this.cleanSourceMetadataOnMismatch = cleanSourceMetadataOnMismatch;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getDatabaseName}
* @param databaseName Database name for the endpoint.
* For a MySQL source or target endpoint, don't explicitly specify the database using the DatabaseName
request parameter on either the CreateEndpoint
or ModifyEndpoint
API call. Specifying DatabaseName
when you create or modify a MySQL endpoint replicates all the task tables to this single database. For MySQL endpoints, you specify the database only when you specify the schema in the table-mapping rules of the AWS DMS task.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder databaseName(java.lang.String databaseName) {
this.databaseName = databaseName;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getEventsPollInterval}
* @param eventsPollInterval Specifies how often to check the binary log for new changes/events when the database is idle.
* The default is five seconds.
*
* Example: eventsPollInterval=5;
*
* In the example, AWS DMS checks for changes in the binary logs every five seconds.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder eventsPollInterval(java.lang.Number eventsPollInterval) {
this.eventsPollInterval = eventsPollInterval;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getMaxFileSize}
* @param maxFileSize Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database.
* Example: maxFileSize=512
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxFileSize(java.lang.Number maxFileSize) {
this.maxFileSize = maxFileSize;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getParallelLoadThreads}
* @param parallelLoadThreads Improves performance when loading data into the MySQL-compatible target database.
* Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. The default is one.
*
* Example: parallelLoadThreads=1
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder parallelLoadThreads(java.lang.Number parallelLoadThreads) {
this.parallelLoadThreads = parallelLoadThreads;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getPassword}
* @param password Endpoint connection password.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder password(java.lang.String password) {
this.password = password;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getPort}
* @param port The port used by the endpoint database.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder port(java.lang.Number port) {
this.port = port;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 MySQL 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
required to access it, see Using secrets to access AWS Database Migration Service resources in the AWS Database Migration Service User Guide .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the MySQL endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getServerName}
* @param serverName Endpoint TCP port.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serverName(java.lang.String serverName) {
this.serverName = serverName;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getServerTimezone}
* @param serverTimezone Specifies the time zone for the source MySQL database. Don't enclose time zones in single quotation marks.
* Example: serverTimezone=US/Pacific;
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serverTimezone(java.lang.String serverTimezone) {
this.serverTimezone = serverTimezone;
return this;
}
/**
* Sets the value of {@link GcpMySQLSettingsProperty#getUsername}
* @param username Endpoint connection user name.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder username(java.lang.String username) {
this.username = username;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link GcpMySQLSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public GcpMySQLSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link GcpMySQLSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements GcpMySQLSettingsProperty {
private final java.lang.String afterConnectScript;
private final java.lang.Object cleanSourceMetadataOnMismatch;
private final java.lang.String databaseName;
private final java.lang.Number eventsPollInterval;
private final java.lang.Number maxFileSize;
private final java.lang.Number parallelLoadThreads;
private final java.lang.String password;
private final java.lang.Number port;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
private final java.lang.String serverName;
private final java.lang.String serverTimezone;
private final java.lang.String username;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.afterConnectScript = software.amazon.jsii.Kernel.get(this, "afterConnectScript", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.cleanSourceMetadataOnMismatch = software.amazon.jsii.Kernel.get(this, "cleanSourceMetadataOnMismatch", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.databaseName = software.amazon.jsii.Kernel.get(this, "databaseName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.eventsPollInterval = software.amazon.jsii.Kernel.get(this, "eventsPollInterval", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.maxFileSize = software.amazon.jsii.Kernel.get(this, "maxFileSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.parallelLoadThreads = software.amazon.jsii.Kernel.get(this, "parallelLoadThreads", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.password = software.amazon.jsii.Kernel.get(this, "password", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.port = software.amazon.jsii.Kernel.get(this, "port", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serverName = software.amazon.jsii.Kernel.get(this, "serverName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serverTimezone = software.amazon.jsii.Kernel.get(this, "serverTimezone", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.username = software.amazon.jsii.Kernel.get(this, "username", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.afterConnectScript = builder.afterConnectScript;
this.cleanSourceMetadataOnMismatch = builder.cleanSourceMetadataOnMismatch;
this.databaseName = builder.databaseName;
this.eventsPollInterval = builder.eventsPollInterval;
this.maxFileSize = builder.maxFileSize;
this.parallelLoadThreads = builder.parallelLoadThreads;
this.password = builder.password;
this.port = builder.port;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
this.serverName = builder.serverName;
this.serverTimezone = builder.serverTimezone;
this.username = builder.username;
}
@Override
public final java.lang.String getAfterConnectScript() {
return this.afterConnectScript;
}
@Override
public final java.lang.Object getCleanSourceMetadataOnMismatch() {
return this.cleanSourceMetadataOnMismatch;
}
@Override
public final java.lang.String getDatabaseName() {
return this.databaseName;
}
@Override
public final java.lang.Number getEventsPollInterval() {
return this.eventsPollInterval;
}
@Override
public final java.lang.Number getMaxFileSize() {
return this.maxFileSize;
}
@Override
public final java.lang.Number getParallelLoadThreads() {
return this.parallelLoadThreads;
}
@Override
public final java.lang.String getPassword() {
return this.password;
}
@Override
public final java.lang.Number getPort() {
return this.port;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
public final java.lang.String getServerName() {
return this.serverName;
}
@Override
public final java.lang.String getServerTimezone() {
return this.serverTimezone;
}
@Override
public final java.lang.String getUsername() {
return this.username;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAfterConnectScript() != null) {
data.set("afterConnectScript", om.valueToTree(this.getAfterConnectScript()));
}
if (this.getCleanSourceMetadataOnMismatch() != null) {
data.set("cleanSourceMetadataOnMismatch", om.valueToTree(this.getCleanSourceMetadataOnMismatch()));
}
if (this.getDatabaseName() != null) {
data.set("databaseName", om.valueToTree(this.getDatabaseName()));
}
if (this.getEventsPollInterval() != null) {
data.set("eventsPollInterval", om.valueToTree(this.getEventsPollInterval()));
}
if (this.getMaxFileSize() != null) {
data.set("maxFileSize", om.valueToTree(this.getMaxFileSize()));
}
if (this.getParallelLoadThreads() != null) {
data.set("parallelLoadThreads", om.valueToTree(this.getParallelLoadThreads()));
}
if (this.getPassword() != null) {
data.set("password", om.valueToTree(this.getPassword()));
}
if (this.getPort() != null) {
data.set("port", om.valueToTree(this.getPort()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
if (this.getServerName() != null) {
data.set("serverName", om.valueToTree(this.getServerName()));
}
if (this.getServerTimezone() != null) {
data.set("serverTimezone", om.valueToTree(this.getServerTimezone()));
}
if (this.getUsername() != null) {
data.set("username", om.valueToTree(this.getUsername()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.GcpMySQLSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GcpMySQLSettingsProperty.Jsii$Proxy that = (GcpMySQLSettingsProperty.Jsii$Proxy) o;
if (this.afterConnectScript != null ? !this.afterConnectScript.equals(that.afterConnectScript) : that.afterConnectScript != null) return false;
if (this.cleanSourceMetadataOnMismatch != null ? !this.cleanSourceMetadataOnMismatch.equals(that.cleanSourceMetadataOnMismatch) : that.cleanSourceMetadataOnMismatch != null) return false;
if (this.databaseName != null ? !this.databaseName.equals(that.databaseName) : that.databaseName != null) return false;
if (this.eventsPollInterval != null ? !this.eventsPollInterval.equals(that.eventsPollInterval) : that.eventsPollInterval != null) return false;
if (this.maxFileSize != null ? !this.maxFileSize.equals(that.maxFileSize) : that.maxFileSize != null) return false;
if (this.parallelLoadThreads != null ? !this.parallelLoadThreads.equals(that.parallelLoadThreads) : that.parallelLoadThreads != null) return false;
if (this.password != null ? !this.password.equals(that.password) : that.password != null) return false;
if (this.port != null ? !this.port.equals(that.port) : that.port != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
if (this.secretsManagerSecretId != null ? !this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId != null) return false;
if (this.serverName != null ? !this.serverName.equals(that.serverName) : that.serverName != null) return false;
if (this.serverTimezone != null ? !this.serverTimezone.equals(that.serverTimezone) : that.serverTimezone != null) return false;
return this.username != null ? this.username.equals(that.username) : that.username == null;
}
@Override
public final int hashCode() {
int result = this.afterConnectScript != null ? this.afterConnectScript.hashCode() : 0;
result = 31 * result + (this.cleanSourceMetadataOnMismatch != null ? this.cleanSourceMetadataOnMismatch.hashCode() : 0);
result = 31 * result + (this.databaseName != null ? this.databaseName.hashCode() : 0);
result = 31 * result + (this.eventsPollInterval != null ? this.eventsPollInterval.hashCode() : 0);
result = 31 * result + (this.maxFileSize != null ? this.maxFileSize.hashCode() : 0);
result = 31 * result + (this.parallelLoadThreads != null ? this.parallelLoadThreads.hashCode() : 0);
result = 31 * result + (this.password != null ? this.password.hashCode() : 0);
result = 31 * result + (this.port != null ? this.port.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
result = 31 * result + (this.serverName != null ? this.serverName.hashCode() : 0);
result = 31 * result + (this.serverTimezone != null ? this.serverTimezone.hashCode() : 0);
result = 31 * result + (this.username != null ? this.username.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines an IBMDB2 endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about other available settings, see Extra connection attributes when using Db2 LUW as a source for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* IbmDb2SettingsProperty ibmDb2SettingsProperty = IbmDb2SettingsProperty.builder()
* .currentLsn("currentLsn")
* .maxKBytesPerRead(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .setDataCaptureChanges(false)
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.IbmDb2SettingsProperty")
@software.amazon.jsii.Jsii.Proxy(IbmDb2SettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface IbmDb2SettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* For ongoing replication (CDC), use CurrentLSN to specify a log sequence number (LSN) where you want the replication to start.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCurrentLsn() {
return null;
}
/**
* Maximum number of bytes per read, as a NUMBER value.
*
* The default is 64 KB.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMaxKBytesPerRead() {
return null;
}
/**
* 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 ofthe AWS Secrets Manager secret that allows access to the Db2 LUW 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the IBMDB2 endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* Enables ongoing replication (CDC) as a BOOLEAN value.
*
* The default is true.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getSetDataCaptureChanges() {
return null;
}
/**
* @return a {@link Builder} of {@link IbmDb2SettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link IbmDb2SettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String currentLsn;
java.lang.Number maxKBytesPerRead;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
java.lang.Object setDataCaptureChanges;
/**
* Sets the value of {@link IbmDb2SettingsProperty#getCurrentLsn}
* @param currentLsn For ongoing replication (CDC), use CurrentLSN to specify a log sequence number (LSN) where you want the replication to start.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder currentLsn(java.lang.String currentLsn) {
this.currentLsn = currentLsn;
return this;
}
/**
* Sets the value of {@link IbmDb2SettingsProperty#getMaxKBytesPerRead}
* @param maxKBytesPerRead Maximum number of bytes per read, as a NUMBER value.
* The default is 64 KB.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxKBytesPerRead(java.lang.Number maxKBytesPerRead) {
this.maxKBytesPerRead = maxKBytesPerRead;
return this;
}
/**
* Sets the value of {@link IbmDb2SettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 ofthe AWS Secrets Manager secret that allows access to the Db2 LUW 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link IbmDb2SettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the IBMDB2 endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Sets the value of {@link IbmDb2SettingsProperty#getSetDataCaptureChanges}
* @param setDataCaptureChanges Enables ongoing replication (CDC) as a BOOLEAN value.
* The default is true.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder setDataCaptureChanges(java.lang.Boolean setDataCaptureChanges) {
this.setDataCaptureChanges = setDataCaptureChanges;
return this;
}
/**
* Sets the value of {@link IbmDb2SettingsProperty#getSetDataCaptureChanges}
* @param setDataCaptureChanges Enables ongoing replication (CDC) as a BOOLEAN value.
* The default is true.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder setDataCaptureChanges(software.amazon.awscdk.core.IResolvable setDataCaptureChanges) {
this.setDataCaptureChanges = setDataCaptureChanges;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link IbmDb2SettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public IbmDb2SettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link IbmDb2SettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements IbmDb2SettingsProperty {
private final java.lang.String currentLsn;
private final java.lang.Number maxKBytesPerRead;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
private final java.lang.Object setDataCaptureChanges;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.currentLsn = software.amazon.jsii.Kernel.get(this, "currentLsn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.maxKBytesPerRead = software.amazon.jsii.Kernel.get(this, "maxKBytesPerRead", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.setDataCaptureChanges = software.amazon.jsii.Kernel.get(this, "setDataCaptureChanges", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.currentLsn = builder.currentLsn;
this.maxKBytesPerRead = builder.maxKBytesPerRead;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
this.setDataCaptureChanges = builder.setDataCaptureChanges;
}
@Override
public final java.lang.String getCurrentLsn() {
return this.currentLsn;
}
@Override
public final java.lang.Number getMaxKBytesPerRead() {
return this.maxKBytesPerRead;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
public final java.lang.Object getSetDataCaptureChanges() {
return this.setDataCaptureChanges;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getCurrentLsn() != null) {
data.set("currentLsn", om.valueToTree(this.getCurrentLsn()));
}
if (this.getMaxKBytesPerRead() != null) {
data.set("maxKBytesPerRead", om.valueToTree(this.getMaxKBytesPerRead()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
if (this.getSetDataCaptureChanges() != null) {
data.set("setDataCaptureChanges", om.valueToTree(this.getSetDataCaptureChanges()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.IbmDb2SettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
IbmDb2SettingsProperty.Jsii$Proxy that = (IbmDb2SettingsProperty.Jsii$Proxy) o;
if (this.currentLsn != null ? !this.currentLsn.equals(that.currentLsn) : that.currentLsn != null) return false;
if (this.maxKBytesPerRead != null ? !this.maxKBytesPerRead.equals(that.maxKBytesPerRead) : that.maxKBytesPerRead != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
if (this.secretsManagerSecretId != null ? !this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId != null) return false;
return this.setDataCaptureChanges != null ? this.setDataCaptureChanges.equals(that.setDataCaptureChanges) : that.setDataCaptureChanges == null;
}
@Override
public final int hashCode() {
int result = this.currentLsn != null ? this.currentLsn.hashCode() : 0;
result = 31 * result + (this.maxKBytesPerRead != null ? this.maxKBytesPerRead.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
result = 31 * result + (this.setDataCaptureChanges != null ? this.setDataCaptureChanges.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that describes an Apache Kafka endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about other available settings, see Using object mapping to migrate data to a Kafka topic in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* KafkaSettingsProperty kafkaSettingsProperty = KafkaSettingsProperty.builder()
* .broker("broker")
* .includeControlDetails(false)
* .includeNullAndEmpty(false)
* .includePartitionValue(false)
* .includeTableAlterOperations(false)
* .includeTransactionDetails(false)
* .messageFormat("messageFormat")
* .messageMaxBytes(123)
* .noHexPrefix(false)
* .partitionIncludeSchemaTable(false)
* .saslPassword("saslPassword")
* .saslUserName("saslUserName")
* .securityProtocol("securityProtocol")
* .sslCaCertificateArn("sslCaCertificateArn")
* .sslClientCertificateArn("sslClientCertificateArn")
* .sslClientKeyArn("sslClientKeyArn")
* .sslClientKeyPassword("sslClientKeyPassword")
* .topic("topic")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.KafkaSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(KafkaSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface KafkaSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance.
*
* Specify each broker location in the form *broker-hostname-or-ip* : *port*
. For example, "ec2-12-345-678-901.compute-1.amazonaws.com:2345"
. For more information and examples of specifying a list of broker locations, see Using Apache Kafka as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getBroker() {
return null;
}
/**
* Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeControlDetails() {
return null;
}
/**
* Include NULL and empty columns for records migrated to the endpoint.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeNullAndEmpty() {
return null;
}
/**
* Shows the partition value within the Kafka message output unless the partition type is schema-table-type
.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludePartitionValue() {
return null;
}
/**
* Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table
, drop-table
, add-column
, drop-column
, and rename-column
.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeTableAlterOperations() {
return null;
}
/**
* Provides detailed transaction information from the source database.
*
* This information includes a commit timestamp, a log position, and values for transaction_id
, previous transaction_id
, and transaction_record_id
(the record offset within a transaction). The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeTransactionDetails() {
return null;
}
/**
* The output format for the records created on the endpoint.
*
* The message format is JSON
(default) or JSON_UNFORMATTED
(a single line with no tab).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getMessageFormat() {
return null;
}
/**
* The maximum size in bytes for records created on the endpoint The default is 1,000,000.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMessageMaxBytes() {
return null;
}
/**
* Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
*
* For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to a Kafka target. Use the NoHexPrefix
endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getNoHexPrefix() {
return null;
}
/**
* Prefixes schema and table names to partition values, when the partition type is primary-key-type
.
*
* Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getPartitionIncludeSchemaTable() {
return null;
}
/**
* The secure password that you created when you first set up your Amazon MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSaslPassword() {
return null;
}
/**
* The secure user name you created when you first set up your Amazon MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSaslUserName() {
return null;
}
/**
* Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS).
*
* Options include ssl-encryption
, ssl-authentication
, and sasl-ssl
. sasl-ssl
requires SaslUsername
and SaslPassword
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecurityProtocol() {
return null;
}
/**
* The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSslCaCertificateArn() {
return null;
}
/**
* The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSslClientCertificateArn() {
return null;
}
/**
* The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSslClientKeyArn() {
return null;
}
/**
* The password for the client private key used to securely connect to a Kafka target endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSslClientKeyPassword() {
return null;
}
/**
* The topic to which you migrate the data.
*
* If you don't specify a topic, AWS DMS specifies "kafka-default-topic"
as the migration topic.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getTopic() {
return null;
}
/**
* @return a {@link Builder} of {@link KafkaSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link KafkaSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String broker;
java.lang.Object includeControlDetails;
java.lang.Object includeNullAndEmpty;
java.lang.Object includePartitionValue;
java.lang.Object includeTableAlterOperations;
java.lang.Object includeTransactionDetails;
java.lang.String messageFormat;
java.lang.Number messageMaxBytes;
java.lang.Object noHexPrefix;
java.lang.Object partitionIncludeSchemaTable;
java.lang.String saslPassword;
java.lang.String saslUserName;
java.lang.String securityProtocol;
java.lang.String sslCaCertificateArn;
java.lang.String sslClientCertificateArn;
java.lang.String sslClientKeyArn;
java.lang.String sslClientKeyPassword;
java.lang.String topic;
/**
* Sets the value of {@link KafkaSettingsProperty#getBroker}
* @param broker A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance.
* Specify each broker location in the form *broker-hostname-or-ip* : *port*
. For example, "ec2-12-345-678-901.compute-1.amazonaws.com:2345"
. For more information and examples of specifying a list of broker locations, see Using Apache Kafka as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder broker(java.lang.String broker) {
this.broker = broker;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludeControlDetails}
* @param includeControlDetails Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeControlDetails(java.lang.Boolean includeControlDetails) {
this.includeControlDetails = includeControlDetails;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludeControlDetails}
* @param includeControlDetails Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeControlDetails(software.amazon.awscdk.core.IResolvable includeControlDetails) {
this.includeControlDetails = includeControlDetails;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludeNullAndEmpty}
* @param includeNullAndEmpty Include NULL and empty columns for records migrated to the endpoint.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeNullAndEmpty(java.lang.Boolean includeNullAndEmpty) {
this.includeNullAndEmpty = includeNullAndEmpty;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludeNullAndEmpty}
* @param includeNullAndEmpty Include NULL and empty columns for records migrated to the endpoint.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeNullAndEmpty(software.amazon.awscdk.core.IResolvable includeNullAndEmpty) {
this.includeNullAndEmpty = includeNullAndEmpty;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludePartitionValue}
* @param includePartitionValue Shows the partition value within the Kafka message output unless the partition type is schema-table-type
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includePartitionValue(java.lang.Boolean includePartitionValue) {
this.includePartitionValue = includePartitionValue;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludePartitionValue}
* @param includePartitionValue Shows the partition value within the Kafka message output unless the partition type is schema-table-type
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includePartitionValue(software.amazon.awscdk.core.IResolvable includePartitionValue) {
this.includePartitionValue = includePartitionValue;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludeTableAlterOperations}
* @param includeTableAlterOperations Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table
, drop-table
, add-column
, drop-column
, and rename-column
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeTableAlterOperations(java.lang.Boolean includeTableAlterOperations) {
this.includeTableAlterOperations = includeTableAlterOperations;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludeTableAlterOperations}
* @param includeTableAlterOperations Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table
, drop-table
, add-column
, drop-column
, and rename-column
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeTableAlterOperations(software.amazon.awscdk.core.IResolvable includeTableAlterOperations) {
this.includeTableAlterOperations = includeTableAlterOperations;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludeTransactionDetails}
* @param includeTransactionDetails Provides detailed transaction information from the source database.
* This information includes a commit timestamp, a log position, and values for transaction_id
, previous transaction_id
, and transaction_record_id
(the record offset within a transaction). The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeTransactionDetails(java.lang.Boolean includeTransactionDetails) {
this.includeTransactionDetails = includeTransactionDetails;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getIncludeTransactionDetails}
* @param includeTransactionDetails Provides detailed transaction information from the source database.
* This information includes a commit timestamp, a log position, and values for transaction_id
, previous transaction_id
, and transaction_record_id
(the record offset within a transaction). The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeTransactionDetails(software.amazon.awscdk.core.IResolvable includeTransactionDetails) {
this.includeTransactionDetails = includeTransactionDetails;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getMessageFormat}
* @param messageFormat The output format for the records created on the endpoint.
* The message format is JSON
(default) or JSON_UNFORMATTED
(a single line with no tab).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder messageFormat(java.lang.String messageFormat) {
this.messageFormat = messageFormat;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getMessageMaxBytes}
* @param messageMaxBytes The maximum size in bytes for records created on the endpoint The default is 1,000,000.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder messageMaxBytes(java.lang.Number messageMaxBytes) {
this.messageMaxBytes = messageMaxBytes;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getNoHexPrefix}
* @param noHexPrefix Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to a Kafka target. Use the NoHexPrefix
endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder noHexPrefix(java.lang.Boolean noHexPrefix) {
this.noHexPrefix = noHexPrefix;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getNoHexPrefix}
* @param noHexPrefix Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to a Kafka target. Use the NoHexPrefix
endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder noHexPrefix(software.amazon.awscdk.core.IResolvable noHexPrefix) {
this.noHexPrefix = noHexPrefix;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getPartitionIncludeSchemaTable}
* @param partitionIncludeSchemaTable Prefixes schema and table names to partition values, when the partition type is primary-key-type
.
* Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder partitionIncludeSchemaTable(java.lang.Boolean partitionIncludeSchemaTable) {
this.partitionIncludeSchemaTable = partitionIncludeSchemaTable;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getPartitionIncludeSchemaTable}
* @param partitionIncludeSchemaTable Prefixes schema and table names to partition values, when the partition type is primary-key-type
.
* Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder partitionIncludeSchemaTable(software.amazon.awscdk.core.IResolvable partitionIncludeSchemaTable) {
this.partitionIncludeSchemaTable = partitionIncludeSchemaTable;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getSaslPassword}
* @param saslPassword The secure password that you created when you first set up your Amazon MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder saslPassword(java.lang.String saslPassword) {
this.saslPassword = saslPassword;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getSaslUserName}
* @param saslUserName The secure user name you created when you first set up your Amazon MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder saslUserName(java.lang.String saslUserName) {
this.saslUserName = saslUserName;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getSecurityProtocol}
* @param securityProtocol Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS).
* Options include ssl-encryption
, ssl-authentication
, and sasl-ssl
. sasl-ssl
requires SaslUsername
and SaslPassword
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder securityProtocol(java.lang.String securityProtocol) {
this.securityProtocol = securityProtocol;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getSslCaCertificateArn}
* @param sslCaCertificateArn The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sslCaCertificateArn(java.lang.String sslCaCertificateArn) {
this.sslCaCertificateArn = sslCaCertificateArn;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getSslClientCertificateArn}
* @param sslClientCertificateArn The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sslClientCertificateArn(java.lang.String sslClientCertificateArn) {
this.sslClientCertificateArn = sslClientCertificateArn;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getSslClientKeyArn}
* @param sslClientKeyArn The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sslClientKeyArn(java.lang.String sslClientKeyArn) {
this.sslClientKeyArn = sslClientKeyArn;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getSslClientKeyPassword}
* @param sslClientKeyPassword The password for the client private key used to securely connect to a Kafka target endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sslClientKeyPassword(java.lang.String sslClientKeyPassword) {
this.sslClientKeyPassword = sslClientKeyPassword;
return this;
}
/**
* Sets the value of {@link KafkaSettingsProperty#getTopic}
* @param topic The topic to which you migrate the data.
* If you don't specify a topic, AWS DMS specifies "kafka-default-topic"
as the migration topic.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder topic(java.lang.String topic) {
this.topic = topic;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link KafkaSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public KafkaSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link KafkaSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements KafkaSettingsProperty {
private final java.lang.String broker;
private final java.lang.Object includeControlDetails;
private final java.lang.Object includeNullAndEmpty;
private final java.lang.Object includePartitionValue;
private final java.lang.Object includeTableAlterOperations;
private final java.lang.Object includeTransactionDetails;
private final java.lang.String messageFormat;
private final java.lang.Number messageMaxBytes;
private final java.lang.Object noHexPrefix;
private final java.lang.Object partitionIncludeSchemaTable;
private final java.lang.String saslPassword;
private final java.lang.String saslUserName;
private final java.lang.String securityProtocol;
private final java.lang.String sslCaCertificateArn;
private final java.lang.String sslClientCertificateArn;
private final java.lang.String sslClientKeyArn;
private final java.lang.String sslClientKeyPassword;
private final java.lang.String topic;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.broker = software.amazon.jsii.Kernel.get(this, "broker", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.includeControlDetails = software.amazon.jsii.Kernel.get(this, "includeControlDetails", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.includeNullAndEmpty = software.amazon.jsii.Kernel.get(this, "includeNullAndEmpty", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.includePartitionValue = software.amazon.jsii.Kernel.get(this, "includePartitionValue", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.includeTableAlterOperations = software.amazon.jsii.Kernel.get(this, "includeTableAlterOperations", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.includeTransactionDetails = software.amazon.jsii.Kernel.get(this, "includeTransactionDetails", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.messageFormat = software.amazon.jsii.Kernel.get(this, "messageFormat", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.messageMaxBytes = software.amazon.jsii.Kernel.get(this, "messageMaxBytes", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.noHexPrefix = software.amazon.jsii.Kernel.get(this, "noHexPrefix", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.partitionIncludeSchemaTable = software.amazon.jsii.Kernel.get(this, "partitionIncludeSchemaTable", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.saslPassword = software.amazon.jsii.Kernel.get(this, "saslPassword", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.saslUserName = software.amazon.jsii.Kernel.get(this, "saslUserName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.securityProtocol = software.amazon.jsii.Kernel.get(this, "securityProtocol", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.sslCaCertificateArn = software.amazon.jsii.Kernel.get(this, "sslCaCertificateArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.sslClientCertificateArn = software.amazon.jsii.Kernel.get(this, "sslClientCertificateArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.sslClientKeyArn = software.amazon.jsii.Kernel.get(this, "sslClientKeyArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.sslClientKeyPassword = software.amazon.jsii.Kernel.get(this, "sslClientKeyPassword", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.topic = software.amazon.jsii.Kernel.get(this, "topic", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.broker = builder.broker;
this.includeControlDetails = builder.includeControlDetails;
this.includeNullAndEmpty = builder.includeNullAndEmpty;
this.includePartitionValue = builder.includePartitionValue;
this.includeTableAlterOperations = builder.includeTableAlterOperations;
this.includeTransactionDetails = builder.includeTransactionDetails;
this.messageFormat = builder.messageFormat;
this.messageMaxBytes = builder.messageMaxBytes;
this.noHexPrefix = builder.noHexPrefix;
this.partitionIncludeSchemaTable = builder.partitionIncludeSchemaTable;
this.saslPassword = builder.saslPassword;
this.saslUserName = builder.saslUserName;
this.securityProtocol = builder.securityProtocol;
this.sslCaCertificateArn = builder.sslCaCertificateArn;
this.sslClientCertificateArn = builder.sslClientCertificateArn;
this.sslClientKeyArn = builder.sslClientKeyArn;
this.sslClientKeyPassword = builder.sslClientKeyPassword;
this.topic = builder.topic;
}
@Override
public final java.lang.String getBroker() {
return this.broker;
}
@Override
public final java.lang.Object getIncludeControlDetails() {
return this.includeControlDetails;
}
@Override
public final java.lang.Object getIncludeNullAndEmpty() {
return this.includeNullAndEmpty;
}
@Override
public final java.lang.Object getIncludePartitionValue() {
return this.includePartitionValue;
}
@Override
public final java.lang.Object getIncludeTableAlterOperations() {
return this.includeTableAlterOperations;
}
@Override
public final java.lang.Object getIncludeTransactionDetails() {
return this.includeTransactionDetails;
}
@Override
public final java.lang.String getMessageFormat() {
return this.messageFormat;
}
@Override
public final java.lang.Number getMessageMaxBytes() {
return this.messageMaxBytes;
}
@Override
public final java.lang.Object getNoHexPrefix() {
return this.noHexPrefix;
}
@Override
public final java.lang.Object getPartitionIncludeSchemaTable() {
return this.partitionIncludeSchemaTable;
}
@Override
public final java.lang.String getSaslPassword() {
return this.saslPassword;
}
@Override
public final java.lang.String getSaslUserName() {
return this.saslUserName;
}
@Override
public final java.lang.String getSecurityProtocol() {
return this.securityProtocol;
}
@Override
public final java.lang.String getSslCaCertificateArn() {
return this.sslCaCertificateArn;
}
@Override
public final java.lang.String getSslClientCertificateArn() {
return this.sslClientCertificateArn;
}
@Override
public final java.lang.String getSslClientKeyArn() {
return this.sslClientKeyArn;
}
@Override
public final java.lang.String getSslClientKeyPassword() {
return this.sslClientKeyPassword;
}
@Override
public final java.lang.String getTopic() {
return this.topic;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getBroker() != null) {
data.set("broker", om.valueToTree(this.getBroker()));
}
if (this.getIncludeControlDetails() != null) {
data.set("includeControlDetails", om.valueToTree(this.getIncludeControlDetails()));
}
if (this.getIncludeNullAndEmpty() != null) {
data.set("includeNullAndEmpty", om.valueToTree(this.getIncludeNullAndEmpty()));
}
if (this.getIncludePartitionValue() != null) {
data.set("includePartitionValue", om.valueToTree(this.getIncludePartitionValue()));
}
if (this.getIncludeTableAlterOperations() != null) {
data.set("includeTableAlterOperations", om.valueToTree(this.getIncludeTableAlterOperations()));
}
if (this.getIncludeTransactionDetails() != null) {
data.set("includeTransactionDetails", om.valueToTree(this.getIncludeTransactionDetails()));
}
if (this.getMessageFormat() != null) {
data.set("messageFormat", om.valueToTree(this.getMessageFormat()));
}
if (this.getMessageMaxBytes() != null) {
data.set("messageMaxBytes", om.valueToTree(this.getMessageMaxBytes()));
}
if (this.getNoHexPrefix() != null) {
data.set("noHexPrefix", om.valueToTree(this.getNoHexPrefix()));
}
if (this.getPartitionIncludeSchemaTable() != null) {
data.set("partitionIncludeSchemaTable", om.valueToTree(this.getPartitionIncludeSchemaTable()));
}
if (this.getSaslPassword() != null) {
data.set("saslPassword", om.valueToTree(this.getSaslPassword()));
}
if (this.getSaslUserName() != null) {
data.set("saslUserName", om.valueToTree(this.getSaslUserName()));
}
if (this.getSecurityProtocol() != null) {
data.set("securityProtocol", om.valueToTree(this.getSecurityProtocol()));
}
if (this.getSslCaCertificateArn() != null) {
data.set("sslCaCertificateArn", om.valueToTree(this.getSslCaCertificateArn()));
}
if (this.getSslClientCertificateArn() != null) {
data.set("sslClientCertificateArn", om.valueToTree(this.getSslClientCertificateArn()));
}
if (this.getSslClientKeyArn() != null) {
data.set("sslClientKeyArn", om.valueToTree(this.getSslClientKeyArn()));
}
if (this.getSslClientKeyPassword() != null) {
data.set("sslClientKeyPassword", om.valueToTree(this.getSslClientKeyPassword()));
}
if (this.getTopic() != null) {
data.set("topic", om.valueToTree(this.getTopic()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.KafkaSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
KafkaSettingsProperty.Jsii$Proxy that = (KafkaSettingsProperty.Jsii$Proxy) o;
if (this.broker != null ? !this.broker.equals(that.broker) : that.broker != null) return false;
if (this.includeControlDetails != null ? !this.includeControlDetails.equals(that.includeControlDetails) : that.includeControlDetails != null) return false;
if (this.includeNullAndEmpty != null ? !this.includeNullAndEmpty.equals(that.includeNullAndEmpty) : that.includeNullAndEmpty != null) return false;
if (this.includePartitionValue != null ? !this.includePartitionValue.equals(that.includePartitionValue) : that.includePartitionValue != null) return false;
if (this.includeTableAlterOperations != null ? !this.includeTableAlterOperations.equals(that.includeTableAlterOperations) : that.includeTableAlterOperations != null) return false;
if (this.includeTransactionDetails != null ? !this.includeTransactionDetails.equals(that.includeTransactionDetails) : that.includeTransactionDetails != null) return false;
if (this.messageFormat != null ? !this.messageFormat.equals(that.messageFormat) : that.messageFormat != null) return false;
if (this.messageMaxBytes != null ? !this.messageMaxBytes.equals(that.messageMaxBytes) : that.messageMaxBytes != null) return false;
if (this.noHexPrefix != null ? !this.noHexPrefix.equals(that.noHexPrefix) : that.noHexPrefix != null) return false;
if (this.partitionIncludeSchemaTable != null ? !this.partitionIncludeSchemaTable.equals(that.partitionIncludeSchemaTable) : that.partitionIncludeSchemaTable != null) return false;
if (this.saslPassword != null ? !this.saslPassword.equals(that.saslPassword) : that.saslPassword != null) return false;
if (this.saslUserName != null ? !this.saslUserName.equals(that.saslUserName) : that.saslUserName != null) return false;
if (this.securityProtocol != null ? !this.securityProtocol.equals(that.securityProtocol) : that.securityProtocol != null) return false;
if (this.sslCaCertificateArn != null ? !this.sslCaCertificateArn.equals(that.sslCaCertificateArn) : that.sslCaCertificateArn != null) return false;
if (this.sslClientCertificateArn != null ? !this.sslClientCertificateArn.equals(that.sslClientCertificateArn) : that.sslClientCertificateArn != null) return false;
if (this.sslClientKeyArn != null ? !this.sslClientKeyArn.equals(that.sslClientKeyArn) : that.sslClientKeyArn != null) return false;
if (this.sslClientKeyPassword != null ? !this.sslClientKeyPassword.equals(that.sslClientKeyPassword) : that.sslClientKeyPassword != null) return false;
return this.topic != null ? this.topic.equals(that.topic) : that.topic == null;
}
@Override
public final int hashCode() {
int result = this.broker != null ? this.broker.hashCode() : 0;
result = 31 * result + (this.includeControlDetails != null ? this.includeControlDetails.hashCode() : 0);
result = 31 * result + (this.includeNullAndEmpty != null ? this.includeNullAndEmpty.hashCode() : 0);
result = 31 * result + (this.includePartitionValue != null ? this.includePartitionValue.hashCode() : 0);
result = 31 * result + (this.includeTableAlterOperations != null ? this.includeTableAlterOperations.hashCode() : 0);
result = 31 * result + (this.includeTransactionDetails != null ? this.includeTransactionDetails.hashCode() : 0);
result = 31 * result + (this.messageFormat != null ? this.messageFormat.hashCode() : 0);
result = 31 * result + (this.messageMaxBytes != null ? this.messageMaxBytes.hashCode() : 0);
result = 31 * result + (this.noHexPrefix != null ? this.noHexPrefix.hashCode() : 0);
result = 31 * result + (this.partitionIncludeSchemaTable != null ? this.partitionIncludeSchemaTable.hashCode() : 0);
result = 31 * result + (this.saslPassword != null ? this.saslPassword.hashCode() : 0);
result = 31 * result + (this.saslUserName != null ? this.saslUserName.hashCode() : 0);
result = 31 * result + (this.securityProtocol != null ? this.securityProtocol.hashCode() : 0);
result = 31 * result + (this.sslCaCertificateArn != null ? this.sslCaCertificateArn.hashCode() : 0);
result = 31 * result + (this.sslClientCertificateArn != null ? this.sslClientCertificateArn.hashCode() : 0);
result = 31 * result + (this.sslClientKeyArn != null ? this.sslClientKeyArn.hashCode() : 0);
result = 31 * result + (this.sslClientKeyPassword != null ? this.sslClientKeyPassword.hashCode() : 0);
result = 31 * result + (this.topic != null ? this.topic.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that describes an Amazon Kinesis Data Stream endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about other available settings, see Using object mapping to migrate data to a Kinesis data stream in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* KinesisSettingsProperty kinesisSettingsProperty = KinesisSettingsProperty.builder()
* .includeControlDetails(false)
* .includeNullAndEmpty(false)
* .includePartitionValue(false)
* .includeTableAlterOperations(false)
* .includeTransactionDetails(false)
* .messageFormat("messageFormat")
* .noHexPrefix(false)
* .partitionIncludeSchemaTable(false)
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .streamArn("streamArn")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.KinesisSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(KinesisSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface KinesisSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeControlDetails() {
return null;
}
/**
* Include NULL and empty columns for records migrated to the endpoint.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeNullAndEmpty() {
return null;
}
/**
* Shows the partition value within the Kinesis message output, unless the partition type is schema-table-type
.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludePartitionValue() {
return null;
}
/**
* Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table
, drop-table
, add-column
, drop-column
, and rename-column
.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeTableAlterOperations() {
return null;
}
/**
* Provides detailed transaction information from the source database.
*
* This information includes a commit timestamp, a log position, and values for transaction_id
, previous transaction_id
, and transaction_record_id
(the record offset within a transaction). The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeTransactionDetails() {
return null;
}
/**
* The output format for the records created on the endpoint.
*
* The message format is JSON
(default) or JSON_UNFORMATTED
(a single line with no tab).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getMessageFormat() {
return null;
}
/**
* Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
*
* For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to an Amazon Kinesis target. Use the NoHexPrefix
endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getNoHexPrefix() {
return null;
}
/**
* Prefixes schema and table names to partition values, when the partition type is primary-key-type
.
*
* Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getPartitionIncludeSchemaTable() {
return null;
}
/**
* The Amazon Resource Name (ARN) for the IAM role that AWS DMS uses to write to the Kinesis data stream.
*
* The role must allow the iam:PassRole
action.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServiceAccessRoleArn() {
return null;
}
/**
* The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getStreamArn() {
return null;
}
/**
* @return a {@link Builder} of {@link KinesisSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link KinesisSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Object includeControlDetails;
java.lang.Object includeNullAndEmpty;
java.lang.Object includePartitionValue;
java.lang.Object includeTableAlterOperations;
java.lang.Object includeTransactionDetails;
java.lang.String messageFormat;
java.lang.Object noHexPrefix;
java.lang.Object partitionIncludeSchemaTable;
java.lang.String serviceAccessRoleArn;
java.lang.String streamArn;
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludeControlDetails}
* @param includeControlDetails Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeControlDetails(java.lang.Boolean includeControlDetails) {
this.includeControlDetails = includeControlDetails;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludeControlDetails}
* @param includeControlDetails Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeControlDetails(software.amazon.awscdk.core.IResolvable includeControlDetails) {
this.includeControlDetails = includeControlDetails;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludeNullAndEmpty}
* @param includeNullAndEmpty Include NULL and empty columns for records migrated to the endpoint.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeNullAndEmpty(java.lang.Boolean includeNullAndEmpty) {
this.includeNullAndEmpty = includeNullAndEmpty;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludeNullAndEmpty}
* @param includeNullAndEmpty Include NULL and empty columns for records migrated to the endpoint.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeNullAndEmpty(software.amazon.awscdk.core.IResolvable includeNullAndEmpty) {
this.includeNullAndEmpty = includeNullAndEmpty;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludePartitionValue}
* @param includePartitionValue Shows the partition value within the Kinesis message output, unless the partition type is schema-table-type
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includePartitionValue(java.lang.Boolean includePartitionValue) {
this.includePartitionValue = includePartitionValue;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludePartitionValue}
* @param includePartitionValue Shows the partition value within the Kinesis message output, unless the partition type is schema-table-type
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includePartitionValue(software.amazon.awscdk.core.IResolvable includePartitionValue) {
this.includePartitionValue = includePartitionValue;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludeTableAlterOperations}
* @param includeTableAlterOperations Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table
, drop-table
, add-column
, drop-column
, and rename-column
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeTableAlterOperations(java.lang.Boolean includeTableAlterOperations) {
this.includeTableAlterOperations = includeTableAlterOperations;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludeTableAlterOperations}
* @param includeTableAlterOperations Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table
, drop-table
, add-column
, drop-column
, and rename-column
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeTableAlterOperations(software.amazon.awscdk.core.IResolvable includeTableAlterOperations) {
this.includeTableAlterOperations = includeTableAlterOperations;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludeTransactionDetails}
* @param includeTransactionDetails Provides detailed transaction information from the source database.
* This information includes a commit timestamp, a log position, and values for transaction_id
, previous transaction_id
, and transaction_record_id
(the record offset within a transaction). The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeTransactionDetails(java.lang.Boolean includeTransactionDetails) {
this.includeTransactionDetails = includeTransactionDetails;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getIncludeTransactionDetails}
* @param includeTransactionDetails Provides detailed transaction information from the source database.
* This information includes a commit timestamp, a log position, and values for transaction_id
, previous transaction_id
, and transaction_record_id
(the record offset within a transaction). The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeTransactionDetails(software.amazon.awscdk.core.IResolvable includeTransactionDetails) {
this.includeTransactionDetails = includeTransactionDetails;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getMessageFormat}
* @param messageFormat The output format for the records created on the endpoint.
* The message format is JSON
(default) or JSON_UNFORMATTED
(a single line with no tab).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder messageFormat(java.lang.String messageFormat) {
this.messageFormat = messageFormat;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getNoHexPrefix}
* @param noHexPrefix Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to an Amazon Kinesis target. Use the NoHexPrefix
endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder noHexPrefix(java.lang.Boolean noHexPrefix) {
this.noHexPrefix = noHexPrefix;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getNoHexPrefix}
* @param noHexPrefix Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to an Amazon Kinesis target. Use the NoHexPrefix
endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder noHexPrefix(software.amazon.awscdk.core.IResolvable noHexPrefix) {
this.noHexPrefix = noHexPrefix;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getPartitionIncludeSchemaTable}
* @param partitionIncludeSchemaTable Prefixes schema and table names to partition values, when the partition type is primary-key-type
.
* Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder partitionIncludeSchemaTable(java.lang.Boolean partitionIncludeSchemaTable) {
this.partitionIncludeSchemaTable = partitionIncludeSchemaTable;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getPartitionIncludeSchemaTable}
* @param partitionIncludeSchemaTable Prefixes schema and table names to partition values, when the partition type is primary-key-type
.
* Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder partitionIncludeSchemaTable(software.amazon.awscdk.core.IResolvable partitionIncludeSchemaTable) {
this.partitionIncludeSchemaTable = partitionIncludeSchemaTable;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getServiceAccessRoleArn}
* @param serviceAccessRoleArn The Amazon Resource Name (ARN) for the IAM role that AWS DMS uses to write to the Kinesis data stream.
* The role must allow the iam:PassRole
action.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serviceAccessRoleArn(java.lang.String serviceAccessRoleArn) {
this.serviceAccessRoleArn = serviceAccessRoleArn;
return this;
}
/**
* Sets the value of {@link KinesisSettingsProperty#getStreamArn}
* @param streamArn The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder streamArn(java.lang.String streamArn) {
this.streamArn = streamArn;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link KinesisSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public KinesisSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link KinesisSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements KinesisSettingsProperty {
private final java.lang.Object includeControlDetails;
private final java.lang.Object includeNullAndEmpty;
private final java.lang.Object includePartitionValue;
private final java.lang.Object includeTableAlterOperations;
private final java.lang.Object includeTransactionDetails;
private final java.lang.String messageFormat;
private final java.lang.Object noHexPrefix;
private final java.lang.Object partitionIncludeSchemaTable;
private final java.lang.String serviceAccessRoleArn;
private final java.lang.String streamArn;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.includeControlDetails = software.amazon.jsii.Kernel.get(this, "includeControlDetails", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.includeNullAndEmpty = software.amazon.jsii.Kernel.get(this, "includeNullAndEmpty", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.includePartitionValue = software.amazon.jsii.Kernel.get(this, "includePartitionValue", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.includeTableAlterOperations = software.amazon.jsii.Kernel.get(this, "includeTableAlterOperations", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.includeTransactionDetails = software.amazon.jsii.Kernel.get(this, "includeTransactionDetails", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.messageFormat = software.amazon.jsii.Kernel.get(this, "messageFormat", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.noHexPrefix = software.amazon.jsii.Kernel.get(this, "noHexPrefix", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.partitionIncludeSchemaTable = software.amazon.jsii.Kernel.get(this, "partitionIncludeSchemaTable", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.serviceAccessRoleArn = software.amazon.jsii.Kernel.get(this, "serviceAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.streamArn = software.amazon.jsii.Kernel.get(this, "streamArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.includeControlDetails = builder.includeControlDetails;
this.includeNullAndEmpty = builder.includeNullAndEmpty;
this.includePartitionValue = builder.includePartitionValue;
this.includeTableAlterOperations = builder.includeTableAlterOperations;
this.includeTransactionDetails = builder.includeTransactionDetails;
this.messageFormat = builder.messageFormat;
this.noHexPrefix = builder.noHexPrefix;
this.partitionIncludeSchemaTable = builder.partitionIncludeSchemaTable;
this.serviceAccessRoleArn = builder.serviceAccessRoleArn;
this.streamArn = builder.streamArn;
}
@Override
public final java.lang.Object getIncludeControlDetails() {
return this.includeControlDetails;
}
@Override
public final java.lang.Object getIncludeNullAndEmpty() {
return this.includeNullAndEmpty;
}
@Override
public final java.lang.Object getIncludePartitionValue() {
return this.includePartitionValue;
}
@Override
public final java.lang.Object getIncludeTableAlterOperations() {
return this.includeTableAlterOperations;
}
@Override
public final java.lang.Object getIncludeTransactionDetails() {
return this.includeTransactionDetails;
}
@Override
public final java.lang.String getMessageFormat() {
return this.messageFormat;
}
@Override
public final java.lang.Object getNoHexPrefix() {
return this.noHexPrefix;
}
@Override
public final java.lang.Object getPartitionIncludeSchemaTable() {
return this.partitionIncludeSchemaTable;
}
@Override
public final java.lang.String getServiceAccessRoleArn() {
return this.serviceAccessRoleArn;
}
@Override
public final java.lang.String getStreamArn() {
return this.streamArn;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getIncludeControlDetails() != null) {
data.set("includeControlDetails", om.valueToTree(this.getIncludeControlDetails()));
}
if (this.getIncludeNullAndEmpty() != null) {
data.set("includeNullAndEmpty", om.valueToTree(this.getIncludeNullAndEmpty()));
}
if (this.getIncludePartitionValue() != null) {
data.set("includePartitionValue", om.valueToTree(this.getIncludePartitionValue()));
}
if (this.getIncludeTableAlterOperations() != null) {
data.set("includeTableAlterOperations", om.valueToTree(this.getIncludeTableAlterOperations()));
}
if (this.getIncludeTransactionDetails() != null) {
data.set("includeTransactionDetails", om.valueToTree(this.getIncludeTransactionDetails()));
}
if (this.getMessageFormat() != null) {
data.set("messageFormat", om.valueToTree(this.getMessageFormat()));
}
if (this.getNoHexPrefix() != null) {
data.set("noHexPrefix", om.valueToTree(this.getNoHexPrefix()));
}
if (this.getPartitionIncludeSchemaTable() != null) {
data.set("partitionIncludeSchemaTable", om.valueToTree(this.getPartitionIncludeSchemaTable()));
}
if (this.getServiceAccessRoleArn() != null) {
data.set("serviceAccessRoleArn", om.valueToTree(this.getServiceAccessRoleArn()));
}
if (this.getStreamArn() != null) {
data.set("streamArn", om.valueToTree(this.getStreamArn()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.KinesisSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
KinesisSettingsProperty.Jsii$Proxy that = (KinesisSettingsProperty.Jsii$Proxy) o;
if (this.includeControlDetails != null ? !this.includeControlDetails.equals(that.includeControlDetails) : that.includeControlDetails != null) return false;
if (this.includeNullAndEmpty != null ? !this.includeNullAndEmpty.equals(that.includeNullAndEmpty) : that.includeNullAndEmpty != null) return false;
if (this.includePartitionValue != null ? !this.includePartitionValue.equals(that.includePartitionValue) : that.includePartitionValue != null) return false;
if (this.includeTableAlterOperations != null ? !this.includeTableAlterOperations.equals(that.includeTableAlterOperations) : that.includeTableAlterOperations != null) return false;
if (this.includeTransactionDetails != null ? !this.includeTransactionDetails.equals(that.includeTransactionDetails) : that.includeTransactionDetails != null) return false;
if (this.messageFormat != null ? !this.messageFormat.equals(that.messageFormat) : that.messageFormat != null) return false;
if (this.noHexPrefix != null ? !this.noHexPrefix.equals(that.noHexPrefix) : that.noHexPrefix != null) return false;
if (this.partitionIncludeSchemaTable != null ? !this.partitionIncludeSchemaTable.equals(that.partitionIncludeSchemaTable) : that.partitionIncludeSchemaTable != null) return false;
if (this.serviceAccessRoleArn != null ? !this.serviceAccessRoleArn.equals(that.serviceAccessRoleArn) : that.serviceAccessRoleArn != null) return false;
return this.streamArn != null ? this.streamArn.equals(that.streamArn) : that.streamArn == null;
}
@Override
public final int hashCode() {
int result = this.includeControlDetails != null ? this.includeControlDetails.hashCode() : 0;
result = 31 * result + (this.includeNullAndEmpty != null ? this.includeNullAndEmpty.hashCode() : 0);
result = 31 * result + (this.includePartitionValue != null ? this.includePartitionValue.hashCode() : 0);
result = 31 * result + (this.includeTableAlterOperations != null ? this.includeTableAlterOperations.hashCode() : 0);
result = 31 * result + (this.includeTransactionDetails != null ? this.includeTransactionDetails.hashCode() : 0);
result = 31 * result + (this.messageFormat != null ? this.messageFormat.hashCode() : 0);
result = 31 * result + (this.noHexPrefix != null ? this.noHexPrefix.hashCode() : 0);
result = 31 * result + (this.partitionIncludeSchemaTable != null ? this.partitionIncludeSchemaTable.hashCode() : 0);
result = 31 * result + (this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.streamArn != null ? this.streamArn.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines a Microsoft SQL Server 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 SQL Server as a source for AWS DMS and Extra connection attributes when using SQL Server as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* MicrosoftSqlServerSettingsProperty microsoftSqlServerSettingsProperty = MicrosoftSqlServerSettingsProperty.builder()
* .bcpPacketSize(123)
* .controlTablesFileGroup("controlTablesFileGroup")
* .querySingleAlwaysOnNode(false)
* .readBackupOnly(false)
* .safeguardPolicy("safeguardPolicy")
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .useBcpFullLoad(false)
* .useThirdPartyBackupDevice(false)
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.MicrosoftSqlServerSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(MicrosoftSqlServerSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface MicrosoftSqlServerSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* The maximum size of the packets (in bytes) used to transfer data using BCP.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getBcpPacketSize() {
return null;
}
/**
* Specifies a file group for the AWS DMS internal tables.
*
* When the replication task starts, all the internal AWS DMS control tables (awsdms_ apply_exception, awsdms_apply, awsdms_changes) are created for the specified file group.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getControlTablesFileGroup() {
return null;
}
/**
* Cleans and recreates table metadata information on the replication instance when a mismatch occurs.
*
* An example is a situation where running an alter DDL statement on a table might result in different information about the table cached in the replication instance.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getQuerySingleAlwaysOnNode() {
return null;
}
/**
* When this attribute is set to Y
, AWS DMS only reads changes from transaction log backups and doesn't read from the active transaction log file during ongoing replication.
*
* Setting this parameter to Y
enables you to control active transaction log file growth during full load and ongoing replication tasks. However, it can add some source latency to ongoing replication.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getReadBackupOnly() {
return null;
}
/**
* Use this attribute to minimize the need to access the backup log and enable AWS DMS to prevent truncation using one of the following two methods.
*
* Start transactions in the database: This is the default method. When this method is used, AWS DMS prevents TLOG truncation by mimicking a transaction in the database. As long as such a transaction is open, changes that appear after the transaction started aren't truncated. If you need Microsoft Replication to be enabled in your database, then you must choose this method.
*
* Exclusively use sp_repldone within a single task : When this method is used, AWS DMS reads the changes and then uses sp_repldone to mark the TLOG transactions as ready for truncation. Although this method doesn't involve any transactional activities, it can only be used when Microsoft Replication isn't running. Also, when using this method, only one AWS DMS task can access the database at any given time. Therefore, if you need to run parallel AWS DMS tasks against the same database, use the default method.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSafeguardPolicy() {
return null;
}
/**
* 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 SQL Server 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the MicrosoftSQLServer endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* Use this to attribute to transfer data for full-load operations using BCP.
*
* When the target table contains an identity column that does not exist in the source table, you must disable the use BCP for loading table option.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getUseBcpFullLoad() {
return null;
}
/**
* When this attribute is set to Y
, DMS processes third-party transaction log backups if they are created in native format.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getUseThirdPartyBackupDevice() {
return null;
}
/**
* @return a {@link Builder} of {@link MicrosoftSqlServerSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link MicrosoftSqlServerSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Number bcpPacketSize;
java.lang.String controlTablesFileGroup;
java.lang.Object querySingleAlwaysOnNode;
java.lang.Object readBackupOnly;
java.lang.String safeguardPolicy;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
java.lang.Object useBcpFullLoad;
java.lang.Object useThirdPartyBackupDevice;
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getBcpPacketSize}
* @param bcpPacketSize The maximum size of the packets (in bytes) used to transfer data using BCP.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder bcpPacketSize(java.lang.Number bcpPacketSize) {
this.bcpPacketSize = bcpPacketSize;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getControlTablesFileGroup}
* @param controlTablesFileGroup Specifies a file group for the AWS DMS internal tables.
* When the replication task starts, all the internal AWS DMS control tables (awsdms_ apply_exception, awsdms_apply, awsdms_changes) are created for the specified file group.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder controlTablesFileGroup(java.lang.String controlTablesFileGroup) {
this.controlTablesFileGroup = controlTablesFileGroup;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getQuerySingleAlwaysOnNode}
* @param querySingleAlwaysOnNode Cleans and recreates table metadata information on the replication instance when a mismatch occurs.
* An example is a situation where running an alter DDL statement on a table might result in different information about the table cached in the replication instance.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder querySingleAlwaysOnNode(java.lang.Boolean querySingleAlwaysOnNode) {
this.querySingleAlwaysOnNode = querySingleAlwaysOnNode;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getQuerySingleAlwaysOnNode}
* @param querySingleAlwaysOnNode Cleans and recreates table metadata information on the replication instance when a mismatch occurs.
* An example is a situation where running an alter DDL statement on a table might result in different information about the table cached in the replication instance.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder querySingleAlwaysOnNode(software.amazon.awscdk.core.IResolvable querySingleAlwaysOnNode) {
this.querySingleAlwaysOnNode = querySingleAlwaysOnNode;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getReadBackupOnly}
* @param readBackupOnly When this attribute is set to Y
, AWS DMS only reads changes from transaction log backups and doesn't read from the active transaction log file during ongoing replication.
* Setting this parameter to Y
enables you to control active transaction log file growth during full load and ongoing replication tasks. However, it can add some source latency to ongoing replication.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder readBackupOnly(java.lang.Boolean readBackupOnly) {
this.readBackupOnly = readBackupOnly;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getReadBackupOnly}
* @param readBackupOnly When this attribute is set to Y
, AWS DMS only reads changes from transaction log backups and doesn't read from the active transaction log file during ongoing replication.
* Setting this parameter to Y
enables you to control active transaction log file growth during full load and ongoing replication tasks. However, it can add some source latency to ongoing replication.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder readBackupOnly(software.amazon.awscdk.core.IResolvable readBackupOnly) {
this.readBackupOnly = readBackupOnly;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getSafeguardPolicy}
* @param safeguardPolicy Use this attribute to minimize the need to access the backup log and enable AWS DMS to prevent truncation using one of the following two methods.
* Start transactions in the database: This is the default method. When this method is used, AWS DMS prevents TLOG truncation by mimicking a transaction in the database. As long as such a transaction is open, changes that appear after the transaction started aren't truncated. If you need Microsoft Replication to be enabled in your database, then you must choose this method.
*
* Exclusively use sp_repldone within a single task : When this method is used, AWS DMS reads the changes and then uses sp_repldone to mark the TLOG transactions as ready for truncation. Although this method doesn't involve any transactional activities, it can only be used when Microsoft Replication isn't running. Also, when using this method, only one AWS DMS task can access the database at any given time. Therefore, if you need to run parallel AWS DMS tasks against the same database, use the default method.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder safeguardPolicy(java.lang.String safeguardPolicy) {
this.safeguardPolicy = safeguardPolicy;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 SQL Server 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the MicrosoftSQLServer endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getUseBcpFullLoad}
* @param useBcpFullLoad Use this to attribute to transfer data for full-load operations using BCP.
* When the target table contains an identity column that does not exist in the source table, you must disable the use BCP for loading table option.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useBcpFullLoad(java.lang.Boolean useBcpFullLoad) {
this.useBcpFullLoad = useBcpFullLoad;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getUseBcpFullLoad}
* @param useBcpFullLoad Use this to attribute to transfer data for full-load operations using BCP.
* When the target table contains an identity column that does not exist in the source table, you must disable the use BCP for loading table option.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useBcpFullLoad(software.amazon.awscdk.core.IResolvable useBcpFullLoad) {
this.useBcpFullLoad = useBcpFullLoad;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getUseThirdPartyBackupDevice}
* @param useThirdPartyBackupDevice When this attribute is set to Y
, DMS processes third-party transaction log backups if they are created in native format.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useThirdPartyBackupDevice(java.lang.Boolean useThirdPartyBackupDevice) {
this.useThirdPartyBackupDevice = useThirdPartyBackupDevice;
return this;
}
/**
* Sets the value of {@link MicrosoftSqlServerSettingsProperty#getUseThirdPartyBackupDevice}
* @param useThirdPartyBackupDevice When this attribute is set to Y
, DMS processes third-party transaction log backups if they are created in native format.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useThirdPartyBackupDevice(software.amazon.awscdk.core.IResolvable useThirdPartyBackupDevice) {
this.useThirdPartyBackupDevice = useThirdPartyBackupDevice;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link MicrosoftSqlServerSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public MicrosoftSqlServerSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link MicrosoftSqlServerSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements MicrosoftSqlServerSettingsProperty {
private final java.lang.Number bcpPacketSize;
private final java.lang.String controlTablesFileGroup;
private final java.lang.Object querySingleAlwaysOnNode;
private final java.lang.Object readBackupOnly;
private final java.lang.String safeguardPolicy;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
private final java.lang.Object useBcpFullLoad;
private final java.lang.Object useThirdPartyBackupDevice;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.bcpPacketSize = software.amazon.jsii.Kernel.get(this, "bcpPacketSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.controlTablesFileGroup = software.amazon.jsii.Kernel.get(this, "controlTablesFileGroup", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.querySingleAlwaysOnNode = software.amazon.jsii.Kernel.get(this, "querySingleAlwaysOnNode", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.readBackupOnly = software.amazon.jsii.Kernel.get(this, "readBackupOnly", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.safeguardPolicy = software.amazon.jsii.Kernel.get(this, "safeguardPolicy", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.useBcpFullLoad = software.amazon.jsii.Kernel.get(this, "useBcpFullLoad", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.useThirdPartyBackupDevice = software.amazon.jsii.Kernel.get(this, "useThirdPartyBackupDevice", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.bcpPacketSize = builder.bcpPacketSize;
this.controlTablesFileGroup = builder.controlTablesFileGroup;
this.querySingleAlwaysOnNode = builder.querySingleAlwaysOnNode;
this.readBackupOnly = builder.readBackupOnly;
this.safeguardPolicy = builder.safeguardPolicy;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
this.useBcpFullLoad = builder.useBcpFullLoad;
this.useThirdPartyBackupDevice = builder.useThirdPartyBackupDevice;
}
@Override
public final java.lang.Number getBcpPacketSize() {
return this.bcpPacketSize;
}
@Override
public final java.lang.String getControlTablesFileGroup() {
return this.controlTablesFileGroup;
}
@Override
public final java.lang.Object getQuerySingleAlwaysOnNode() {
return this.querySingleAlwaysOnNode;
}
@Override
public final java.lang.Object getReadBackupOnly() {
return this.readBackupOnly;
}
@Override
public final java.lang.String getSafeguardPolicy() {
return this.safeguardPolicy;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
public final java.lang.Object getUseBcpFullLoad() {
return this.useBcpFullLoad;
}
@Override
public final java.lang.Object getUseThirdPartyBackupDevice() {
return this.useThirdPartyBackupDevice;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getBcpPacketSize() != null) {
data.set("bcpPacketSize", om.valueToTree(this.getBcpPacketSize()));
}
if (this.getControlTablesFileGroup() != null) {
data.set("controlTablesFileGroup", om.valueToTree(this.getControlTablesFileGroup()));
}
if (this.getQuerySingleAlwaysOnNode() != null) {
data.set("querySingleAlwaysOnNode", om.valueToTree(this.getQuerySingleAlwaysOnNode()));
}
if (this.getReadBackupOnly() != null) {
data.set("readBackupOnly", om.valueToTree(this.getReadBackupOnly()));
}
if (this.getSafeguardPolicy() != null) {
data.set("safeguardPolicy", om.valueToTree(this.getSafeguardPolicy()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
if (this.getUseBcpFullLoad() != null) {
data.set("useBcpFullLoad", om.valueToTree(this.getUseBcpFullLoad()));
}
if (this.getUseThirdPartyBackupDevice() != null) {
data.set("useThirdPartyBackupDevice", om.valueToTree(this.getUseThirdPartyBackupDevice()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.MicrosoftSqlServerSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MicrosoftSqlServerSettingsProperty.Jsii$Proxy that = (MicrosoftSqlServerSettingsProperty.Jsii$Proxy) o;
if (this.bcpPacketSize != null ? !this.bcpPacketSize.equals(that.bcpPacketSize) : that.bcpPacketSize != null) return false;
if (this.controlTablesFileGroup != null ? !this.controlTablesFileGroup.equals(that.controlTablesFileGroup) : that.controlTablesFileGroup != null) return false;
if (this.querySingleAlwaysOnNode != null ? !this.querySingleAlwaysOnNode.equals(that.querySingleAlwaysOnNode) : that.querySingleAlwaysOnNode != null) return false;
if (this.readBackupOnly != null ? !this.readBackupOnly.equals(that.readBackupOnly) : that.readBackupOnly != null) return false;
if (this.safeguardPolicy != null ? !this.safeguardPolicy.equals(that.safeguardPolicy) : that.safeguardPolicy != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
if (this.secretsManagerSecretId != null ? !this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId != null) return false;
if (this.useBcpFullLoad != null ? !this.useBcpFullLoad.equals(that.useBcpFullLoad) : that.useBcpFullLoad != null) return false;
return this.useThirdPartyBackupDevice != null ? this.useThirdPartyBackupDevice.equals(that.useThirdPartyBackupDevice) : that.useThirdPartyBackupDevice == null;
}
@Override
public final int hashCode() {
int result = this.bcpPacketSize != null ? this.bcpPacketSize.hashCode() : 0;
result = 31 * result + (this.controlTablesFileGroup != null ? this.controlTablesFileGroup.hashCode() : 0);
result = 31 * result + (this.querySingleAlwaysOnNode != null ? this.querySingleAlwaysOnNode.hashCode() : 0);
result = 31 * result + (this.readBackupOnly != null ? this.readBackupOnly.hashCode() : 0);
result = 31 * result + (this.safeguardPolicy != null ? this.safeguardPolicy.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
result = 31 * result + (this.useBcpFullLoad != null ? this.useBcpFullLoad.hashCode() : 0);
result = 31 * result + (this.useThirdPartyBackupDevice != null ? this.useThirdPartyBackupDevice.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines a MongoDB endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about other available settings, see Endpoint configuration settings when using MongoDB as a source for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* MongoDbSettingsProperty mongoDbSettingsProperty = MongoDbSettingsProperty.builder()
* .authMechanism("authMechanism")
* .authSource("authSource")
* .authType("authType")
* .databaseName("databaseName")
* .docsToInvestigate("docsToInvestigate")
* .extractDocId("extractDocId")
* .nestingLevel("nestingLevel")
* .password("password")
* .port(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .serverName("serverName")
* .username("username")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.MongoDbSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(MongoDbSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface MongoDbSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* The authentication mechanism you use to access the MongoDB source endpoint.
*
* For the default value, in MongoDB version 2.x, "default"
is "mongodb_cr"
. For MongoDB version 3.x or later, "default"
is "scram_sha_1"
. This setting isn't used when AuthType
is set to "no"
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAuthMechanism() {
return null;
}
/**
* The MongoDB database name. This setting isn't used when AuthType
is set to "no"
.
*
* The default is "admin"
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAuthSource() {
return null;
}
/**
* The authentication type you use to access the MongoDB source endpoint.
*
* When set to "no"
, user name and password parameters are not used and can be empty.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAuthType() {
return null;
}
/**
* The database name on the MongoDB source endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDatabaseName() {
return null;
}
/**
* Indicates the number of documents to preview to determine the document organization.
*
* Use this setting when NestingLevel
is set to "one"
.
*
* Must be a positive value greater than 0
. Default value is 1000
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDocsToInvestigate() {
return null;
}
/**
* Specifies the document ID. Use this setting when NestingLevel
is set to "none"
.
*
* Default value is "false"
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getExtractDocId() {
return null;
}
/**
* Specifies either document or table mode.
*
* Default value is "none"
. Specify "none"
to use document mode. Specify "one"
to use table mode.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getNestingLevel() {
return null;
}
/**
* The password for the user account you use to access the MongoDB source endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getPassword() {
return null;
}
/**
* The port value for the MongoDB source endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getPort() {
return null;
}
/**
* 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 MongoDB 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the MongoDB endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* The name of the server on the MongoDB source endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServerName() {
return null;
}
/**
* The user name you use to access the MongoDB source endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getUsername() {
return null;
}
/**
* @return a {@link Builder} of {@link MongoDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link MongoDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String authMechanism;
java.lang.String authSource;
java.lang.String authType;
java.lang.String databaseName;
java.lang.String docsToInvestigate;
java.lang.String extractDocId;
java.lang.String nestingLevel;
java.lang.String password;
java.lang.Number port;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
java.lang.String serverName;
java.lang.String username;
/**
* Sets the value of {@link MongoDbSettingsProperty#getAuthMechanism}
* @param authMechanism The authentication mechanism you use to access the MongoDB source endpoint.
* For the default value, in MongoDB version 2.x, "default"
is "mongodb_cr"
. For MongoDB version 3.x or later, "default"
is "scram_sha_1"
. This setting isn't used when AuthType
is set to "no"
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder authMechanism(java.lang.String authMechanism) {
this.authMechanism = authMechanism;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getAuthSource}
* @param authSource The MongoDB database name. This setting isn't used when AuthType
is set to "no"
.
* The default is "admin"
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder authSource(java.lang.String authSource) {
this.authSource = authSource;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getAuthType}
* @param authType The authentication type you use to access the MongoDB source endpoint.
* When set to "no"
, user name and password parameters are not used and can be empty.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder authType(java.lang.String authType) {
this.authType = authType;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getDatabaseName}
* @param databaseName The database name on the MongoDB source endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder databaseName(java.lang.String databaseName) {
this.databaseName = databaseName;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getDocsToInvestigate}
* @param docsToInvestigate Indicates the number of documents to preview to determine the document organization.
* Use this setting when NestingLevel
is set to "one"
.
*
* Must be a positive value greater than 0
. Default value is 1000
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder docsToInvestigate(java.lang.String docsToInvestigate) {
this.docsToInvestigate = docsToInvestigate;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getExtractDocId}
* @param extractDocId Specifies the document ID. Use this setting when NestingLevel
is set to "none"
.
* Default value is "false"
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder extractDocId(java.lang.String extractDocId) {
this.extractDocId = extractDocId;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getNestingLevel}
* @param nestingLevel Specifies either document or table mode.
* Default value is "none"
. Specify "none"
to use document mode. Specify "one"
to use table mode.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder nestingLevel(java.lang.String nestingLevel) {
this.nestingLevel = nestingLevel;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getPassword}
* @param password The password for the user account you use to access the MongoDB source endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder password(java.lang.String password) {
this.password = password;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getPort}
* @param port The port value for the MongoDB source endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder port(java.lang.Number port) {
this.port = port;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 MongoDB 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the MongoDB endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getServerName}
* @param serverName The name of the server on the MongoDB source endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serverName(java.lang.String serverName) {
this.serverName = serverName;
return this;
}
/**
* Sets the value of {@link MongoDbSettingsProperty#getUsername}
* @param username The user name you use to access the MongoDB source endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder username(java.lang.String username) {
this.username = username;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link MongoDbSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public MongoDbSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link MongoDbSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements MongoDbSettingsProperty {
private final java.lang.String authMechanism;
private final java.lang.String authSource;
private final java.lang.String authType;
private final java.lang.String databaseName;
private final java.lang.String docsToInvestigate;
private final java.lang.String extractDocId;
private final java.lang.String nestingLevel;
private final java.lang.String password;
private final java.lang.Number port;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
private final java.lang.String serverName;
private final java.lang.String username;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.authMechanism = software.amazon.jsii.Kernel.get(this, "authMechanism", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.authSource = software.amazon.jsii.Kernel.get(this, "authSource", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.authType = software.amazon.jsii.Kernel.get(this, "authType", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.databaseName = software.amazon.jsii.Kernel.get(this, "databaseName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.docsToInvestigate = software.amazon.jsii.Kernel.get(this, "docsToInvestigate", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.extractDocId = software.amazon.jsii.Kernel.get(this, "extractDocId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.nestingLevel = software.amazon.jsii.Kernel.get(this, "nestingLevel", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.password = software.amazon.jsii.Kernel.get(this, "password", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.port = software.amazon.jsii.Kernel.get(this, "port", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serverName = software.amazon.jsii.Kernel.get(this, "serverName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.username = software.amazon.jsii.Kernel.get(this, "username", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.authMechanism = builder.authMechanism;
this.authSource = builder.authSource;
this.authType = builder.authType;
this.databaseName = builder.databaseName;
this.docsToInvestigate = builder.docsToInvestigate;
this.extractDocId = builder.extractDocId;
this.nestingLevel = builder.nestingLevel;
this.password = builder.password;
this.port = builder.port;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
this.serverName = builder.serverName;
this.username = builder.username;
}
@Override
public final java.lang.String getAuthMechanism() {
return this.authMechanism;
}
@Override
public final java.lang.String getAuthSource() {
return this.authSource;
}
@Override
public final java.lang.String getAuthType() {
return this.authType;
}
@Override
public final java.lang.String getDatabaseName() {
return this.databaseName;
}
@Override
public final java.lang.String getDocsToInvestigate() {
return this.docsToInvestigate;
}
@Override
public final java.lang.String getExtractDocId() {
return this.extractDocId;
}
@Override
public final java.lang.String getNestingLevel() {
return this.nestingLevel;
}
@Override
public final java.lang.String getPassword() {
return this.password;
}
@Override
public final java.lang.Number getPort() {
return this.port;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
public final java.lang.String getServerName() {
return this.serverName;
}
@Override
public final java.lang.String getUsername() {
return this.username;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAuthMechanism() != null) {
data.set("authMechanism", om.valueToTree(this.getAuthMechanism()));
}
if (this.getAuthSource() != null) {
data.set("authSource", om.valueToTree(this.getAuthSource()));
}
if (this.getAuthType() != null) {
data.set("authType", om.valueToTree(this.getAuthType()));
}
if (this.getDatabaseName() != null) {
data.set("databaseName", om.valueToTree(this.getDatabaseName()));
}
if (this.getDocsToInvestigate() != null) {
data.set("docsToInvestigate", om.valueToTree(this.getDocsToInvestigate()));
}
if (this.getExtractDocId() != null) {
data.set("extractDocId", om.valueToTree(this.getExtractDocId()));
}
if (this.getNestingLevel() != null) {
data.set("nestingLevel", om.valueToTree(this.getNestingLevel()));
}
if (this.getPassword() != null) {
data.set("password", om.valueToTree(this.getPassword()));
}
if (this.getPort() != null) {
data.set("port", om.valueToTree(this.getPort()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
if (this.getServerName() != null) {
data.set("serverName", om.valueToTree(this.getServerName()));
}
if (this.getUsername() != null) {
data.set("username", om.valueToTree(this.getUsername()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.MongoDbSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MongoDbSettingsProperty.Jsii$Proxy that = (MongoDbSettingsProperty.Jsii$Proxy) o;
if (this.authMechanism != null ? !this.authMechanism.equals(that.authMechanism) : that.authMechanism != null) return false;
if (this.authSource != null ? !this.authSource.equals(that.authSource) : that.authSource != null) return false;
if (this.authType != null ? !this.authType.equals(that.authType) : that.authType != null) return false;
if (this.databaseName != null ? !this.databaseName.equals(that.databaseName) : that.databaseName != null) return false;
if (this.docsToInvestigate != null ? !this.docsToInvestigate.equals(that.docsToInvestigate) : that.docsToInvestigate != null) return false;
if (this.extractDocId != null ? !this.extractDocId.equals(that.extractDocId) : that.extractDocId != null) return false;
if (this.nestingLevel != null ? !this.nestingLevel.equals(that.nestingLevel) : that.nestingLevel != null) return false;
if (this.password != null ? !this.password.equals(that.password) : that.password != null) return false;
if (this.port != null ? !this.port.equals(that.port) : that.port != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
if (this.secretsManagerSecretId != null ? !this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId != null) return false;
if (this.serverName != null ? !this.serverName.equals(that.serverName) : that.serverName != null) return false;
return this.username != null ? this.username.equals(that.username) : that.username == null;
}
@Override
public final int hashCode() {
int result = this.authMechanism != null ? this.authMechanism.hashCode() : 0;
result = 31 * result + (this.authSource != null ? this.authSource.hashCode() : 0);
result = 31 * result + (this.authType != null ? this.authType.hashCode() : 0);
result = 31 * result + (this.databaseName != null ? this.databaseName.hashCode() : 0);
result = 31 * result + (this.docsToInvestigate != null ? this.docsToInvestigate.hashCode() : 0);
result = 31 * result + (this.extractDocId != null ? this.extractDocId.hashCode() : 0);
result = 31 * result + (this.nestingLevel != null ? this.nestingLevel.hashCode() : 0);
result = 31 * result + (this.password != null ? this.password.hashCode() : 0);
result = 31 * result + (this.port != null ? this.port.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
result = 31 * result + (this.serverName != null ? this.serverName.hashCode() : 0);
result = 31 * result + (this.username != null ? this.username.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines a MySQL 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 MySQL as a source for AWS DMS and Extra connection attributes when using a MySQL-compatible database as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* MySqlSettingsProperty mySqlSettingsProperty = MySqlSettingsProperty.builder()
* .afterConnectScript("afterConnectScript")
* .cleanSourceMetadataOnMismatch(false)
* .eventsPollInterval(123)
* .maxFileSize(123)
* .parallelLoadThreads(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .serverTimezone("serverTimezone")
* .targetDbType("targetDbType")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.MySqlSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(MySqlSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface MySqlSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* Specifies a script to run immediately after AWS DMS connects to the endpoint.
*
* The migration task continues running regardless if the SQL statement succeeds or fails.
*
* For this parameter, provide the code of the script itself, not the name of a file containing the script.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAfterConnectScript() {
return null;
}
/**
* Cleans and recreates table metadata information on the replication instance when a mismatch occurs.
*
* For example, in a situation where running an alter DDL on the table could result in different information about the table cached in the replication instance.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getCleanSourceMetadataOnMismatch() {
return null;
}
/**
* Specifies how often to check the binary log for new changes/events when the database is idle.
*
* The default is five seconds.
*
* Example: eventsPollInterval=5;
*
* In the example, AWS DMS checks for changes in the binary logs every five seconds.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getEventsPollInterval() {
return null;
}
/**
* Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database.
*
* Example: maxFileSize=512
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMaxFileSize() {
return null;
}
/**
* Improves performance when loading data into the MySQL-compatible target database.
*
* Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. The default is one.
*
* Example: parallelLoadThreads=1
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getParallelLoadThreads() {
return null;
}
/**
* 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 MySQL 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the MySQL endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* Specifies the time zone for the source MySQL database.
*
* Example: serverTimezone=US/Pacific;
*
* Note: Do not enclose time zones in single quotes.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServerTimezone() {
return null;
}
/**
* Specifies where to migrate source tables on the target, either to a single database or multiple databases.
*
* If you specify SPECIFIC_DATABASE
, specify the database name using the DatabaseName
parameter of the Endpoint
object.
*
* Example: targetDbType=MULTIPLE_DATABASES
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getTargetDbType() {
return null;
}
/**
* @return a {@link Builder} of {@link MySqlSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link MySqlSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String afterConnectScript;
java.lang.Object cleanSourceMetadataOnMismatch;
java.lang.Number eventsPollInterval;
java.lang.Number maxFileSize;
java.lang.Number parallelLoadThreads;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
java.lang.String serverTimezone;
java.lang.String targetDbType;
/**
* Sets the value of {@link MySqlSettingsProperty#getAfterConnectScript}
* @param afterConnectScript Specifies a script to run immediately after AWS DMS connects to the endpoint.
* The migration task continues running regardless if the SQL statement succeeds or fails.
*
* For this parameter, provide the code of the script itself, not the name of a file containing the script.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder afterConnectScript(java.lang.String afterConnectScript) {
this.afterConnectScript = afterConnectScript;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getCleanSourceMetadataOnMismatch}
* @param cleanSourceMetadataOnMismatch Cleans and recreates table metadata information on the replication instance when a mismatch occurs.
* For example, in a situation where running an alter DDL on the table could result in different information about the table cached in the replication instance.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cleanSourceMetadataOnMismatch(java.lang.Boolean cleanSourceMetadataOnMismatch) {
this.cleanSourceMetadataOnMismatch = cleanSourceMetadataOnMismatch;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getCleanSourceMetadataOnMismatch}
* @param cleanSourceMetadataOnMismatch Cleans and recreates table metadata information on the replication instance when a mismatch occurs.
* For example, in a situation where running an alter DDL on the table could result in different information about the table cached in the replication instance.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cleanSourceMetadataOnMismatch(software.amazon.awscdk.core.IResolvable cleanSourceMetadataOnMismatch) {
this.cleanSourceMetadataOnMismatch = cleanSourceMetadataOnMismatch;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getEventsPollInterval}
* @param eventsPollInterval Specifies how often to check the binary log for new changes/events when the database is idle.
* The default is five seconds.
*
* Example: eventsPollInterval=5;
*
* In the example, AWS DMS checks for changes in the binary logs every five seconds.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder eventsPollInterval(java.lang.Number eventsPollInterval) {
this.eventsPollInterval = eventsPollInterval;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getMaxFileSize}
* @param maxFileSize Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database.
* Example: maxFileSize=512
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxFileSize(java.lang.Number maxFileSize) {
this.maxFileSize = maxFileSize;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getParallelLoadThreads}
* @param parallelLoadThreads Improves performance when loading data into the MySQL-compatible target database.
* Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. The default is one.
*
* Example: parallelLoadThreads=1
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder parallelLoadThreads(java.lang.Number parallelLoadThreads) {
this.parallelLoadThreads = parallelLoadThreads;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 MySQL 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the MySQL endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getServerTimezone}
* @param serverTimezone Specifies the time zone for the source MySQL database.
* Example: serverTimezone=US/Pacific;
*
* Note: Do not enclose time zones in single quotes.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serverTimezone(java.lang.String serverTimezone) {
this.serverTimezone = serverTimezone;
return this;
}
/**
* Sets the value of {@link MySqlSettingsProperty#getTargetDbType}
* @param targetDbType Specifies where to migrate source tables on the target, either to a single database or multiple databases.
* If you specify SPECIFIC_DATABASE
, specify the database name using the DatabaseName
parameter of the Endpoint
object.
*
* Example: targetDbType=MULTIPLE_DATABASES
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder targetDbType(java.lang.String targetDbType) {
this.targetDbType = targetDbType;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link MySqlSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public MySqlSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link MySqlSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements MySqlSettingsProperty {
private final java.lang.String afterConnectScript;
private final java.lang.Object cleanSourceMetadataOnMismatch;
private final java.lang.Number eventsPollInterval;
private final java.lang.Number maxFileSize;
private final java.lang.Number parallelLoadThreads;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
private final java.lang.String serverTimezone;
private final java.lang.String targetDbType;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.afterConnectScript = software.amazon.jsii.Kernel.get(this, "afterConnectScript", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.cleanSourceMetadataOnMismatch = software.amazon.jsii.Kernel.get(this, "cleanSourceMetadataOnMismatch", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.eventsPollInterval = software.amazon.jsii.Kernel.get(this, "eventsPollInterval", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.maxFileSize = software.amazon.jsii.Kernel.get(this, "maxFileSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.parallelLoadThreads = software.amazon.jsii.Kernel.get(this, "parallelLoadThreads", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serverTimezone = software.amazon.jsii.Kernel.get(this, "serverTimezone", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.targetDbType = software.amazon.jsii.Kernel.get(this, "targetDbType", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.afterConnectScript = builder.afterConnectScript;
this.cleanSourceMetadataOnMismatch = builder.cleanSourceMetadataOnMismatch;
this.eventsPollInterval = builder.eventsPollInterval;
this.maxFileSize = builder.maxFileSize;
this.parallelLoadThreads = builder.parallelLoadThreads;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
this.serverTimezone = builder.serverTimezone;
this.targetDbType = builder.targetDbType;
}
@Override
public final java.lang.String getAfterConnectScript() {
return this.afterConnectScript;
}
@Override
public final java.lang.Object getCleanSourceMetadataOnMismatch() {
return this.cleanSourceMetadataOnMismatch;
}
@Override
public final java.lang.Number getEventsPollInterval() {
return this.eventsPollInterval;
}
@Override
public final java.lang.Number getMaxFileSize() {
return this.maxFileSize;
}
@Override
public final java.lang.Number getParallelLoadThreads() {
return this.parallelLoadThreads;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
public final java.lang.String getServerTimezone() {
return this.serverTimezone;
}
@Override
public final java.lang.String getTargetDbType() {
return this.targetDbType;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAfterConnectScript() != null) {
data.set("afterConnectScript", om.valueToTree(this.getAfterConnectScript()));
}
if (this.getCleanSourceMetadataOnMismatch() != null) {
data.set("cleanSourceMetadataOnMismatch", om.valueToTree(this.getCleanSourceMetadataOnMismatch()));
}
if (this.getEventsPollInterval() != null) {
data.set("eventsPollInterval", om.valueToTree(this.getEventsPollInterval()));
}
if (this.getMaxFileSize() != null) {
data.set("maxFileSize", om.valueToTree(this.getMaxFileSize()));
}
if (this.getParallelLoadThreads() != null) {
data.set("parallelLoadThreads", om.valueToTree(this.getParallelLoadThreads()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
if (this.getServerTimezone() != null) {
data.set("serverTimezone", om.valueToTree(this.getServerTimezone()));
}
if (this.getTargetDbType() != null) {
data.set("targetDbType", om.valueToTree(this.getTargetDbType()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.MySqlSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MySqlSettingsProperty.Jsii$Proxy that = (MySqlSettingsProperty.Jsii$Proxy) o;
if (this.afterConnectScript != null ? !this.afterConnectScript.equals(that.afterConnectScript) : that.afterConnectScript != null) return false;
if (this.cleanSourceMetadataOnMismatch != null ? !this.cleanSourceMetadataOnMismatch.equals(that.cleanSourceMetadataOnMismatch) : that.cleanSourceMetadataOnMismatch != null) return false;
if (this.eventsPollInterval != null ? !this.eventsPollInterval.equals(that.eventsPollInterval) : that.eventsPollInterval != null) return false;
if (this.maxFileSize != null ? !this.maxFileSize.equals(that.maxFileSize) : that.maxFileSize != null) return false;
if (this.parallelLoadThreads != null ? !this.parallelLoadThreads.equals(that.parallelLoadThreads) : that.parallelLoadThreads != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
if (this.secretsManagerSecretId != null ? !this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId != null) return false;
if (this.serverTimezone != null ? !this.serverTimezone.equals(that.serverTimezone) : that.serverTimezone != null) return false;
return this.targetDbType != null ? this.targetDbType.equals(that.targetDbType) : that.targetDbType == null;
}
@Override
public final int hashCode() {
int result = this.afterConnectScript != null ? this.afterConnectScript.hashCode() : 0;
result = 31 * result + (this.cleanSourceMetadataOnMismatch != null ? this.cleanSourceMetadataOnMismatch.hashCode() : 0);
result = 31 * result + (this.eventsPollInterval != null ? this.eventsPollInterval.hashCode() : 0);
result = 31 * result + (this.maxFileSize != null ? this.maxFileSize.hashCode() : 0);
result = 31 * result + (this.parallelLoadThreads != null ? this.parallelLoadThreads.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
result = 31 * result + (this.serverTimezone != null ? this.serverTimezone.hashCode() : 0);
result = 31 * result + (this.targetDbType != null ? this.targetDbType.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines an Amazon Neptune endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about the available settings, see Specifying endpoint settings for Amazon Neptune as a target in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* NeptuneSettingsProperty neptuneSettingsProperty = NeptuneSettingsProperty.builder()
* .errorRetryDuration(123)
* .iamAuthEnabled(false)
* .maxFileSize(123)
* .maxRetryCount(123)
* .s3BucketFolder("s3BucketFolder")
* .s3BucketName("s3BucketName")
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.NeptuneSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(NeptuneSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface NeptuneSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* The number of milliseconds for AWS DMS to wait to retry a bulk-load of migrated graph data to the Neptune target database before raising an error.
*
* The default is 250.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getErrorRetryDuration() {
return null;
}
/**
* If you want IAM authorization enabled for this endpoint, set this parameter to true
.
*
* Then attach the appropriate IAM policy document to your service role specified by ServiceAccessRoleArn
. The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIamAuthEnabled() {
return null;
}
/**
* The maximum size in kilobytes of migrated graph data stored in a .csv file before AWS DMS bulk-loads the data to the Neptune target database. The default is 1,048,576 KB. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMaxFileSize() {
return null;
}
/**
* The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error.
*
* The default is 5.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMaxRetryCount() {
return null;
}
/**
* A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by S3BucketName
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getS3BucketFolder() {
return null;
}
/**
* The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in .csv files before bulk-loading it to the Neptune target database. AWS DMS maps the SQL source data to graph data before storing it in these .csv files.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getS3BucketName() {
return null;
}
/**
* The Amazon Resource Name (ARN) of the service role that you created for the Neptune target endpoint.
*
* The role must allow the iam:PassRole
action.
*
* For more information, see Creating an IAM Service Role for Accessing Amazon Neptune as a Target in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServiceAccessRoleArn() {
return null;
}
/**
* @return a {@link Builder} of {@link NeptuneSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link NeptuneSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Number errorRetryDuration;
java.lang.Object iamAuthEnabled;
java.lang.Number maxFileSize;
java.lang.Number maxRetryCount;
java.lang.String s3BucketFolder;
java.lang.String s3BucketName;
java.lang.String serviceAccessRoleArn;
/**
* Sets the value of {@link NeptuneSettingsProperty#getErrorRetryDuration}
* @param errorRetryDuration The number of milliseconds for AWS DMS to wait to retry a bulk-load of migrated graph data to the Neptune target database before raising an error.
* The default is 250.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder errorRetryDuration(java.lang.Number errorRetryDuration) {
this.errorRetryDuration = errorRetryDuration;
return this;
}
/**
* Sets the value of {@link NeptuneSettingsProperty#getIamAuthEnabled}
* @param iamAuthEnabled If you want IAM authorization enabled for this endpoint, set this parameter to true
.
* Then attach the appropriate IAM policy document to your service role specified by ServiceAccessRoleArn
. The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder iamAuthEnabled(java.lang.Boolean iamAuthEnabled) {
this.iamAuthEnabled = iamAuthEnabled;
return this;
}
/**
* Sets the value of {@link NeptuneSettingsProperty#getIamAuthEnabled}
* @param iamAuthEnabled If you want IAM authorization enabled for this endpoint, set this parameter to true
.
* Then attach the appropriate IAM policy document to your service role specified by ServiceAccessRoleArn
. The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder iamAuthEnabled(software.amazon.awscdk.core.IResolvable iamAuthEnabled) {
this.iamAuthEnabled = iamAuthEnabled;
return this;
}
/**
* Sets the value of {@link NeptuneSettingsProperty#getMaxFileSize}
* @param maxFileSize The maximum size in kilobytes of migrated graph data stored in a .csv file before AWS DMS bulk-loads the data to the Neptune target database. The default is 1,048,576 KB. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxFileSize(java.lang.Number maxFileSize) {
this.maxFileSize = maxFileSize;
return this;
}
/**
* Sets the value of {@link NeptuneSettingsProperty#getMaxRetryCount}
* @param maxRetryCount The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error.
* The default is 5.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxRetryCount(java.lang.Number maxRetryCount) {
this.maxRetryCount = maxRetryCount;
return this;
}
/**
* Sets the value of {@link NeptuneSettingsProperty#getS3BucketFolder}
* @param s3BucketFolder A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by S3BucketName
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder s3BucketFolder(java.lang.String s3BucketFolder) {
this.s3BucketFolder = s3BucketFolder;
return this;
}
/**
* Sets the value of {@link NeptuneSettingsProperty#getS3BucketName}
* @param s3BucketName The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in .csv files before bulk-loading it to the Neptune target database. AWS DMS maps the SQL source data to graph data before storing it in these .csv files.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder s3BucketName(java.lang.String s3BucketName) {
this.s3BucketName = s3BucketName;
return this;
}
/**
* Sets the value of {@link NeptuneSettingsProperty#getServiceAccessRoleArn}
* @param serviceAccessRoleArn The Amazon Resource Name (ARN) of the service role that you created for the Neptune target endpoint.
* The role must allow the iam:PassRole
action.
*
* For more information, see Creating an IAM Service Role for Accessing Amazon Neptune as a Target in the AWS Database Migration Service User Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serviceAccessRoleArn(java.lang.String serviceAccessRoleArn) {
this.serviceAccessRoleArn = serviceAccessRoleArn;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link NeptuneSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public NeptuneSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link NeptuneSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements NeptuneSettingsProperty {
private final java.lang.Number errorRetryDuration;
private final java.lang.Object iamAuthEnabled;
private final java.lang.Number maxFileSize;
private final java.lang.Number maxRetryCount;
private final java.lang.String s3BucketFolder;
private final java.lang.String s3BucketName;
private final java.lang.String serviceAccessRoleArn;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.errorRetryDuration = software.amazon.jsii.Kernel.get(this, "errorRetryDuration", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.iamAuthEnabled = software.amazon.jsii.Kernel.get(this, "iamAuthEnabled", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.maxFileSize = software.amazon.jsii.Kernel.get(this, "maxFileSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.maxRetryCount = software.amazon.jsii.Kernel.get(this, "maxRetryCount", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.s3BucketFolder = software.amazon.jsii.Kernel.get(this, "s3BucketFolder", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.s3BucketName = software.amazon.jsii.Kernel.get(this, "s3BucketName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serviceAccessRoleArn = software.amazon.jsii.Kernel.get(this, "serviceAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.errorRetryDuration = builder.errorRetryDuration;
this.iamAuthEnabled = builder.iamAuthEnabled;
this.maxFileSize = builder.maxFileSize;
this.maxRetryCount = builder.maxRetryCount;
this.s3BucketFolder = builder.s3BucketFolder;
this.s3BucketName = builder.s3BucketName;
this.serviceAccessRoleArn = builder.serviceAccessRoleArn;
}
@Override
public final java.lang.Number getErrorRetryDuration() {
return this.errorRetryDuration;
}
@Override
public final java.lang.Object getIamAuthEnabled() {
return this.iamAuthEnabled;
}
@Override
public final java.lang.Number getMaxFileSize() {
return this.maxFileSize;
}
@Override
public final java.lang.Number getMaxRetryCount() {
return this.maxRetryCount;
}
@Override
public final java.lang.String getS3BucketFolder() {
return this.s3BucketFolder;
}
@Override
public final java.lang.String getS3BucketName() {
return this.s3BucketName;
}
@Override
public final java.lang.String getServiceAccessRoleArn() {
return this.serviceAccessRoleArn;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getErrorRetryDuration() != null) {
data.set("errorRetryDuration", om.valueToTree(this.getErrorRetryDuration()));
}
if (this.getIamAuthEnabled() != null) {
data.set("iamAuthEnabled", om.valueToTree(this.getIamAuthEnabled()));
}
if (this.getMaxFileSize() != null) {
data.set("maxFileSize", om.valueToTree(this.getMaxFileSize()));
}
if (this.getMaxRetryCount() != null) {
data.set("maxRetryCount", om.valueToTree(this.getMaxRetryCount()));
}
if (this.getS3BucketFolder() != null) {
data.set("s3BucketFolder", om.valueToTree(this.getS3BucketFolder()));
}
if (this.getS3BucketName() != null) {
data.set("s3BucketName", om.valueToTree(this.getS3BucketName()));
}
if (this.getServiceAccessRoleArn() != null) {
data.set("serviceAccessRoleArn", om.valueToTree(this.getServiceAccessRoleArn()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.NeptuneSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
NeptuneSettingsProperty.Jsii$Proxy that = (NeptuneSettingsProperty.Jsii$Proxy) o;
if (this.errorRetryDuration != null ? !this.errorRetryDuration.equals(that.errorRetryDuration) : that.errorRetryDuration != null) return false;
if (this.iamAuthEnabled != null ? !this.iamAuthEnabled.equals(that.iamAuthEnabled) : that.iamAuthEnabled != null) return false;
if (this.maxFileSize != null ? !this.maxFileSize.equals(that.maxFileSize) : that.maxFileSize != null) return false;
if (this.maxRetryCount != null ? !this.maxRetryCount.equals(that.maxRetryCount) : that.maxRetryCount != null) return false;
if (this.s3BucketFolder != null ? !this.s3BucketFolder.equals(that.s3BucketFolder) : that.s3BucketFolder != null) return false;
if (this.s3BucketName != null ? !this.s3BucketName.equals(that.s3BucketName) : that.s3BucketName != null) return false;
return this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.equals(that.serviceAccessRoleArn) : that.serviceAccessRoleArn == null;
}
@Override
public final int hashCode() {
int result = this.errorRetryDuration != null ? this.errorRetryDuration.hashCode() : 0;
result = 31 * result + (this.iamAuthEnabled != null ? this.iamAuthEnabled.hashCode() : 0);
result = 31 * result + (this.maxFileSize != null ? this.maxFileSize.hashCode() : 0);
result = 31 * result + (this.maxRetryCount != null ? this.maxRetryCount.hashCode() : 0);
result = 31 * result + (this.s3BucketFolder != null ? this.s3BucketFolder.hashCode() : 0);
result = 31 * result + (this.s3BucketName != null ? this.s3BucketName.hashCode() : 0);
result = 31 * result + (this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines an Oracle 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 Oracle as a source for AWS DMS and Extra connection attributes when using Oracle as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* OracleSettingsProperty oracleSettingsProperty = OracleSettingsProperty.builder()
* .accessAlternateDirectly(false)
* .additionalArchivedLogDestId(123)
* .addSupplementalLogging(false)
* .allowSelectNestedTables(false)
* .archivedLogDestId(123)
* .archivedLogsOnly(false)
* .asmPassword("asmPassword")
* .asmServer("asmServer")
* .asmUser("asmUser")
* .charLengthSemantics("charLengthSemantics")
* .directPathNoLog(false)
* .directPathParallelLoad(false)
* .enableHomogenousTablespace(false)
* .extraArchivedLogDestIds(List.of(123))
* .failTasksOnLobTruncation(false)
* .numberDatatypeScale(123)
* .oraclePathPrefix("oraclePathPrefix")
* .parallelAsmReadThreads(123)
* .readAheadBlocks(123)
* .readTableSpaceName(false)
* .replacePathPrefix(false)
* .retryInterval(123)
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerOracleAsmAccessRoleArn("secretsManagerOracleAsmAccessRoleArn")
* .secretsManagerOracleAsmSecretId("secretsManagerOracleAsmSecretId")
* .secretsManagerSecretId("secretsManagerSecretId")
* .securityDbEncryption("securityDbEncryption")
* .securityDbEncryptionName("securityDbEncryptionName")
* .spatialDataOptionToGeoJsonFunctionName("spatialDataOptionToGeoJsonFunctionName")
* .standbyDelayTime(123)
* .useAlternateFolderForOnline(false)
* .useBFile(false)
* .useDirectPathFullLoad(false)
* .useLogminerReader(false)
* .usePathPrefix("usePathPrefix")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.OracleSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(OracleSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface OracleSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* Set this attribute to false
in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
*
* This tells the DMS instance to not access redo logs through any specified path prefix replacement using direct file access.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getAccessAlternateDirectly() {
return null;
}
/**
* Set this attribute with ArchivedLogDestId
in a primary/ standby setup.
*
* This attribute is useful in the case of a switchover. In this case, AWS DMS needs to know which destination to get archive redo logs from to read changes. This need arises because the previous primary instance is now a standby instance after switchover.
*
* Although AWS DMS supports the use of the Oracle RESETLOGS
option to open the database, never use RESETLOGS
unless necessary. For additional information about RESETLOGS
, see RMAN Data Repair Concepts in the Oracle Database Backup and Recovery User's Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getAdditionalArchivedLogDestId() {
return null;
}
/**
* Set this attribute to set up table-level supplemental logging for the Oracle database.
*
* This attribute enables PRIMARY KEY supplemental logging on all tables selected for a migration task.
*
* If you use this option, you still need to enable database-level supplemental logging.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getAddSupplementalLogging() {
return null;
}
/**
* Set this attribute to true
to enable replication of Oracle tables containing columns that are nested tables or defined types.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getAllowSelectNestedTables() {
return null;
}
/**
* Specifies the ID of the destination for the archived redo logs.
*
* This value should be the same as a number in the dest_id column of the v$archived_log view. If you work with an additional redo log destination, use the AdditionalArchivedLogDestId
option to specify the additional destination ID. Doing this improves performance by ensuring that the correct logs are accessed from the outset.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getArchivedLogDestId() {
return null;
}
/**
* When this field is set to Y
, AWS DMS only accesses the archived redo logs.
*
* If the archived redo logs are stored on Automatic Storage Management (ASM) only, the AWS DMS user account needs to be granted ASM privileges.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getArchivedLogsOnly() {
return null;
}
/**
* For an Oracle source endpoint, your Oracle Automatic Storage Management (ASM) password.
*
* You can set this value from the *asm_user_password*
value. You set this value as part of the comma-separated value that you set to the Password
request parameter when you create the endpoint to access transaction logs using Binary Reader. For more information, see Configuration for change data capture (CDC) on an Oracle source database .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAsmPassword() {
return null;
}
/**
* For an Oracle source endpoint, your ASM server address.
*
* You can set this value from the asm_server
value. You set asm_server
as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see Configuration for change data capture (CDC) on an Oracle source database .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAsmServer() {
return null;
}
/**
* For an Oracle source endpoint, your ASM user name.
*
* You can set this value from the asm_user
value. You set asm_user
as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see Configuration for change data capture (CDC) on an Oracle source database .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAsmUser() {
return null;
}
/**
* Specifies whether the length of a character column is in bytes or in characters.
*
* To indicate that the character column length is in characters, set this attribute to CHAR
. Otherwise, the character column length is in bytes.
*
* Example: charLengthSemantics=CHAR;
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCharLengthSemantics() {
return null;
}
/**
* When set to true
, this attribute helps to increase the commit rate on the Oracle target database by writing directly to tables and not writing a trail to database logs.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getDirectPathNoLog() {
return null;
}
/**
* When set to true
, this attribute specifies a parallel load when useDirectPathFullLoad
is set to Y
.
*
* This attribute also only applies when you use the AWS DMS parallel load feature. Note that the target table cannot have any constraints or indexes.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getDirectPathParallelLoad() {
return null;
}
/**
* Set this attribute to enable homogenous tablespace replication and create existing tables or indexes under the same tablespace on the target.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getEnableHomogenousTablespace() {
return null;
}
/**
* Specifies the IDs of one more destinations for one or more archived redo logs.
*
* These IDs are the values of the dest_id
column in the v$archived_log
view. Use this setting with the archivedLogDestId
extra connection attribute in a primary-to-single setup or a primary-to-multiple-standby setup.
*
* This setting is useful in a switchover when you use an Oracle Data Guard database as a source. In this case, AWS DMS needs information about what destination to get archive redo logs from to read changes. AWS DMS needs this because after the switchover the previous primary is a standby instance. For example, in a primary-to-single standby setup you might apply the following settings.
*
* archivedLogDestId=1; ExtraArchivedLogDestIds=[2]
*
* In a primary-to-multiple-standby setup, you might apply the following settings.
*
* archivedLogDestId=1; ExtraArchivedLogDestIds=[2,3,4]
*
* Although AWS DMS supports the use of the Oracle RESETLOGS
option to open the database, never use RESETLOGS
unless it's necessary. For more information about RESETLOGS
, see RMAN Data Repair Concepts in the Oracle Database Backup and Recovery User's Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getExtraArchivedLogDestIds() {
return null;
}
/**
* When set to true
, this attribute causes a task to fail if the actual size of an LOB column is greater than the specified LobMaxSize
.
*
* If a task is set to limited LOB mode and this option is set to true
, the task fails instead of truncating the LOB data.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getFailTasksOnLobTruncation() {
return null;
}
/**
* Specifies the number scale.
*
* You can select a scale up to 38, or you can select FLOAT. By default, the NUMBER data type is converted to precision 38, scale 10.
*
* Example: numberDataTypeScale=12
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getNumberDatatypeScale() {
return null;
}
/**
* Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
*
* This value specifies the default Oracle root used to access the redo logs.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getOraclePathPrefix() {
return null;
}
/**
* Set this attribute to change the number of threads that DMS configures to perform a change data capture (CDC) load using Oracle Automatic Storage Management (ASM).
*
* You can specify an integer value between 2 (the default) and 8 (the maximum). Use this attribute together with the readAheadBlocks
attribute.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getParallelAsmReadThreads() {
return null;
}
/**
* Set this attribute to change the number of read-ahead blocks that DMS configures to perform a change data capture (CDC) load using Oracle Automatic Storage Management (ASM).
*
* You can specify an integer value between 1000 (the default) and 200,000 (the maximum).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getReadAheadBlocks() {
return null;
}
/**
* When set to true
, this attribute supports tablespace replication.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getReadTableSpaceName() {
return null;
}
/**
* Set this attribute to true in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
*
* This setting tells DMS instance to replace the default Oracle root with the specified usePathPrefix
setting to access the redo logs.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getReplacePathPrefix() {
return null;
}
/**
* Specifies the number of seconds that the system waits before resending a query.
*
* Example: retryInterval=6;
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getRetryInterval() {
return null;
}
/**
* 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 Oracle 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* Required only if your Oracle endpoint uses Advanced Storage Manager (ASM).
*
* The full ARN of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the SecretsManagerOracleAsmSecret
. This SecretsManagerOracleAsmSecret
has the secret value that allows access to the Oracle ASM of the endpoint.
*
*
*
* You can specify one of two sets of values for these permissions. You can specify the values for this setting and SecretsManagerOracleAsmSecretId
. Or you can specify clear-text values for AsmUserName
, AsmPassword
, and AsmServerName
. You can't specify both.
*
* For more information on creating this SecretsManagerOracleAsmSecret
, the corresponding SecretsManagerOracleAsmAccessRoleArn
, and the SecretsManagerOracleAsmSecretId
that is required to access it, see Using secrets to access AWS Database Migration Service resources in the AWS Database Migration Service User Guide .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerOracleAsmAccessRoleArn() {
return null;
}
/**
* Required only if your Oracle endpoint uses Advanced Storage Manager (ASM).
*
* The full ARN, partial ARN, or display name of the SecretsManagerOracleAsmSecret
that contains the Oracle ASM connection details for the Oracle endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerOracleAsmSecretId() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the Oracle endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* For an Oracle source endpoint, the transparent data encryption (TDE) password required by AWM DMS to access Oracle redo logs encrypted by TDE using Binary Reader.
*
* It is also the *TDE_Password*
part of the comma-separated value you set to the Password
request parameter when you create the endpoint. The SecurityDbEncryptian
setting is related to this SecurityDbEncryptionName
setting. For more information, see Supported encryption methods for using Oracle as a source for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecurityDbEncryption() {
return null;
}
/**
* For an Oracle source endpoint, the name of a key used for the transparent data encryption (TDE) of the columns and tablespaces in an Oracle source database that is encrypted using TDE.
*
* The key value is the value of the SecurityDbEncryption
setting. For more information on setting the key name value of SecurityDbEncryptionName
, see the information and example for setting the securityDbEncryptionName
extra connection attribute in Supported encryption methods for using Oracle as a source for AWS DMS in the AWS Database Migration Service User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecurityDbEncryptionName() {
return null;
}
/**
* Use this attribute to convert SDO_GEOMETRY
to GEOJSON
format.
*
* By default, DMS calls the SDO2GEOJSON
custom function if present and accessible. Or you can create your own custom function that mimics the operation of SDOGEOJSON
and set SpatialDataOptionToGeoJsonFunctionName
to call it instead.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSpatialDataOptionToGeoJsonFunctionName() {
return null;
}
/**
* Use this attribute to specify a time in minutes for the delay in standby sync.
*
* If the source is an Oracle Active Data Guard standby database, use this attribute to specify the time lag between primary and standby databases.
*
* In AWS DMS , you can create an Oracle CDC task that uses an Active Data Guard standby instance as a source for replicating ongoing changes. Doing this eliminates the need to connect to an active database that might be in production.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getStandbyDelayTime() {
return null;
}
/**
* Set this attribute to true
in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
*
* This tells the DMS instance to use any specified prefix replacement to access all online redo logs.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getUseAlternateFolderForOnline() {
return null;
}
/**
* Set this attribute to Y to capture change data using the Binary Reader utility.
*
* Set UseLogminerReader
to N to set this attribute to Y. To use Binary Reader with Amazon RDS for Oracle as the source, you set additional attributes. For more information about using this setting with Oracle Automatic Storage Management (ASM), see Using Oracle LogMiner or AWS DMS Binary Reader for CDC .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getUseBFile() {
return null;
}
/**
* Set this attribute to Y to have AWS DMS use a direct path full load.
*
* Specify this value to use the direct path protocol in the Oracle Call Interface (OCI). By using this OCI protocol, you can bulk-load Oracle target tables during a full load.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getUseDirectPathFullLoad() {
return null;
}
/**
* Set this attribute to Y to capture change data using the Oracle LogMiner utility (the default).
*
* Set this attribute to N if you want to access the redo logs as a binary file. When you set UseLogminerReader
to N, also set UseBfile
to Y. For more information on this setting and using Oracle ASM, see Using Oracle LogMiner or AWS DMS Binary Reader for CDC in the AWS DMS User Guide .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getUseLogminerReader() {
return null;
}
/**
* Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
*
* This value specifies the path prefix used to replace the default Oracle root to access the redo logs.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getUsePathPrefix() {
return null;
}
/**
* @return a {@link Builder} of {@link OracleSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link OracleSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Object accessAlternateDirectly;
java.lang.Number additionalArchivedLogDestId;
java.lang.Object addSupplementalLogging;
java.lang.Object allowSelectNestedTables;
java.lang.Number archivedLogDestId;
java.lang.Object archivedLogsOnly;
java.lang.String asmPassword;
java.lang.String asmServer;
java.lang.String asmUser;
java.lang.String charLengthSemantics;
java.lang.Object directPathNoLog;
java.lang.Object directPathParallelLoad;
java.lang.Object enableHomogenousTablespace;
java.lang.Object extraArchivedLogDestIds;
java.lang.Object failTasksOnLobTruncation;
java.lang.Number numberDatatypeScale;
java.lang.String oraclePathPrefix;
java.lang.Number parallelAsmReadThreads;
java.lang.Number readAheadBlocks;
java.lang.Object readTableSpaceName;
java.lang.Object replacePathPrefix;
java.lang.Number retryInterval;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerOracleAsmAccessRoleArn;
java.lang.String secretsManagerOracleAsmSecretId;
java.lang.String secretsManagerSecretId;
java.lang.String securityDbEncryption;
java.lang.String securityDbEncryptionName;
java.lang.String spatialDataOptionToGeoJsonFunctionName;
java.lang.Number standbyDelayTime;
java.lang.Object useAlternateFolderForOnline;
java.lang.Object useBFile;
java.lang.Object useDirectPathFullLoad;
java.lang.Object useLogminerReader;
java.lang.String usePathPrefix;
/**
* Sets the value of {@link OracleSettingsProperty#getAccessAlternateDirectly}
* @param accessAlternateDirectly Set this attribute to false
in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
* This tells the DMS instance to not access redo logs through any specified path prefix replacement using direct file access.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder accessAlternateDirectly(java.lang.Boolean accessAlternateDirectly) {
this.accessAlternateDirectly = accessAlternateDirectly;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAccessAlternateDirectly}
* @param accessAlternateDirectly Set this attribute to false
in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
* This tells the DMS instance to not access redo logs through any specified path prefix replacement using direct file access.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder accessAlternateDirectly(software.amazon.awscdk.core.IResolvable accessAlternateDirectly) {
this.accessAlternateDirectly = accessAlternateDirectly;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAdditionalArchivedLogDestId}
* @param additionalArchivedLogDestId Set this attribute with ArchivedLogDestId
in a primary/ standby setup.
* This attribute is useful in the case of a switchover. In this case, AWS DMS needs to know which destination to get archive redo logs from to read changes. This need arises because the previous primary instance is now a standby instance after switchover.
*
* Although AWS DMS supports the use of the Oracle RESETLOGS
option to open the database, never use RESETLOGS
unless necessary. For additional information about RESETLOGS
, see RMAN Data Repair Concepts in the Oracle Database Backup and Recovery User's Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder additionalArchivedLogDestId(java.lang.Number additionalArchivedLogDestId) {
this.additionalArchivedLogDestId = additionalArchivedLogDestId;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAddSupplementalLogging}
* @param addSupplementalLogging Set this attribute to set up table-level supplemental logging for the Oracle database.
* This attribute enables PRIMARY KEY supplemental logging on all tables selected for a migration task.
*
* If you use this option, you still need to enable database-level supplemental logging.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder addSupplementalLogging(java.lang.Boolean addSupplementalLogging) {
this.addSupplementalLogging = addSupplementalLogging;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAddSupplementalLogging}
* @param addSupplementalLogging Set this attribute to set up table-level supplemental logging for the Oracle database.
* This attribute enables PRIMARY KEY supplemental logging on all tables selected for a migration task.
*
* If you use this option, you still need to enable database-level supplemental logging.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder addSupplementalLogging(software.amazon.awscdk.core.IResolvable addSupplementalLogging) {
this.addSupplementalLogging = addSupplementalLogging;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAllowSelectNestedTables}
* @param allowSelectNestedTables Set this attribute to true
to enable replication of Oracle tables containing columns that are nested tables or defined types.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder allowSelectNestedTables(java.lang.Boolean allowSelectNestedTables) {
this.allowSelectNestedTables = allowSelectNestedTables;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAllowSelectNestedTables}
* @param allowSelectNestedTables Set this attribute to true
to enable replication of Oracle tables containing columns that are nested tables or defined types.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder allowSelectNestedTables(software.amazon.awscdk.core.IResolvable allowSelectNestedTables) {
this.allowSelectNestedTables = allowSelectNestedTables;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getArchivedLogDestId}
* @param archivedLogDestId Specifies the ID of the destination for the archived redo logs.
* This value should be the same as a number in the dest_id column of the v$archived_log view. If you work with an additional redo log destination, use the AdditionalArchivedLogDestId
option to specify the additional destination ID. Doing this improves performance by ensuring that the correct logs are accessed from the outset.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder archivedLogDestId(java.lang.Number archivedLogDestId) {
this.archivedLogDestId = archivedLogDestId;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getArchivedLogsOnly}
* @param archivedLogsOnly When this field is set to Y
, AWS DMS only accesses the archived redo logs.
* If the archived redo logs are stored on Automatic Storage Management (ASM) only, the AWS DMS user account needs to be granted ASM privileges.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder archivedLogsOnly(java.lang.Boolean archivedLogsOnly) {
this.archivedLogsOnly = archivedLogsOnly;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getArchivedLogsOnly}
* @param archivedLogsOnly When this field is set to Y
, AWS DMS only accesses the archived redo logs.
* If the archived redo logs are stored on Automatic Storage Management (ASM) only, the AWS DMS user account needs to be granted ASM privileges.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder archivedLogsOnly(software.amazon.awscdk.core.IResolvable archivedLogsOnly) {
this.archivedLogsOnly = archivedLogsOnly;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAsmPassword}
* @param asmPassword For an Oracle source endpoint, your Oracle Automatic Storage Management (ASM) password.
* You can set this value from the *asm_user_password*
value. You set this value as part of the comma-separated value that you set to the Password
request parameter when you create the endpoint to access transaction logs using Binary Reader. For more information, see Configuration for change data capture (CDC) on an Oracle source database .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder asmPassword(java.lang.String asmPassword) {
this.asmPassword = asmPassword;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAsmServer}
* @param asmServer For an Oracle source endpoint, your ASM server address.
* You can set this value from the asm_server
value. You set asm_server
as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see Configuration for change data capture (CDC) on an Oracle source database .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder asmServer(java.lang.String asmServer) {
this.asmServer = asmServer;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getAsmUser}
* @param asmUser For an Oracle source endpoint, your ASM user name.
* You can set this value from the asm_user
value. You set asm_user
as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see Configuration for change data capture (CDC) on an Oracle source database .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder asmUser(java.lang.String asmUser) {
this.asmUser = asmUser;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getCharLengthSemantics}
* @param charLengthSemantics Specifies whether the length of a character column is in bytes or in characters.
* To indicate that the character column length is in characters, set this attribute to CHAR
. Otherwise, the character column length is in bytes.
*
* Example: charLengthSemantics=CHAR;
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder charLengthSemantics(java.lang.String charLengthSemantics) {
this.charLengthSemantics = charLengthSemantics;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getDirectPathNoLog}
* @param directPathNoLog When set to true
, this attribute helps to increase the commit rate on the Oracle target database by writing directly to tables and not writing a trail to database logs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder directPathNoLog(java.lang.Boolean directPathNoLog) {
this.directPathNoLog = directPathNoLog;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getDirectPathNoLog}
* @param directPathNoLog When set to true
, this attribute helps to increase the commit rate on the Oracle target database by writing directly to tables and not writing a trail to database logs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder directPathNoLog(software.amazon.awscdk.core.IResolvable directPathNoLog) {
this.directPathNoLog = directPathNoLog;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getDirectPathParallelLoad}
* @param directPathParallelLoad When set to true
, this attribute specifies a parallel load when useDirectPathFullLoad
is set to Y
.
* This attribute also only applies when you use the AWS DMS parallel load feature. Note that the target table cannot have any constraints or indexes.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder directPathParallelLoad(java.lang.Boolean directPathParallelLoad) {
this.directPathParallelLoad = directPathParallelLoad;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getDirectPathParallelLoad}
* @param directPathParallelLoad When set to true
, this attribute specifies a parallel load when useDirectPathFullLoad
is set to Y
.
* This attribute also only applies when you use the AWS DMS parallel load feature. Note that the target table cannot have any constraints or indexes.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder directPathParallelLoad(software.amazon.awscdk.core.IResolvable directPathParallelLoad) {
this.directPathParallelLoad = directPathParallelLoad;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getEnableHomogenousTablespace}
* @param enableHomogenousTablespace Set this attribute to enable homogenous tablespace replication and create existing tables or indexes under the same tablespace on the target.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder enableHomogenousTablespace(java.lang.Boolean enableHomogenousTablespace) {
this.enableHomogenousTablespace = enableHomogenousTablespace;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getEnableHomogenousTablespace}
* @param enableHomogenousTablespace Set this attribute to enable homogenous tablespace replication and create existing tables or indexes under the same tablespace on the target.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder enableHomogenousTablespace(software.amazon.awscdk.core.IResolvable enableHomogenousTablespace) {
this.enableHomogenousTablespace = enableHomogenousTablespace;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getExtraArchivedLogDestIds}
* @param extraArchivedLogDestIds Specifies the IDs of one more destinations for one or more archived redo logs.
* These IDs are the values of the dest_id
column in the v$archived_log
view. Use this setting with the archivedLogDestId
extra connection attribute in a primary-to-single setup or a primary-to-multiple-standby setup.
*
* This setting is useful in a switchover when you use an Oracle Data Guard database as a source. In this case, AWS DMS needs information about what destination to get archive redo logs from to read changes. AWS DMS needs this because after the switchover the previous primary is a standby instance. For example, in a primary-to-single standby setup you might apply the following settings.
*
* archivedLogDestId=1; ExtraArchivedLogDestIds=[2]
*
* In a primary-to-multiple-standby setup, you might apply the following settings.
*
* archivedLogDestId=1; ExtraArchivedLogDestIds=[2,3,4]
*
* Although AWS DMS supports the use of the Oracle RESETLOGS
option to open the database, never use RESETLOGS
unless it's necessary. For more information about RESETLOGS
, see RMAN Data Repair Concepts in the Oracle Database Backup and Recovery User's Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder extraArchivedLogDestIds(software.amazon.awscdk.core.IResolvable extraArchivedLogDestIds) {
this.extraArchivedLogDestIds = extraArchivedLogDestIds;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getExtraArchivedLogDestIds}
* @param extraArchivedLogDestIds Specifies the IDs of one more destinations for one or more archived redo logs.
* These IDs are the values of the dest_id
column in the v$archived_log
view. Use this setting with the archivedLogDestId
extra connection attribute in a primary-to-single setup or a primary-to-multiple-standby setup.
*
* This setting is useful in a switchover when you use an Oracle Data Guard database as a source. In this case, AWS DMS needs information about what destination to get archive redo logs from to read changes. AWS DMS needs this because after the switchover the previous primary is a standby instance. For example, in a primary-to-single standby setup you might apply the following settings.
*
* archivedLogDestId=1; ExtraArchivedLogDestIds=[2]
*
* In a primary-to-multiple-standby setup, you might apply the following settings.
*
* archivedLogDestId=1; ExtraArchivedLogDestIds=[2,3,4]
*
* Although AWS DMS supports the use of the Oracle RESETLOGS
option to open the database, never use RESETLOGS
unless it's necessary. For more information about RESETLOGS
, see RMAN Data Repair Concepts in the Oracle Database Backup and Recovery User's Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder extraArchivedLogDestIds(java.util.List extends java.lang.Number> extraArchivedLogDestIds) {
this.extraArchivedLogDestIds = extraArchivedLogDestIds;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getFailTasksOnLobTruncation}
* @param failTasksOnLobTruncation When set to true
, this attribute causes a task to fail if the actual size of an LOB column is greater than the specified LobMaxSize
.
* If a task is set to limited LOB mode and this option is set to true
, the task fails instead of truncating the LOB data.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder failTasksOnLobTruncation(java.lang.Boolean failTasksOnLobTruncation) {
this.failTasksOnLobTruncation = failTasksOnLobTruncation;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getFailTasksOnLobTruncation}
* @param failTasksOnLobTruncation When set to true
, this attribute causes a task to fail if the actual size of an LOB column is greater than the specified LobMaxSize
.
* If a task is set to limited LOB mode and this option is set to true
, the task fails instead of truncating the LOB data.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder failTasksOnLobTruncation(software.amazon.awscdk.core.IResolvable failTasksOnLobTruncation) {
this.failTasksOnLobTruncation = failTasksOnLobTruncation;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getNumberDatatypeScale}
* @param numberDatatypeScale Specifies the number scale.
* You can select a scale up to 38, or you can select FLOAT. By default, the NUMBER data type is converted to precision 38, scale 10.
*
* Example: numberDataTypeScale=12
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder numberDatatypeScale(java.lang.Number numberDatatypeScale) {
this.numberDatatypeScale = numberDatatypeScale;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getOraclePathPrefix}
* @param oraclePathPrefix Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
* This value specifies the default Oracle root used to access the redo logs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder oraclePathPrefix(java.lang.String oraclePathPrefix) {
this.oraclePathPrefix = oraclePathPrefix;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getParallelAsmReadThreads}
* @param parallelAsmReadThreads Set this attribute to change the number of threads that DMS configures to perform a change data capture (CDC) load using Oracle Automatic Storage Management (ASM).
* You can specify an integer value between 2 (the default) and 8 (the maximum). Use this attribute together with the readAheadBlocks
attribute.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder parallelAsmReadThreads(java.lang.Number parallelAsmReadThreads) {
this.parallelAsmReadThreads = parallelAsmReadThreads;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getReadAheadBlocks}
* @param readAheadBlocks Set this attribute to change the number of read-ahead blocks that DMS configures to perform a change data capture (CDC) load using Oracle Automatic Storage Management (ASM).
* You can specify an integer value between 1000 (the default) and 200,000 (the maximum).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder readAheadBlocks(java.lang.Number readAheadBlocks) {
this.readAheadBlocks = readAheadBlocks;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getReadTableSpaceName}
* @param readTableSpaceName When set to true
, this attribute supports tablespace replication.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder readTableSpaceName(java.lang.Boolean readTableSpaceName) {
this.readTableSpaceName = readTableSpaceName;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getReadTableSpaceName}
* @param readTableSpaceName When set to true
, this attribute supports tablespace replication.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder readTableSpaceName(software.amazon.awscdk.core.IResolvable readTableSpaceName) {
this.readTableSpaceName = readTableSpaceName;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getReplacePathPrefix}
* @param replacePathPrefix Set this attribute to true in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
* This setting tells DMS instance to replace the default Oracle root with the specified usePathPrefix
setting to access the redo logs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder replacePathPrefix(java.lang.Boolean replacePathPrefix) {
this.replacePathPrefix = replacePathPrefix;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getReplacePathPrefix}
* @param replacePathPrefix Set this attribute to true in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
* This setting tells DMS instance to replace the default Oracle root with the specified usePathPrefix
setting to access the redo logs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder replacePathPrefix(software.amazon.awscdk.core.IResolvable replacePathPrefix) {
this.replacePathPrefix = replacePathPrefix;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getRetryInterval}
* @param retryInterval Specifies the number of seconds that the system waits before resending a query.
* Example: retryInterval=6;
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder retryInterval(java.lang.Number retryInterval) {
this.retryInterval = retryInterval;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 Oracle 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getSecretsManagerOracleAsmAccessRoleArn}
* @param secretsManagerOracleAsmAccessRoleArn Required only if your Oracle endpoint uses Advanced Storage Manager (ASM).
* The full ARN of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the SecretsManagerOracleAsmSecret
. This SecretsManagerOracleAsmSecret
has the secret value that allows access to the Oracle ASM of the endpoint.
*
*
*
* You can specify one of two sets of values for these permissions. You can specify the values for this setting and SecretsManagerOracleAsmSecretId
. Or you can specify clear-text values for AsmUserName
, AsmPassword
, and AsmServerName
. You can't specify both.
*
* For more information on creating this SecretsManagerOracleAsmSecret
, the corresponding SecretsManagerOracleAsmAccessRoleArn
, and the SecretsManagerOracleAsmSecretId
that is required to access it, see Using secrets to access AWS Database Migration Service resources in the AWS Database Migration Service User Guide .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerOracleAsmAccessRoleArn(java.lang.String secretsManagerOracleAsmAccessRoleArn) {
this.secretsManagerOracleAsmAccessRoleArn = secretsManagerOracleAsmAccessRoleArn;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getSecretsManagerOracleAsmSecretId}
* @param secretsManagerOracleAsmSecretId Required only if your Oracle endpoint uses Advanced Storage Manager (ASM).
* The full ARN, partial ARN, or display name of the SecretsManagerOracleAsmSecret
that contains the Oracle ASM connection details for the Oracle endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerOracleAsmSecretId(java.lang.String secretsManagerOracleAsmSecretId) {
this.secretsManagerOracleAsmSecretId = secretsManagerOracleAsmSecretId;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the Oracle endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getSecurityDbEncryption}
* @param securityDbEncryption For an Oracle source endpoint, the transparent data encryption (TDE) password required by AWM DMS to access Oracle redo logs encrypted by TDE using Binary Reader.
* It is also the *TDE_Password*
part of the comma-separated value you set to the Password
request parameter when you create the endpoint. The SecurityDbEncryptian
setting is related to this SecurityDbEncryptionName
setting. For more information, see Supported encryption methods for using Oracle as a source for AWS DMS in the AWS Database Migration Service User Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder securityDbEncryption(java.lang.String securityDbEncryption) {
this.securityDbEncryption = securityDbEncryption;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getSecurityDbEncryptionName}
* @param securityDbEncryptionName For an Oracle source endpoint, the name of a key used for the transparent data encryption (TDE) of the columns and tablespaces in an Oracle source database that is encrypted using TDE.
* The key value is the value of the SecurityDbEncryption
setting. For more information on setting the key name value of SecurityDbEncryptionName
, see the information and example for setting the securityDbEncryptionName
extra connection attribute in Supported encryption methods for using Oracle as a source for AWS DMS in the AWS Database Migration Service User Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder securityDbEncryptionName(java.lang.String securityDbEncryptionName) {
this.securityDbEncryptionName = securityDbEncryptionName;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getSpatialDataOptionToGeoJsonFunctionName}
* @param spatialDataOptionToGeoJsonFunctionName Use this attribute to convert SDO_GEOMETRY
to GEOJSON
format.
* By default, DMS calls the SDO2GEOJSON
custom function if present and accessible. Or you can create your own custom function that mimics the operation of SDOGEOJSON
and set SpatialDataOptionToGeoJsonFunctionName
to call it instead.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder spatialDataOptionToGeoJsonFunctionName(java.lang.String spatialDataOptionToGeoJsonFunctionName) {
this.spatialDataOptionToGeoJsonFunctionName = spatialDataOptionToGeoJsonFunctionName;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getStandbyDelayTime}
* @param standbyDelayTime Use this attribute to specify a time in minutes for the delay in standby sync.
* If the source is an Oracle Active Data Guard standby database, use this attribute to specify the time lag between primary and standby databases.
*
* In AWS DMS , you can create an Oracle CDC task that uses an Active Data Guard standby instance as a source for replicating ongoing changes. Doing this eliminates the need to connect to an active database that might be in production.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder standbyDelayTime(java.lang.Number standbyDelayTime) {
this.standbyDelayTime = standbyDelayTime;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUseAlternateFolderForOnline}
* @param useAlternateFolderForOnline Set this attribute to true
in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
* This tells the DMS instance to use any specified prefix replacement to access all online redo logs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useAlternateFolderForOnline(java.lang.Boolean useAlternateFolderForOnline) {
this.useAlternateFolderForOnline = useAlternateFolderForOnline;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUseAlternateFolderForOnline}
* @param useAlternateFolderForOnline Set this attribute to true
in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
* This tells the DMS instance to use any specified prefix replacement to access all online redo logs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useAlternateFolderForOnline(software.amazon.awscdk.core.IResolvable useAlternateFolderForOnline) {
this.useAlternateFolderForOnline = useAlternateFolderForOnline;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUseBFile}
* @param useBFile Set this attribute to Y to capture change data using the Binary Reader utility.
* Set UseLogminerReader
to N to set this attribute to Y. To use Binary Reader with Amazon RDS for Oracle as the source, you set additional attributes. For more information about using this setting with Oracle Automatic Storage Management (ASM), see Using Oracle LogMiner or AWS DMS Binary Reader for CDC .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useBFile(java.lang.Boolean useBFile) {
this.useBFile = useBFile;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUseBFile}
* @param useBFile Set this attribute to Y to capture change data using the Binary Reader utility.
* Set UseLogminerReader
to N to set this attribute to Y. To use Binary Reader with Amazon RDS for Oracle as the source, you set additional attributes. For more information about using this setting with Oracle Automatic Storage Management (ASM), see Using Oracle LogMiner or AWS DMS Binary Reader for CDC .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useBFile(software.amazon.awscdk.core.IResolvable useBFile) {
this.useBFile = useBFile;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUseDirectPathFullLoad}
* @param useDirectPathFullLoad Set this attribute to Y to have AWS DMS use a direct path full load.
* Specify this value to use the direct path protocol in the Oracle Call Interface (OCI). By using this OCI protocol, you can bulk-load Oracle target tables during a full load.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useDirectPathFullLoad(java.lang.Boolean useDirectPathFullLoad) {
this.useDirectPathFullLoad = useDirectPathFullLoad;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUseDirectPathFullLoad}
* @param useDirectPathFullLoad Set this attribute to Y to have AWS DMS use a direct path full load.
* Specify this value to use the direct path protocol in the Oracle Call Interface (OCI). By using this OCI protocol, you can bulk-load Oracle target tables during a full load.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useDirectPathFullLoad(software.amazon.awscdk.core.IResolvable useDirectPathFullLoad) {
this.useDirectPathFullLoad = useDirectPathFullLoad;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUseLogminerReader}
* @param useLogminerReader Set this attribute to Y to capture change data using the Oracle LogMiner utility (the default).
* Set this attribute to N if you want to access the redo logs as a binary file. When you set UseLogminerReader
to N, also set UseBfile
to Y. For more information on this setting and using Oracle ASM, see Using Oracle LogMiner or AWS DMS Binary Reader for CDC in the AWS DMS User Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useLogminerReader(java.lang.Boolean useLogminerReader) {
this.useLogminerReader = useLogminerReader;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUseLogminerReader}
* @param useLogminerReader Set this attribute to Y to capture change data using the Oracle LogMiner utility (the default).
* Set this attribute to N if you want to access the redo logs as a binary file. When you set UseLogminerReader
to N, also set UseBfile
to Y. For more information on this setting and using Oracle ASM, see Using Oracle LogMiner or AWS DMS Binary Reader for CDC in the AWS DMS User Guide .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useLogminerReader(software.amazon.awscdk.core.IResolvable useLogminerReader) {
this.useLogminerReader = useLogminerReader;
return this;
}
/**
* Sets the value of {@link OracleSettingsProperty#getUsePathPrefix}
* @param usePathPrefix Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source.
* This value specifies the path prefix used to replace the default Oracle root to access the redo logs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder usePathPrefix(java.lang.String usePathPrefix) {
this.usePathPrefix = usePathPrefix;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link OracleSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public OracleSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link OracleSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements OracleSettingsProperty {
private final java.lang.Object accessAlternateDirectly;
private final java.lang.Number additionalArchivedLogDestId;
private final java.lang.Object addSupplementalLogging;
private final java.lang.Object allowSelectNestedTables;
private final java.lang.Number archivedLogDestId;
private final java.lang.Object archivedLogsOnly;
private final java.lang.String asmPassword;
private final java.lang.String asmServer;
private final java.lang.String asmUser;
private final java.lang.String charLengthSemantics;
private final java.lang.Object directPathNoLog;
private final java.lang.Object directPathParallelLoad;
private final java.lang.Object enableHomogenousTablespace;
private final java.lang.Object extraArchivedLogDestIds;
private final java.lang.Object failTasksOnLobTruncation;
private final java.lang.Number numberDatatypeScale;
private final java.lang.String oraclePathPrefix;
private final java.lang.Number parallelAsmReadThreads;
private final java.lang.Number readAheadBlocks;
private final java.lang.Object readTableSpaceName;
private final java.lang.Object replacePathPrefix;
private final java.lang.Number retryInterval;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerOracleAsmAccessRoleArn;
private final java.lang.String secretsManagerOracleAsmSecretId;
private final java.lang.String secretsManagerSecretId;
private final java.lang.String securityDbEncryption;
private final java.lang.String securityDbEncryptionName;
private final java.lang.String spatialDataOptionToGeoJsonFunctionName;
private final java.lang.Number standbyDelayTime;
private final java.lang.Object useAlternateFolderForOnline;
private final java.lang.Object useBFile;
private final java.lang.Object useDirectPathFullLoad;
private final java.lang.Object useLogminerReader;
private final java.lang.String usePathPrefix;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.accessAlternateDirectly = software.amazon.jsii.Kernel.get(this, "accessAlternateDirectly", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.additionalArchivedLogDestId = software.amazon.jsii.Kernel.get(this, "additionalArchivedLogDestId", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.addSupplementalLogging = software.amazon.jsii.Kernel.get(this, "addSupplementalLogging", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.allowSelectNestedTables = software.amazon.jsii.Kernel.get(this, "allowSelectNestedTables", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.archivedLogDestId = software.amazon.jsii.Kernel.get(this, "archivedLogDestId", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.archivedLogsOnly = software.amazon.jsii.Kernel.get(this, "archivedLogsOnly", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.asmPassword = software.amazon.jsii.Kernel.get(this, "asmPassword", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.asmServer = software.amazon.jsii.Kernel.get(this, "asmServer", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.asmUser = software.amazon.jsii.Kernel.get(this, "asmUser", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.charLengthSemantics = software.amazon.jsii.Kernel.get(this, "charLengthSemantics", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.directPathNoLog = software.amazon.jsii.Kernel.get(this, "directPathNoLog", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.directPathParallelLoad = software.amazon.jsii.Kernel.get(this, "directPathParallelLoad", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.enableHomogenousTablespace = software.amazon.jsii.Kernel.get(this, "enableHomogenousTablespace", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.extraArchivedLogDestIds = software.amazon.jsii.Kernel.get(this, "extraArchivedLogDestIds", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.failTasksOnLobTruncation = software.amazon.jsii.Kernel.get(this, "failTasksOnLobTruncation", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.numberDatatypeScale = software.amazon.jsii.Kernel.get(this, "numberDatatypeScale", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.oraclePathPrefix = software.amazon.jsii.Kernel.get(this, "oraclePathPrefix", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.parallelAsmReadThreads = software.amazon.jsii.Kernel.get(this, "parallelAsmReadThreads", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.readAheadBlocks = software.amazon.jsii.Kernel.get(this, "readAheadBlocks", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.readTableSpaceName = software.amazon.jsii.Kernel.get(this, "readTableSpaceName", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.replacePathPrefix = software.amazon.jsii.Kernel.get(this, "replacePathPrefix", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.retryInterval = software.amazon.jsii.Kernel.get(this, "retryInterval", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerOracleAsmAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerOracleAsmAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerOracleAsmSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerOracleAsmSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.securityDbEncryption = software.amazon.jsii.Kernel.get(this, "securityDbEncryption", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.securityDbEncryptionName = software.amazon.jsii.Kernel.get(this, "securityDbEncryptionName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.spatialDataOptionToGeoJsonFunctionName = software.amazon.jsii.Kernel.get(this, "spatialDataOptionToGeoJsonFunctionName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.standbyDelayTime = software.amazon.jsii.Kernel.get(this, "standbyDelayTime", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.useAlternateFolderForOnline = software.amazon.jsii.Kernel.get(this, "useAlternateFolderForOnline", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.useBFile = software.amazon.jsii.Kernel.get(this, "useBFile", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.useDirectPathFullLoad = software.amazon.jsii.Kernel.get(this, "useDirectPathFullLoad", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.useLogminerReader = software.amazon.jsii.Kernel.get(this, "useLogminerReader", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.usePathPrefix = software.amazon.jsii.Kernel.get(this, "usePathPrefix", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.accessAlternateDirectly = builder.accessAlternateDirectly;
this.additionalArchivedLogDestId = builder.additionalArchivedLogDestId;
this.addSupplementalLogging = builder.addSupplementalLogging;
this.allowSelectNestedTables = builder.allowSelectNestedTables;
this.archivedLogDestId = builder.archivedLogDestId;
this.archivedLogsOnly = builder.archivedLogsOnly;
this.asmPassword = builder.asmPassword;
this.asmServer = builder.asmServer;
this.asmUser = builder.asmUser;
this.charLengthSemantics = builder.charLengthSemantics;
this.directPathNoLog = builder.directPathNoLog;
this.directPathParallelLoad = builder.directPathParallelLoad;
this.enableHomogenousTablespace = builder.enableHomogenousTablespace;
this.extraArchivedLogDestIds = builder.extraArchivedLogDestIds;
this.failTasksOnLobTruncation = builder.failTasksOnLobTruncation;
this.numberDatatypeScale = builder.numberDatatypeScale;
this.oraclePathPrefix = builder.oraclePathPrefix;
this.parallelAsmReadThreads = builder.parallelAsmReadThreads;
this.readAheadBlocks = builder.readAheadBlocks;
this.readTableSpaceName = builder.readTableSpaceName;
this.replacePathPrefix = builder.replacePathPrefix;
this.retryInterval = builder.retryInterval;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerOracleAsmAccessRoleArn = builder.secretsManagerOracleAsmAccessRoleArn;
this.secretsManagerOracleAsmSecretId = builder.secretsManagerOracleAsmSecretId;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
this.securityDbEncryption = builder.securityDbEncryption;
this.securityDbEncryptionName = builder.securityDbEncryptionName;
this.spatialDataOptionToGeoJsonFunctionName = builder.spatialDataOptionToGeoJsonFunctionName;
this.standbyDelayTime = builder.standbyDelayTime;
this.useAlternateFolderForOnline = builder.useAlternateFolderForOnline;
this.useBFile = builder.useBFile;
this.useDirectPathFullLoad = builder.useDirectPathFullLoad;
this.useLogminerReader = builder.useLogminerReader;
this.usePathPrefix = builder.usePathPrefix;
}
@Override
public final java.lang.Object getAccessAlternateDirectly() {
return this.accessAlternateDirectly;
}
@Override
public final java.lang.Number getAdditionalArchivedLogDestId() {
return this.additionalArchivedLogDestId;
}
@Override
public final java.lang.Object getAddSupplementalLogging() {
return this.addSupplementalLogging;
}
@Override
public final java.lang.Object getAllowSelectNestedTables() {
return this.allowSelectNestedTables;
}
@Override
public final java.lang.Number getArchivedLogDestId() {
return this.archivedLogDestId;
}
@Override
public final java.lang.Object getArchivedLogsOnly() {
return this.archivedLogsOnly;
}
@Override
public final java.lang.String getAsmPassword() {
return this.asmPassword;
}
@Override
public final java.lang.String getAsmServer() {
return this.asmServer;
}
@Override
public final java.lang.String getAsmUser() {
return this.asmUser;
}
@Override
public final java.lang.String getCharLengthSemantics() {
return this.charLengthSemantics;
}
@Override
public final java.lang.Object getDirectPathNoLog() {
return this.directPathNoLog;
}
@Override
public final java.lang.Object getDirectPathParallelLoad() {
return this.directPathParallelLoad;
}
@Override
public final java.lang.Object getEnableHomogenousTablespace() {
return this.enableHomogenousTablespace;
}
@Override
public final java.lang.Object getExtraArchivedLogDestIds() {
return this.extraArchivedLogDestIds;
}
@Override
public final java.lang.Object getFailTasksOnLobTruncation() {
return this.failTasksOnLobTruncation;
}
@Override
public final java.lang.Number getNumberDatatypeScale() {
return this.numberDatatypeScale;
}
@Override
public final java.lang.String getOraclePathPrefix() {
return this.oraclePathPrefix;
}
@Override
public final java.lang.Number getParallelAsmReadThreads() {
return this.parallelAsmReadThreads;
}
@Override
public final java.lang.Number getReadAheadBlocks() {
return this.readAheadBlocks;
}
@Override
public final java.lang.Object getReadTableSpaceName() {
return this.readTableSpaceName;
}
@Override
public final java.lang.Object getReplacePathPrefix() {
return this.replacePathPrefix;
}
@Override
public final java.lang.Number getRetryInterval() {
return this.retryInterval;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerOracleAsmAccessRoleArn() {
return this.secretsManagerOracleAsmAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerOracleAsmSecretId() {
return this.secretsManagerOracleAsmSecretId;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
public final java.lang.String getSecurityDbEncryption() {
return this.securityDbEncryption;
}
@Override
public final java.lang.String getSecurityDbEncryptionName() {
return this.securityDbEncryptionName;
}
@Override
public final java.lang.String getSpatialDataOptionToGeoJsonFunctionName() {
return this.spatialDataOptionToGeoJsonFunctionName;
}
@Override
public final java.lang.Number getStandbyDelayTime() {
return this.standbyDelayTime;
}
@Override
public final java.lang.Object getUseAlternateFolderForOnline() {
return this.useAlternateFolderForOnline;
}
@Override
public final java.lang.Object getUseBFile() {
return this.useBFile;
}
@Override
public final java.lang.Object getUseDirectPathFullLoad() {
return this.useDirectPathFullLoad;
}
@Override
public final java.lang.Object getUseLogminerReader() {
return this.useLogminerReader;
}
@Override
public final java.lang.String getUsePathPrefix() {
return this.usePathPrefix;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAccessAlternateDirectly() != null) {
data.set("accessAlternateDirectly", om.valueToTree(this.getAccessAlternateDirectly()));
}
if (this.getAdditionalArchivedLogDestId() != null) {
data.set("additionalArchivedLogDestId", om.valueToTree(this.getAdditionalArchivedLogDestId()));
}
if (this.getAddSupplementalLogging() != null) {
data.set("addSupplementalLogging", om.valueToTree(this.getAddSupplementalLogging()));
}
if (this.getAllowSelectNestedTables() != null) {
data.set("allowSelectNestedTables", om.valueToTree(this.getAllowSelectNestedTables()));
}
if (this.getArchivedLogDestId() != null) {
data.set("archivedLogDestId", om.valueToTree(this.getArchivedLogDestId()));
}
if (this.getArchivedLogsOnly() != null) {
data.set("archivedLogsOnly", om.valueToTree(this.getArchivedLogsOnly()));
}
if (this.getAsmPassword() != null) {
data.set("asmPassword", om.valueToTree(this.getAsmPassword()));
}
if (this.getAsmServer() != null) {
data.set("asmServer", om.valueToTree(this.getAsmServer()));
}
if (this.getAsmUser() != null) {
data.set("asmUser", om.valueToTree(this.getAsmUser()));
}
if (this.getCharLengthSemantics() != null) {
data.set("charLengthSemantics", om.valueToTree(this.getCharLengthSemantics()));
}
if (this.getDirectPathNoLog() != null) {
data.set("directPathNoLog", om.valueToTree(this.getDirectPathNoLog()));
}
if (this.getDirectPathParallelLoad() != null) {
data.set("directPathParallelLoad", om.valueToTree(this.getDirectPathParallelLoad()));
}
if (this.getEnableHomogenousTablespace() != null) {
data.set("enableHomogenousTablespace", om.valueToTree(this.getEnableHomogenousTablespace()));
}
if (this.getExtraArchivedLogDestIds() != null) {
data.set("extraArchivedLogDestIds", om.valueToTree(this.getExtraArchivedLogDestIds()));
}
if (this.getFailTasksOnLobTruncation() != null) {
data.set("failTasksOnLobTruncation", om.valueToTree(this.getFailTasksOnLobTruncation()));
}
if (this.getNumberDatatypeScale() != null) {
data.set("numberDatatypeScale", om.valueToTree(this.getNumberDatatypeScale()));
}
if (this.getOraclePathPrefix() != null) {
data.set("oraclePathPrefix", om.valueToTree(this.getOraclePathPrefix()));
}
if (this.getParallelAsmReadThreads() != null) {
data.set("parallelAsmReadThreads", om.valueToTree(this.getParallelAsmReadThreads()));
}
if (this.getReadAheadBlocks() != null) {
data.set("readAheadBlocks", om.valueToTree(this.getReadAheadBlocks()));
}
if (this.getReadTableSpaceName() != null) {
data.set("readTableSpaceName", om.valueToTree(this.getReadTableSpaceName()));
}
if (this.getReplacePathPrefix() != null) {
data.set("replacePathPrefix", om.valueToTree(this.getReplacePathPrefix()));
}
if (this.getRetryInterval() != null) {
data.set("retryInterval", om.valueToTree(this.getRetryInterval()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerOracleAsmAccessRoleArn() != null) {
data.set("secretsManagerOracleAsmAccessRoleArn", om.valueToTree(this.getSecretsManagerOracleAsmAccessRoleArn()));
}
if (this.getSecretsManagerOracleAsmSecretId() != null) {
data.set("secretsManagerOracleAsmSecretId", om.valueToTree(this.getSecretsManagerOracleAsmSecretId()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
if (this.getSecurityDbEncryption() != null) {
data.set("securityDbEncryption", om.valueToTree(this.getSecurityDbEncryption()));
}
if (this.getSecurityDbEncryptionName() != null) {
data.set("securityDbEncryptionName", om.valueToTree(this.getSecurityDbEncryptionName()));
}
if (this.getSpatialDataOptionToGeoJsonFunctionName() != null) {
data.set("spatialDataOptionToGeoJsonFunctionName", om.valueToTree(this.getSpatialDataOptionToGeoJsonFunctionName()));
}
if (this.getStandbyDelayTime() != null) {
data.set("standbyDelayTime", om.valueToTree(this.getStandbyDelayTime()));
}
if (this.getUseAlternateFolderForOnline() != null) {
data.set("useAlternateFolderForOnline", om.valueToTree(this.getUseAlternateFolderForOnline()));
}
if (this.getUseBFile() != null) {
data.set("useBFile", om.valueToTree(this.getUseBFile()));
}
if (this.getUseDirectPathFullLoad() != null) {
data.set("useDirectPathFullLoad", om.valueToTree(this.getUseDirectPathFullLoad()));
}
if (this.getUseLogminerReader() != null) {
data.set("useLogminerReader", om.valueToTree(this.getUseLogminerReader()));
}
if (this.getUsePathPrefix() != null) {
data.set("usePathPrefix", om.valueToTree(this.getUsePathPrefix()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.OracleSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
OracleSettingsProperty.Jsii$Proxy that = (OracleSettingsProperty.Jsii$Proxy) o;
if (this.accessAlternateDirectly != null ? !this.accessAlternateDirectly.equals(that.accessAlternateDirectly) : that.accessAlternateDirectly != null) return false;
if (this.additionalArchivedLogDestId != null ? !this.additionalArchivedLogDestId.equals(that.additionalArchivedLogDestId) : that.additionalArchivedLogDestId != null) return false;
if (this.addSupplementalLogging != null ? !this.addSupplementalLogging.equals(that.addSupplementalLogging) : that.addSupplementalLogging != null) return false;
if (this.allowSelectNestedTables != null ? !this.allowSelectNestedTables.equals(that.allowSelectNestedTables) : that.allowSelectNestedTables != null) return false;
if (this.archivedLogDestId != null ? !this.archivedLogDestId.equals(that.archivedLogDestId) : that.archivedLogDestId != null) return false;
if (this.archivedLogsOnly != null ? !this.archivedLogsOnly.equals(that.archivedLogsOnly) : that.archivedLogsOnly != null) return false;
if (this.asmPassword != null ? !this.asmPassword.equals(that.asmPassword) : that.asmPassword != null) return false;
if (this.asmServer != null ? !this.asmServer.equals(that.asmServer) : that.asmServer != null) return false;
if (this.asmUser != null ? !this.asmUser.equals(that.asmUser) : that.asmUser != null) return false;
if (this.charLengthSemantics != null ? !this.charLengthSemantics.equals(that.charLengthSemantics) : that.charLengthSemantics != null) return false;
if (this.directPathNoLog != null ? !this.directPathNoLog.equals(that.directPathNoLog) : that.directPathNoLog != null) return false;
if (this.directPathParallelLoad != null ? !this.directPathParallelLoad.equals(that.directPathParallelLoad) : that.directPathParallelLoad != null) return false;
if (this.enableHomogenousTablespace != null ? !this.enableHomogenousTablespace.equals(that.enableHomogenousTablespace) : that.enableHomogenousTablespace != null) return false;
if (this.extraArchivedLogDestIds != null ? !this.extraArchivedLogDestIds.equals(that.extraArchivedLogDestIds) : that.extraArchivedLogDestIds != null) return false;
if (this.failTasksOnLobTruncation != null ? !this.failTasksOnLobTruncation.equals(that.failTasksOnLobTruncation) : that.failTasksOnLobTruncation != null) return false;
if (this.numberDatatypeScale != null ? !this.numberDatatypeScale.equals(that.numberDatatypeScale) : that.numberDatatypeScale != null) return false;
if (this.oraclePathPrefix != null ? !this.oraclePathPrefix.equals(that.oraclePathPrefix) : that.oraclePathPrefix != null) return false;
if (this.parallelAsmReadThreads != null ? !this.parallelAsmReadThreads.equals(that.parallelAsmReadThreads) : that.parallelAsmReadThreads != null) return false;
if (this.readAheadBlocks != null ? !this.readAheadBlocks.equals(that.readAheadBlocks) : that.readAheadBlocks != null) return false;
if (this.readTableSpaceName != null ? !this.readTableSpaceName.equals(that.readTableSpaceName) : that.readTableSpaceName != null) return false;
if (this.replacePathPrefix != null ? !this.replacePathPrefix.equals(that.replacePathPrefix) : that.replacePathPrefix != null) return false;
if (this.retryInterval != null ? !this.retryInterval.equals(that.retryInterval) : that.retryInterval != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
if (this.secretsManagerOracleAsmAccessRoleArn != null ? !this.secretsManagerOracleAsmAccessRoleArn.equals(that.secretsManagerOracleAsmAccessRoleArn) : that.secretsManagerOracleAsmAccessRoleArn != null) return false;
if (this.secretsManagerOracleAsmSecretId != null ? !this.secretsManagerOracleAsmSecretId.equals(that.secretsManagerOracleAsmSecretId) : that.secretsManagerOracleAsmSecretId != null) return false;
if (this.secretsManagerSecretId != null ? !this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId != null) return false;
if (this.securityDbEncryption != null ? !this.securityDbEncryption.equals(that.securityDbEncryption) : that.securityDbEncryption != null) return false;
if (this.securityDbEncryptionName != null ? !this.securityDbEncryptionName.equals(that.securityDbEncryptionName) : that.securityDbEncryptionName != null) return false;
if (this.spatialDataOptionToGeoJsonFunctionName != null ? !this.spatialDataOptionToGeoJsonFunctionName.equals(that.spatialDataOptionToGeoJsonFunctionName) : that.spatialDataOptionToGeoJsonFunctionName != null) return false;
if (this.standbyDelayTime != null ? !this.standbyDelayTime.equals(that.standbyDelayTime) : that.standbyDelayTime != null) return false;
if (this.useAlternateFolderForOnline != null ? !this.useAlternateFolderForOnline.equals(that.useAlternateFolderForOnline) : that.useAlternateFolderForOnline != null) return false;
if (this.useBFile != null ? !this.useBFile.equals(that.useBFile) : that.useBFile != null) return false;
if (this.useDirectPathFullLoad != null ? !this.useDirectPathFullLoad.equals(that.useDirectPathFullLoad) : that.useDirectPathFullLoad != null) return false;
if (this.useLogminerReader != null ? !this.useLogminerReader.equals(that.useLogminerReader) : that.useLogminerReader != null) return false;
return this.usePathPrefix != null ? this.usePathPrefix.equals(that.usePathPrefix) : that.usePathPrefix == null;
}
@Override
public final int hashCode() {
int result = this.accessAlternateDirectly != null ? this.accessAlternateDirectly.hashCode() : 0;
result = 31 * result + (this.additionalArchivedLogDestId != null ? this.additionalArchivedLogDestId.hashCode() : 0);
result = 31 * result + (this.addSupplementalLogging != null ? this.addSupplementalLogging.hashCode() : 0);
result = 31 * result + (this.allowSelectNestedTables != null ? this.allowSelectNestedTables.hashCode() : 0);
result = 31 * result + (this.archivedLogDestId != null ? this.archivedLogDestId.hashCode() : 0);
result = 31 * result + (this.archivedLogsOnly != null ? this.archivedLogsOnly.hashCode() : 0);
result = 31 * result + (this.asmPassword != null ? this.asmPassword.hashCode() : 0);
result = 31 * result + (this.asmServer != null ? this.asmServer.hashCode() : 0);
result = 31 * result + (this.asmUser != null ? this.asmUser.hashCode() : 0);
result = 31 * result + (this.charLengthSemantics != null ? this.charLengthSemantics.hashCode() : 0);
result = 31 * result + (this.directPathNoLog != null ? this.directPathNoLog.hashCode() : 0);
result = 31 * result + (this.directPathParallelLoad != null ? this.directPathParallelLoad.hashCode() : 0);
result = 31 * result + (this.enableHomogenousTablespace != null ? this.enableHomogenousTablespace.hashCode() : 0);
result = 31 * result + (this.extraArchivedLogDestIds != null ? this.extraArchivedLogDestIds.hashCode() : 0);
result = 31 * result + (this.failTasksOnLobTruncation != null ? this.failTasksOnLobTruncation.hashCode() : 0);
result = 31 * result + (this.numberDatatypeScale != null ? this.numberDatatypeScale.hashCode() : 0);
result = 31 * result + (this.oraclePathPrefix != null ? this.oraclePathPrefix.hashCode() : 0);
result = 31 * result + (this.parallelAsmReadThreads != null ? this.parallelAsmReadThreads.hashCode() : 0);
result = 31 * result + (this.readAheadBlocks != null ? this.readAheadBlocks.hashCode() : 0);
result = 31 * result + (this.readTableSpaceName != null ? this.readTableSpaceName.hashCode() : 0);
result = 31 * result + (this.replacePathPrefix != null ? this.replacePathPrefix.hashCode() : 0);
result = 31 * result + (this.retryInterval != null ? this.retryInterval.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerOracleAsmAccessRoleArn != null ? this.secretsManagerOracleAsmAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerOracleAsmSecretId != null ? this.secretsManagerOracleAsmSecretId.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
result = 31 * result + (this.securityDbEncryption != null ? this.securityDbEncryption.hashCode() : 0);
result = 31 * result + (this.securityDbEncryptionName != null ? this.securityDbEncryptionName.hashCode() : 0);
result = 31 * result + (this.spatialDataOptionToGeoJsonFunctionName != null ? this.spatialDataOptionToGeoJsonFunctionName.hashCode() : 0);
result = 31 * result + (this.standbyDelayTime != null ? this.standbyDelayTime.hashCode() : 0);
result = 31 * result + (this.useAlternateFolderForOnline != null ? this.useAlternateFolderForOnline.hashCode() : 0);
result = 31 * result + (this.useBFile != null ? this.useBFile.hashCode() : 0);
result = 31 * result + (this.useDirectPathFullLoad != null ? this.useDirectPathFullLoad.hashCode() : 0);
result = 31 * result + (this.useLogminerReader != null ? this.useLogminerReader.hashCode() : 0);
result = 31 * result + (this.usePathPrefix != null ? this.usePathPrefix.hashCode() : 0);
return result;
}
}
}
/**
* 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 .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* PostgreSqlSettingsProperty postgreSqlSettingsProperty = PostgreSqlSettingsProperty.builder()
* .afterConnectScript("afterConnectScript")
* .captureDdls(false)
* .ddlArtifactsSchema("ddlArtifactsSchema")
* .executeTimeout(123)
* .failTasksOnLobTruncation(false)
* .heartbeatEnable(false)
* .heartbeatFrequency(123)
* .heartbeatSchema("heartbeatSchema")
* .mapBooleanAsBoolean(false)
* .maxFileSize(123)
* .pluginName("pluginName")
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .slotName("slotName")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.PostgreSqlSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(PostgreSqlSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface PostgreSqlSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* 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'
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAfterConnectScript() {
return null;
}
/**
* 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 N
, you don't have to create tables or triggers on the source database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getCaptureDdls() {
return null;
}
/**
* The schema in which the operational DDL database artifacts are created.
*
* Example: ddlArtifactsSchema=xyzddlschema;
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDdlArtifactsSchema() {
return null;
}
/**
* Sets the client statement timeout for the PostgreSQL instance, in seconds. The default value is 60 seconds.
*
* Example: executeTimeout=100;
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getExecuteTimeout() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getFailTasksOnLobTruncation() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getHeartbeatEnable() {
return null;
}
/**
* Sets the WAL heartbeat frequency (in minutes).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getHeartbeatFrequency() {
return null;
}
/**
* Sets the schema in which the heartbeat artifacts are created.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getHeartbeatSchema() {
return null;
}
/**
* CfnEndpoint.PostgreSqlSettingsProperty.MapBooleanAsBoolean
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getMapBooleanAsBoolean() {
return null;
}
/**
* Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL.
*
* Example: maxFileSize=512
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMaxFileSize() {
return null;
}
/**
* Specifies the plugin to use to create a replication slot.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getPluginName() {
return null;
}
/**
* 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the PostgreSQL endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* 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 .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSlotName() {
return null;
}
/**
* @return a {@link Builder} of {@link PostgreSqlSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link PostgreSqlSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String afterConnectScript;
java.lang.Object captureDdls;
java.lang.String ddlArtifactsSchema;
java.lang.Number executeTimeout;
java.lang.Object failTasksOnLobTruncation;
java.lang.Object heartbeatEnable;
java.lang.Number heartbeatFrequency;
java.lang.String heartbeatSchema;
java.lang.Object mapBooleanAsBoolean;
java.lang.Number maxFileSize;
java.lang.String pluginName;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
java.lang.String slotName;
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getAfterConnectScript}
* @param afterConnectScript 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'
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder afterConnectScript(java.lang.String afterConnectScript) {
this.afterConnectScript = afterConnectScript;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getCaptureDdls}
* @param captureDdls 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 N
, you don't have to create tables or triggers on the source database.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder captureDdls(java.lang.Boolean captureDdls) {
this.captureDdls = captureDdls;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getCaptureDdls}
* @param captureDdls 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 N
, you don't have to create tables or triggers on the source database.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder captureDdls(software.amazon.awscdk.core.IResolvable captureDdls) {
this.captureDdls = captureDdls;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getDdlArtifactsSchema}
* @param ddlArtifactsSchema The schema in which the operational DDL database artifacts are created.
* Example: ddlArtifactsSchema=xyzddlschema;
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder ddlArtifactsSchema(java.lang.String ddlArtifactsSchema) {
this.ddlArtifactsSchema = ddlArtifactsSchema;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getExecuteTimeout}
* @param executeTimeout Sets the client statement timeout for the PostgreSQL instance, in seconds. The default value is 60 seconds.
* Example: executeTimeout=100;
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder executeTimeout(java.lang.Number executeTimeout) {
this.executeTimeout = executeTimeout;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getFailTasksOnLobTruncation}
* @param 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder failTasksOnLobTruncation(java.lang.Boolean failTasksOnLobTruncation) {
this.failTasksOnLobTruncation = failTasksOnLobTruncation;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getFailTasksOnLobTruncation}
* @param 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder failTasksOnLobTruncation(software.amazon.awscdk.core.IResolvable failTasksOnLobTruncation) {
this.failTasksOnLobTruncation = failTasksOnLobTruncation;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getHeartbeatEnable}
* @param 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder heartbeatEnable(java.lang.Boolean heartbeatEnable) {
this.heartbeatEnable = heartbeatEnable;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getHeartbeatEnable}
* @param 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder heartbeatEnable(software.amazon.awscdk.core.IResolvable heartbeatEnable) {
this.heartbeatEnable = heartbeatEnable;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getHeartbeatFrequency}
* @param heartbeatFrequency Sets the WAL heartbeat frequency (in minutes).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder heartbeatFrequency(java.lang.Number heartbeatFrequency) {
this.heartbeatFrequency = heartbeatFrequency;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getHeartbeatSchema}
* @param heartbeatSchema Sets the schema in which the heartbeat artifacts are created.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder heartbeatSchema(java.lang.String heartbeatSchema) {
this.heartbeatSchema = heartbeatSchema;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getMapBooleanAsBoolean}
* @param mapBooleanAsBoolean CfnEndpoint.PostgreSqlSettingsProperty.MapBooleanAsBoolean
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mapBooleanAsBoolean(java.lang.Boolean mapBooleanAsBoolean) {
this.mapBooleanAsBoolean = mapBooleanAsBoolean;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getMapBooleanAsBoolean}
* @param mapBooleanAsBoolean CfnEndpoint.PostgreSqlSettingsProperty.MapBooleanAsBoolean
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mapBooleanAsBoolean(software.amazon.awscdk.core.IResolvable mapBooleanAsBoolean) {
this.mapBooleanAsBoolean = mapBooleanAsBoolean;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getMaxFileSize}
* @param maxFileSize Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL.
* Example: maxFileSize=512
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxFileSize(java.lang.Number maxFileSize) {
this.maxFileSize = maxFileSize;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getPluginName}
* @param pluginName Specifies the plugin to use to create a replication slot.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder pluginName(java.lang.String pluginName) {
this.pluginName = pluginName;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the PostgreSQL endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Sets the value of {@link PostgreSqlSettingsProperty#getSlotName}
* @param 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 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 .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder slotName(java.lang.String slotName) {
this.slotName = slotName;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link PostgreSqlSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public PostgreSqlSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link PostgreSqlSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements PostgreSqlSettingsProperty {
private final java.lang.String afterConnectScript;
private final java.lang.Object captureDdls;
private final java.lang.String ddlArtifactsSchema;
private final java.lang.Number executeTimeout;
private final java.lang.Object failTasksOnLobTruncation;
private final java.lang.Object heartbeatEnable;
private final java.lang.Number heartbeatFrequency;
private final java.lang.String heartbeatSchema;
private final java.lang.Object mapBooleanAsBoolean;
private final java.lang.Number maxFileSize;
private final java.lang.String pluginName;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
private final java.lang.String slotName;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.afterConnectScript = software.amazon.jsii.Kernel.get(this, "afterConnectScript", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.captureDdls = software.amazon.jsii.Kernel.get(this, "captureDdls", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.ddlArtifactsSchema = software.amazon.jsii.Kernel.get(this, "ddlArtifactsSchema", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.executeTimeout = software.amazon.jsii.Kernel.get(this, "executeTimeout", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.failTasksOnLobTruncation = software.amazon.jsii.Kernel.get(this, "failTasksOnLobTruncation", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.heartbeatEnable = software.amazon.jsii.Kernel.get(this, "heartbeatEnable", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.heartbeatFrequency = software.amazon.jsii.Kernel.get(this, "heartbeatFrequency", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.heartbeatSchema = software.amazon.jsii.Kernel.get(this, "heartbeatSchema", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.mapBooleanAsBoolean = software.amazon.jsii.Kernel.get(this, "mapBooleanAsBoolean", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.maxFileSize = software.amazon.jsii.Kernel.get(this, "maxFileSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.pluginName = software.amazon.jsii.Kernel.get(this, "pluginName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.slotName = software.amazon.jsii.Kernel.get(this, "slotName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.afterConnectScript = builder.afterConnectScript;
this.captureDdls = builder.captureDdls;
this.ddlArtifactsSchema = builder.ddlArtifactsSchema;
this.executeTimeout = builder.executeTimeout;
this.failTasksOnLobTruncation = builder.failTasksOnLobTruncation;
this.heartbeatEnable = builder.heartbeatEnable;
this.heartbeatFrequency = builder.heartbeatFrequency;
this.heartbeatSchema = builder.heartbeatSchema;
this.mapBooleanAsBoolean = builder.mapBooleanAsBoolean;
this.maxFileSize = builder.maxFileSize;
this.pluginName = builder.pluginName;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
this.slotName = builder.slotName;
}
@Override
public final java.lang.String getAfterConnectScript() {
return this.afterConnectScript;
}
@Override
public final java.lang.Object getCaptureDdls() {
return this.captureDdls;
}
@Override
public final java.lang.String getDdlArtifactsSchema() {
return this.ddlArtifactsSchema;
}
@Override
public final java.lang.Number getExecuteTimeout() {
return this.executeTimeout;
}
@Override
public final java.lang.Object getFailTasksOnLobTruncation() {
return this.failTasksOnLobTruncation;
}
@Override
public final java.lang.Object getHeartbeatEnable() {
return this.heartbeatEnable;
}
@Override
public final java.lang.Number getHeartbeatFrequency() {
return this.heartbeatFrequency;
}
@Override
public final java.lang.String getHeartbeatSchema() {
return this.heartbeatSchema;
}
@Override
public final java.lang.Object getMapBooleanAsBoolean() {
return this.mapBooleanAsBoolean;
}
@Override
public final java.lang.Number getMaxFileSize() {
return this.maxFileSize;
}
@Override
public final java.lang.String getPluginName() {
return this.pluginName;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
public final java.lang.String getSlotName() {
return this.slotName;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAfterConnectScript() != null) {
data.set("afterConnectScript", om.valueToTree(this.getAfterConnectScript()));
}
if (this.getCaptureDdls() != null) {
data.set("captureDdls", om.valueToTree(this.getCaptureDdls()));
}
if (this.getDdlArtifactsSchema() != null) {
data.set("ddlArtifactsSchema", om.valueToTree(this.getDdlArtifactsSchema()));
}
if (this.getExecuteTimeout() != null) {
data.set("executeTimeout", om.valueToTree(this.getExecuteTimeout()));
}
if (this.getFailTasksOnLobTruncation() != null) {
data.set("failTasksOnLobTruncation", om.valueToTree(this.getFailTasksOnLobTruncation()));
}
if (this.getHeartbeatEnable() != null) {
data.set("heartbeatEnable", om.valueToTree(this.getHeartbeatEnable()));
}
if (this.getHeartbeatFrequency() != null) {
data.set("heartbeatFrequency", om.valueToTree(this.getHeartbeatFrequency()));
}
if (this.getHeartbeatSchema() != null) {
data.set("heartbeatSchema", om.valueToTree(this.getHeartbeatSchema()));
}
if (this.getMapBooleanAsBoolean() != null) {
data.set("mapBooleanAsBoolean", om.valueToTree(this.getMapBooleanAsBoolean()));
}
if (this.getMaxFileSize() != null) {
data.set("maxFileSize", om.valueToTree(this.getMaxFileSize()));
}
if (this.getPluginName() != null) {
data.set("pluginName", om.valueToTree(this.getPluginName()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
if (this.getSlotName() != null) {
data.set("slotName", om.valueToTree(this.getSlotName()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.PostgreSqlSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
PostgreSqlSettingsProperty.Jsii$Proxy that = (PostgreSqlSettingsProperty.Jsii$Proxy) o;
if (this.afterConnectScript != null ? !this.afterConnectScript.equals(that.afterConnectScript) : that.afterConnectScript != null) return false;
if (this.captureDdls != null ? !this.captureDdls.equals(that.captureDdls) : that.captureDdls != null) return false;
if (this.ddlArtifactsSchema != null ? !this.ddlArtifactsSchema.equals(that.ddlArtifactsSchema) : that.ddlArtifactsSchema != null) return false;
if (this.executeTimeout != null ? !this.executeTimeout.equals(that.executeTimeout) : that.executeTimeout != null) return false;
if (this.failTasksOnLobTruncation != null ? !this.failTasksOnLobTruncation.equals(that.failTasksOnLobTruncation) : that.failTasksOnLobTruncation != null) return false;
if (this.heartbeatEnable != null ? !this.heartbeatEnable.equals(that.heartbeatEnable) : that.heartbeatEnable != null) return false;
if (this.heartbeatFrequency != null ? !this.heartbeatFrequency.equals(that.heartbeatFrequency) : that.heartbeatFrequency != null) return false;
if (this.heartbeatSchema != null ? !this.heartbeatSchema.equals(that.heartbeatSchema) : that.heartbeatSchema != null) return false;
if (this.mapBooleanAsBoolean != null ? !this.mapBooleanAsBoolean.equals(that.mapBooleanAsBoolean) : that.mapBooleanAsBoolean != null) return false;
if (this.maxFileSize != null ? !this.maxFileSize.equals(that.maxFileSize) : that.maxFileSize != null) return false;
if (this.pluginName != null ? !this.pluginName.equals(that.pluginName) : that.pluginName != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
if (this.secretsManagerSecretId != null ? !this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId != null) return false;
return this.slotName != null ? this.slotName.equals(that.slotName) : that.slotName == null;
}
@Override
public final int hashCode() {
int result = this.afterConnectScript != null ? this.afterConnectScript.hashCode() : 0;
result = 31 * result + (this.captureDdls != null ? this.captureDdls.hashCode() : 0);
result = 31 * result + (this.ddlArtifactsSchema != null ? this.ddlArtifactsSchema.hashCode() : 0);
result = 31 * result + (this.executeTimeout != null ? this.executeTimeout.hashCode() : 0);
result = 31 * result + (this.failTasksOnLobTruncation != null ? this.failTasksOnLobTruncation.hashCode() : 0);
result = 31 * result + (this.heartbeatEnable != null ? this.heartbeatEnable.hashCode() : 0);
result = 31 * result + (this.heartbeatFrequency != null ? this.heartbeatFrequency.hashCode() : 0);
result = 31 * result + (this.heartbeatSchema != null ? this.heartbeatSchema.hashCode() : 0);
result = 31 * result + (this.mapBooleanAsBoolean != null ? this.mapBooleanAsBoolean.hashCode() : 0);
result = 31 * result + (this.maxFileSize != null ? this.maxFileSize.hashCode() : 0);
result = 31 * result + (this.pluginName != null ? this.pluginName.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
result = 31 * result + (this.slotName != null ? this.slotName.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines a Redis target 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 Specifying endpoint settings for Redis as a target in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* RedisSettingsProperty redisSettingsProperty = RedisSettingsProperty.builder()
* .authPassword("authPassword")
* .authType("authType")
* .authUserName("authUserName")
* .port(123)
* .serverName("serverName")
* .sslCaCertificateArn("sslCaCertificateArn")
* .sslSecurityProtocol("sslSecurityProtocol")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.RedisSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(RedisSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface RedisSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* The password provided with the auth-role
and auth-token
options of the AuthType
setting for a Redis target endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAuthPassword() {
return null;
}
/**
* The type of authentication to perform when connecting to a Redis target.
*
* Options include none
, auth-token
, and auth-role
. The auth-token
option requires an AuthPassword
value to be provided. The auth-role
option requires AuthUserName
and AuthPassword
values to be provided.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAuthType() {
return null;
}
/**
* The user name provided with the auth-role
option of the AuthType
setting for a Redis target endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAuthUserName() {
return null;
}
/**
* Transmission Control Protocol (TCP) port for the endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getPort() {
return null;
}
/**
* Fully qualified domain name of the endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServerName() {
return null;
}
/**
* The Amazon Resource Name (ARN) for the certificate authority (CA) that DMS uses to connect to your Redis target endpoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSslCaCertificateArn() {
return null;
}
/**
* The connection to a Redis target endpoint using Transport Layer Security (TLS).
*
* Valid values include plaintext
and ssl-encryption
. The default is ssl-encryption
. The ssl-encryption
option makes an encrypted connection. Optionally, you can identify an Amazon Resource Name (ARN) for an SSL certificate authority (CA) using the SslCaCertificateArn
setting. If an ARN isn't given for a CA, DMS uses the Amazon root CA.
*
* The plaintext
option doesn't provide Transport Layer Security (TLS) encryption for traffic between endpoint and database.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSslSecurityProtocol() {
return null;
}
/**
* @return a {@link Builder} of {@link RedisSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link RedisSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String authPassword;
java.lang.String authType;
java.lang.String authUserName;
java.lang.Number port;
java.lang.String serverName;
java.lang.String sslCaCertificateArn;
java.lang.String sslSecurityProtocol;
/**
* Sets the value of {@link RedisSettingsProperty#getAuthPassword}
* @param authPassword The password provided with the auth-role
and auth-token
options of the AuthType
setting for a Redis target endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder authPassword(java.lang.String authPassword) {
this.authPassword = authPassword;
return this;
}
/**
* Sets the value of {@link RedisSettingsProperty#getAuthType}
* @param authType The type of authentication to perform when connecting to a Redis target.
* Options include none
, auth-token
, and auth-role
. The auth-token
option requires an AuthPassword
value to be provided. The auth-role
option requires AuthUserName
and AuthPassword
values to be provided.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder authType(java.lang.String authType) {
this.authType = authType;
return this;
}
/**
* Sets the value of {@link RedisSettingsProperty#getAuthUserName}
* @param authUserName The user name provided with the auth-role
option of the AuthType
setting for a Redis target endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder authUserName(java.lang.String authUserName) {
this.authUserName = authUserName;
return this;
}
/**
* Sets the value of {@link RedisSettingsProperty#getPort}
* @param port Transmission Control Protocol (TCP) port for the endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder port(java.lang.Number port) {
this.port = port;
return this;
}
/**
* Sets the value of {@link RedisSettingsProperty#getServerName}
* @param serverName Fully qualified domain name of the endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serverName(java.lang.String serverName) {
this.serverName = serverName;
return this;
}
/**
* Sets the value of {@link RedisSettingsProperty#getSslCaCertificateArn}
* @param sslCaCertificateArn The Amazon Resource Name (ARN) for the certificate authority (CA) that DMS uses to connect to your Redis target endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sslCaCertificateArn(java.lang.String sslCaCertificateArn) {
this.sslCaCertificateArn = sslCaCertificateArn;
return this;
}
/**
* Sets the value of {@link RedisSettingsProperty#getSslSecurityProtocol}
* @param sslSecurityProtocol The connection to a Redis target endpoint using Transport Layer Security (TLS).
* Valid values include plaintext
and ssl-encryption
. The default is ssl-encryption
. The ssl-encryption
option makes an encrypted connection. Optionally, you can identify an Amazon Resource Name (ARN) for an SSL certificate authority (CA) using the SslCaCertificateArn
setting. If an ARN isn't given for a CA, DMS uses the Amazon root CA.
*
* The plaintext
option doesn't provide Transport Layer Security (TLS) encryption for traffic between endpoint and database.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sslSecurityProtocol(java.lang.String sslSecurityProtocol) {
this.sslSecurityProtocol = sslSecurityProtocol;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link RedisSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public RedisSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link RedisSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements RedisSettingsProperty {
private final java.lang.String authPassword;
private final java.lang.String authType;
private final java.lang.String authUserName;
private final java.lang.Number port;
private final java.lang.String serverName;
private final java.lang.String sslCaCertificateArn;
private final java.lang.String sslSecurityProtocol;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.authPassword = software.amazon.jsii.Kernel.get(this, "authPassword", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.authType = software.amazon.jsii.Kernel.get(this, "authType", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.authUserName = software.amazon.jsii.Kernel.get(this, "authUserName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.port = software.amazon.jsii.Kernel.get(this, "port", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.serverName = software.amazon.jsii.Kernel.get(this, "serverName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.sslCaCertificateArn = software.amazon.jsii.Kernel.get(this, "sslCaCertificateArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.sslSecurityProtocol = software.amazon.jsii.Kernel.get(this, "sslSecurityProtocol", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.authPassword = builder.authPassword;
this.authType = builder.authType;
this.authUserName = builder.authUserName;
this.port = builder.port;
this.serverName = builder.serverName;
this.sslCaCertificateArn = builder.sslCaCertificateArn;
this.sslSecurityProtocol = builder.sslSecurityProtocol;
}
@Override
public final java.lang.String getAuthPassword() {
return this.authPassword;
}
@Override
public final java.lang.String getAuthType() {
return this.authType;
}
@Override
public final java.lang.String getAuthUserName() {
return this.authUserName;
}
@Override
public final java.lang.Number getPort() {
return this.port;
}
@Override
public final java.lang.String getServerName() {
return this.serverName;
}
@Override
public final java.lang.String getSslCaCertificateArn() {
return this.sslCaCertificateArn;
}
@Override
public final java.lang.String getSslSecurityProtocol() {
return this.sslSecurityProtocol;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAuthPassword() != null) {
data.set("authPassword", om.valueToTree(this.getAuthPassword()));
}
if (this.getAuthType() != null) {
data.set("authType", om.valueToTree(this.getAuthType()));
}
if (this.getAuthUserName() != null) {
data.set("authUserName", om.valueToTree(this.getAuthUserName()));
}
if (this.getPort() != null) {
data.set("port", om.valueToTree(this.getPort()));
}
if (this.getServerName() != null) {
data.set("serverName", om.valueToTree(this.getServerName()));
}
if (this.getSslCaCertificateArn() != null) {
data.set("sslCaCertificateArn", om.valueToTree(this.getSslCaCertificateArn()));
}
if (this.getSslSecurityProtocol() != null) {
data.set("sslSecurityProtocol", om.valueToTree(this.getSslSecurityProtocol()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.RedisSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RedisSettingsProperty.Jsii$Proxy that = (RedisSettingsProperty.Jsii$Proxy) o;
if (this.authPassword != null ? !this.authPassword.equals(that.authPassword) : that.authPassword != null) return false;
if (this.authType != null ? !this.authType.equals(that.authType) : that.authType != null) return false;
if (this.authUserName != null ? !this.authUserName.equals(that.authUserName) : that.authUserName != null) return false;
if (this.port != null ? !this.port.equals(that.port) : that.port != null) return false;
if (this.serverName != null ? !this.serverName.equals(that.serverName) : that.serverName != null) return false;
if (this.sslCaCertificateArn != null ? !this.sslCaCertificateArn.equals(that.sslCaCertificateArn) : that.sslCaCertificateArn != null) return false;
return this.sslSecurityProtocol != null ? this.sslSecurityProtocol.equals(that.sslSecurityProtocol) : that.sslSecurityProtocol == null;
}
@Override
public final int hashCode() {
int result = this.authPassword != null ? this.authPassword.hashCode() : 0;
result = 31 * result + (this.authType != null ? this.authType.hashCode() : 0);
result = 31 * result + (this.authUserName != null ? this.authUserName.hashCode() : 0);
result = 31 * result + (this.port != null ? this.port.hashCode() : 0);
result = 31 * result + (this.serverName != null ? this.serverName.hashCode() : 0);
result = 31 * result + (this.sslCaCertificateArn != null ? this.sslCaCertificateArn.hashCode() : 0);
result = 31 * result + (this.sslSecurityProtocol != null ? this.sslSecurityProtocol.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines an Amazon Redshift endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about other available settings, see Extra connection attributes when using Amazon Redshift as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* RedshiftSettingsProperty redshiftSettingsProperty = RedshiftSettingsProperty.builder()
* .acceptAnyDate(false)
* .afterConnectScript("afterConnectScript")
* .bucketFolder("bucketFolder")
* .bucketName("bucketName")
* .caseSensitiveNames(false)
* .compUpdate(false)
* .connectionTimeout(123)
* .dateFormat("dateFormat")
* .emptyAsNull(false)
* .encryptionMode("encryptionMode")
* .explicitIds(false)
* .fileTransferUploadStreams(123)
* .loadTimeout(123)
* .mapBooleanAsBoolean(false)
* .maxFileSize(123)
* .removeQuotes(false)
* .replaceChars("replaceChars")
* .replaceInvalidChars("replaceInvalidChars")
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .serverSideEncryptionKmsKeyId("serverSideEncryptionKmsKeyId")
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .timeFormat("timeFormat")
* .trimBlanks(false)
* .truncateColumns(false)
* .writeBufferSize(123)
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.RedshiftSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(RedshiftSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface RedshiftSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getAcceptAnyDate() {
return null;
}
/**
* Code to run after connecting.
*
* This parameter should contain the code itself, not the name of a file containing the code.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getAfterConnectScript() {
return null;
}
/**
* An S3 folder where the comma-separated-value (.csv) files are stored before being uploaded to the target Redshift cluster.
*
* For full load mode, AWS DMS converts source records into .csv files and loads them to the BucketFolder/TableID path. AWS 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, AWS DMS creates a NetChanges table, and loads the .csv files to this BucketFolder/NetChangesTableID path.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getBucketFolder() {
return null;
}
/**
* The name of the intermediate S3 bucket used to store .csv files before uploading data to Redshift.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getBucketName() {
return null;
}
/**
* If Amazon Redshift is configured to support case sensitive schema names, set CaseSensitiveNames
to true
.
*
* The default is false
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getCaseSensitiveNames() {
return null;
}
/**
* 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
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getCompUpdate() {
return null;
}
/**
* A value that sets the amount of time to wait (in milliseconds) before timing out, beginning from when you initially establish a connection.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getConnectionTimeout() {
return null;
}
/**
* 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
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDateFormat() {
return null;
}
/**
* A value that specifies whether AWS 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
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getEmptyAsNull() {
return null;
}
/**
* 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 AWS Identity and Access Management (IAM) role with a policy that allows "arn:aws:s3:::*"
to use the following actions: "s3:PutObject", "s3:ListBucket"
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getEncryptionMode() {
return null;
}
/**
* 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
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getExplicitIds() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getFileTransferUploadStreams() {
return null;
}
/**
* The amount of time to wait (in milliseconds) before timing out of operations performed by AWS DMS on a Redshift cluster, such as Redshift COPY, INSERT, DELETE, and UPDATE.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getLoadTimeout() {
return null;
}
/**
* CfnEndpoint.RedshiftSettingsProperty.MapBooleanAsBoolean
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getMapBooleanAsBoolean() {
return null;
}
/**
* 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).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMaxFileSize() {
return null;
}
/**
* 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
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getRemoveQuotes() {
return null;
}
/**
* A value that specifies to replaces the invalid characters specified in ReplaceInvalidChars
, substituting the specified characters instead.
*
* The default is "?"
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getReplaceChars() {
return null;
}
/**
* A list of characters that you want to replace.
*
* Use with ReplaceChars
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getReplaceInvalidChars() {
return null;
}
/**
* 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 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
, 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the Amazon Redshift endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* The AWS 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServerSideEncryptionKmsKeyId() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServiceAccessRoleArn() {
return null;
}
/**
* 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
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getTimeFormat() {
return null;
}
/**
* 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
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getTrimBlanks() {
return null;
}
/**
* 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
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getTruncateColumns() {
return null;
}
/**
* 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).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getWriteBufferSize() {
return null;
}
/**
* @return a {@link Builder} of {@link RedshiftSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link RedshiftSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Object acceptAnyDate;
java.lang.String afterConnectScript;
java.lang.String bucketFolder;
java.lang.String bucketName;
java.lang.Object caseSensitiveNames;
java.lang.Object compUpdate;
java.lang.Number connectionTimeout;
java.lang.String dateFormat;
java.lang.Object emptyAsNull;
java.lang.String encryptionMode;
java.lang.Object explicitIds;
java.lang.Number fileTransferUploadStreams;
java.lang.Number loadTimeout;
java.lang.Object mapBooleanAsBoolean;
java.lang.Number maxFileSize;
java.lang.Object removeQuotes;
java.lang.String replaceChars;
java.lang.String replaceInvalidChars;
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
java.lang.String serverSideEncryptionKmsKeyId;
java.lang.String serviceAccessRoleArn;
java.lang.String timeFormat;
java.lang.Object trimBlanks;
java.lang.Object truncateColumns;
java.lang.Number writeBufferSize;
/**
* Sets the value of {@link RedshiftSettingsProperty#getAcceptAnyDate}
* @param 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder acceptAnyDate(java.lang.Boolean acceptAnyDate) {
this.acceptAnyDate = acceptAnyDate;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getAcceptAnyDate}
* @param 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder acceptAnyDate(software.amazon.awscdk.core.IResolvable acceptAnyDate) {
this.acceptAnyDate = acceptAnyDate;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getAfterConnectScript}
* @param afterConnectScript Code to run after connecting.
* This parameter should contain the code itself, not the name of a file containing the code.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder afterConnectScript(java.lang.String afterConnectScript) {
this.afterConnectScript = afterConnectScript;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getBucketFolder}
* @param 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, AWS DMS converts source records into .csv files and loads them to the BucketFolder/TableID path. AWS 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, AWS DMS creates a NetChanges table, and loads the .csv files to this BucketFolder/NetChangesTableID path.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder bucketFolder(java.lang.String bucketFolder) {
this.bucketFolder = bucketFolder;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getBucketName}
* @param bucketName The name of the intermediate S3 bucket used to store .csv files before uploading data to Redshift.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder bucketName(java.lang.String bucketName) {
this.bucketName = bucketName;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getCaseSensitiveNames}
* @param caseSensitiveNames If Amazon Redshift is configured to support case sensitive schema names, set CaseSensitiveNames
to true
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder caseSensitiveNames(java.lang.Boolean caseSensitiveNames) {
this.caseSensitiveNames = caseSensitiveNames;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getCaseSensitiveNames}
* @param caseSensitiveNames If Amazon Redshift is configured to support case sensitive schema names, set CaseSensitiveNames
to true
.
* The default is false
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder caseSensitiveNames(software.amazon.awscdk.core.IResolvable caseSensitiveNames) {
this.caseSensitiveNames = caseSensitiveNames;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getCompUpdate}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder compUpdate(java.lang.Boolean compUpdate) {
this.compUpdate = compUpdate;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getCompUpdate}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder compUpdate(software.amazon.awscdk.core.IResolvable compUpdate) {
this.compUpdate = compUpdate;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getConnectionTimeout}
* @param connectionTimeout A value that sets the amount of time to wait (in milliseconds) before timing out, beginning from when you initially establish a connection.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder connectionTimeout(java.lang.Number connectionTimeout) {
this.connectionTimeout = connectionTimeout;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getDateFormat}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder dateFormat(java.lang.String dateFormat) {
this.dateFormat = dateFormat;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getEmptyAsNull}
* @param emptyAsNull A value that specifies whether AWS 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 {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder emptyAsNull(java.lang.Boolean emptyAsNull) {
this.emptyAsNull = emptyAsNull;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getEmptyAsNull}
* @param emptyAsNull A value that specifies whether AWS 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 {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder emptyAsNull(software.amazon.awscdk.core.IResolvable emptyAsNull) {
this.emptyAsNull = emptyAsNull;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getEncryptionMode}
* @param 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 AWS Identity and Access Management (IAM) role with a policy that allows "arn:aws:s3:::*"
to use the following actions: "s3:PutObject", "s3:ListBucket"
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder encryptionMode(java.lang.String encryptionMode) {
this.encryptionMode = encryptionMode;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getExplicitIds}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder explicitIds(java.lang.Boolean explicitIds) {
this.explicitIds = explicitIds;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getExplicitIds}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder explicitIds(software.amazon.awscdk.core.IResolvable explicitIds) {
this.explicitIds = explicitIds;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getFileTransferUploadStreams}
* @param 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder fileTransferUploadStreams(java.lang.Number fileTransferUploadStreams) {
this.fileTransferUploadStreams = fileTransferUploadStreams;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getLoadTimeout}
* @param loadTimeout The amount of time to wait (in milliseconds) before timing out of operations performed by AWS DMS on a Redshift cluster, such as Redshift COPY, INSERT, DELETE, and UPDATE.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder loadTimeout(java.lang.Number loadTimeout) {
this.loadTimeout = loadTimeout;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getMapBooleanAsBoolean}
* @param mapBooleanAsBoolean CfnEndpoint.RedshiftSettingsProperty.MapBooleanAsBoolean
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mapBooleanAsBoolean(java.lang.Boolean mapBooleanAsBoolean) {
this.mapBooleanAsBoolean = mapBooleanAsBoolean;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getMapBooleanAsBoolean}
* @param mapBooleanAsBoolean CfnEndpoint.RedshiftSettingsProperty.MapBooleanAsBoolean
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mapBooleanAsBoolean(software.amazon.awscdk.core.IResolvable mapBooleanAsBoolean) {
this.mapBooleanAsBoolean = mapBooleanAsBoolean;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getMaxFileSize}
* @param 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).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxFileSize(java.lang.Number maxFileSize) {
this.maxFileSize = maxFileSize;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getRemoveQuotes}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder removeQuotes(java.lang.Boolean removeQuotes) {
this.removeQuotes = removeQuotes;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getRemoveQuotes}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder removeQuotes(software.amazon.awscdk.core.IResolvable removeQuotes) {
this.removeQuotes = removeQuotes;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getReplaceChars}
* @param replaceChars A value that specifies to replaces the invalid characters specified in ReplaceInvalidChars
, substituting the specified characters instead.
* The default is "?"
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder replaceChars(java.lang.String replaceChars) {
this.replaceChars = replaceChars;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getReplaceInvalidChars}
* @param replaceInvalidChars A list of characters that you want to replace.
* Use with ReplaceChars
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder replaceInvalidChars(java.lang.String replaceInvalidChars) {
this.replaceInvalidChars = replaceInvalidChars;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 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
, 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the Amazon Redshift endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getServerSideEncryptionKmsKeyId}
* @param serverSideEncryptionKmsKeyId The AWS 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 {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serverSideEncryptionKmsKeyId(java.lang.String serverSideEncryptionKmsKeyId) {
this.serverSideEncryptionKmsKeyId = serverSideEncryptionKmsKeyId;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getServiceAccessRoleArn}
* @param 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serviceAccessRoleArn(java.lang.String serviceAccessRoleArn) {
this.serviceAccessRoleArn = serviceAccessRoleArn;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getTimeFormat}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder timeFormat(java.lang.String timeFormat) {
this.timeFormat = timeFormat;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getTrimBlanks}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder trimBlanks(java.lang.Boolean trimBlanks) {
this.trimBlanks = trimBlanks;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getTrimBlanks}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder trimBlanks(software.amazon.awscdk.core.IResolvable trimBlanks) {
this.trimBlanks = trimBlanks;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getTruncateColumns}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder truncateColumns(java.lang.Boolean truncateColumns) {
this.truncateColumns = truncateColumns;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getTruncateColumns}
* @param 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
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder truncateColumns(software.amazon.awscdk.core.IResolvable truncateColumns) {
this.truncateColumns = truncateColumns;
return this;
}
/**
* Sets the value of {@link RedshiftSettingsProperty#getWriteBufferSize}
* @param 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).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder writeBufferSize(java.lang.Number writeBufferSize) {
this.writeBufferSize = writeBufferSize;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link RedshiftSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public RedshiftSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link RedshiftSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements RedshiftSettingsProperty {
private final java.lang.Object acceptAnyDate;
private final java.lang.String afterConnectScript;
private final java.lang.String bucketFolder;
private final java.lang.String bucketName;
private final java.lang.Object caseSensitiveNames;
private final java.lang.Object compUpdate;
private final java.lang.Number connectionTimeout;
private final java.lang.String dateFormat;
private final java.lang.Object emptyAsNull;
private final java.lang.String encryptionMode;
private final java.lang.Object explicitIds;
private final java.lang.Number fileTransferUploadStreams;
private final java.lang.Number loadTimeout;
private final java.lang.Object mapBooleanAsBoolean;
private final java.lang.Number maxFileSize;
private final java.lang.Object removeQuotes;
private final java.lang.String replaceChars;
private final java.lang.String replaceInvalidChars;
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
private final java.lang.String serverSideEncryptionKmsKeyId;
private final java.lang.String serviceAccessRoleArn;
private final java.lang.String timeFormat;
private final java.lang.Object trimBlanks;
private final java.lang.Object truncateColumns;
private final java.lang.Number writeBufferSize;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.acceptAnyDate = software.amazon.jsii.Kernel.get(this, "acceptAnyDate", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.afterConnectScript = software.amazon.jsii.Kernel.get(this, "afterConnectScript", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.bucketFolder = software.amazon.jsii.Kernel.get(this, "bucketFolder", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.bucketName = software.amazon.jsii.Kernel.get(this, "bucketName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.caseSensitiveNames = software.amazon.jsii.Kernel.get(this, "caseSensitiveNames", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.compUpdate = software.amazon.jsii.Kernel.get(this, "compUpdate", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.connectionTimeout = software.amazon.jsii.Kernel.get(this, "connectionTimeout", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.dateFormat = software.amazon.jsii.Kernel.get(this, "dateFormat", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.emptyAsNull = software.amazon.jsii.Kernel.get(this, "emptyAsNull", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.encryptionMode = software.amazon.jsii.Kernel.get(this, "encryptionMode", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.explicitIds = software.amazon.jsii.Kernel.get(this, "explicitIds", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.fileTransferUploadStreams = software.amazon.jsii.Kernel.get(this, "fileTransferUploadStreams", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.loadTimeout = software.amazon.jsii.Kernel.get(this, "loadTimeout", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.mapBooleanAsBoolean = software.amazon.jsii.Kernel.get(this, "mapBooleanAsBoolean", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.maxFileSize = software.amazon.jsii.Kernel.get(this, "maxFileSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.removeQuotes = software.amazon.jsii.Kernel.get(this, "removeQuotes", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.replaceChars = software.amazon.jsii.Kernel.get(this, "replaceChars", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.replaceInvalidChars = software.amazon.jsii.Kernel.get(this, "replaceInvalidChars", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serverSideEncryptionKmsKeyId = software.amazon.jsii.Kernel.get(this, "serverSideEncryptionKmsKeyId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serviceAccessRoleArn = software.amazon.jsii.Kernel.get(this, "serviceAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.timeFormat = software.amazon.jsii.Kernel.get(this, "timeFormat", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.trimBlanks = software.amazon.jsii.Kernel.get(this, "trimBlanks", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.truncateColumns = software.amazon.jsii.Kernel.get(this, "truncateColumns", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.writeBufferSize = software.amazon.jsii.Kernel.get(this, "writeBufferSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.acceptAnyDate = builder.acceptAnyDate;
this.afterConnectScript = builder.afterConnectScript;
this.bucketFolder = builder.bucketFolder;
this.bucketName = builder.bucketName;
this.caseSensitiveNames = builder.caseSensitiveNames;
this.compUpdate = builder.compUpdate;
this.connectionTimeout = builder.connectionTimeout;
this.dateFormat = builder.dateFormat;
this.emptyAsNull = builder.emptyAsNull;
this.encryptionMode = builder.encryptionMode;
this.explicitIds = builder.explicitIds;
this.fileTransferUploadStreams = builder.fileTransferUploadStreams;
this.loadTimeout = builder.loadTimeout;
this.mapBooleanAsBoolean = builder.mapBooleanAsBoolean;
this.maxFileSize = builder.maxFileSize;
this.removeQuotes = builder.removeQuotes;
this.replaceChars = builder.replaceChars;
this.replaceInvalidChars = builder.replaceInvalidChars;
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
this.serverSideEncryptionKmsKeyId = builder.serverSideEncryptionKmsKeyId;
this.serviceAccessRoleArn = builder.serviceAccessRoleArn;
this.timeFormat = builder.timeFormat;
this.trimBlanks = builder.trimBlanks;
this.truncateColumns = builder.truncateColumns;
this.writeBufferSize = builder.writeBufferSize;
}
@Override
public final java.lang.Object getAcceptAnyDate() {
return this.acceptAnyDate;
}
@Override
public final java.lang.String getAfterConnectScript() {
return this.afterConnectScript;
}
@Override
public final java.lang.String getBucketFolder() {
return this.bucketFolder;
}
@Override
public final java.lang.String getBucketName() {
return this.bucketName;
}
@Override
public final java.lang.Object getCaseSensitiveNames() {
return this.caseSensitiveNames;
}
@Override
public final java.lang.Object getCompUpdate() {
return this.compUpdate;
}
@Override
public final java.lang.Number getConnectionTimeout() {
return this.connectionTimeout;
}
@Override
public final java.lang.String getDateFormat() {
return this.dateFormat;
}
@Override
public final java.lang.Object getEmptyAsNull() {
return this.emptyAsNull;
}
@Override
public final java.lang.String getEncryptionMode() {
return this.encryptionMode;
}
@Override
public final java.lang.Object getExplicitIds() {
return this.explicitIds;
}
@Override
public final java.lang.Number getFileTransferUploadStreams() {
return this.fileTransferUploadStreams;
}
@Override
public final java.lang.Number getLoadTimeout() {
return this.loadTimeout;
}
@Override
public final java.lang.Object getMapBooleanAsBoolean() {
return this.mapBooleanAsBoolean;
}
@Override
public final java.lang.Number getMaxFileSize() {
return this.maxFileSize;
}
@Override
public final java.lang.Object getRemoveQuotes() {
return this.removeQuotes;
}
@Override
public final java.lang.String getReplaceChars() {
return this.replaceChars;
}
@Override
public final java.lang.String getReplaceInvalidChars() {
return this.replaceInvalidChars;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
public final java.lang.String getServerSideEncryptionKmsKeyId() {
return this.serverSideEncryptionKmsKeyId;
}
@Override
public final java.lang.String getServiceAccessRoleArn() {
return this.serviceAccessRoleArn;
}
@Override
public final java.lang.String getTimeFormat() {
return this.timeFormat;
}
@Override
public final java.lang.Object getTrimBlanks() {
return this.trimBlanks;
}
@Override
public final java.lang.Object getTruncateColumns() {
return this.truncateColumns;
}
@Override
public final java.lang.Number getWriteBufferSize() {
return this.writeBufferSize;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAcceptAnyDate() != null) {
data.set("acceptAnyDate", om.valueToTree(this.getAcceptAnyDate()));
}
if (this.getAfterConnectScript() != null) {
data.set("afterConnectScript", om.valueToTree(this.getAfterConnectScript()));
}
if (this.getBucketFolder() != null) {
data.set("bucketFolder", om.valueToTree(this.getBucketFolder()));
}
if (this.getBucketName() != null) {
data.set("bucketName", om.valueToTree(this.getBucketName()));
}
if (this.getCaseSensitiveNames() != null) {
data.set("caseSensitiveNames", om.valueToTree(this.getCaseSensitiveNames()));
}
if (this.getCompUpdate() != null) {
data.set("compUpdate", om.valueToTree(this.getCompUpdate()));
}
if (this.getConnectionTimeout() != null) {
data.set("connectionTimeout", om.valueToTree(this.getConnectionTimeout()));
}
if (this.getDateFormat() != null) {
data.set("dateFormat", om.valueToTree(this.getDateFormat()));
}
if (this.getEmptyAsNull() != null) {
data.set("emptyAsNull", om.valueToTree(this.getEmptyAsNull()));
}
if (this.getEncryptionMode() != null) {
data.set("encryptionMode", om.valueToTree(this.getEncryptionMode()));
}
if (this.getExplicitIds() != null) {
data.set("explicitIds", om.valueToTree(this.getExplicitIds()));
}
if (this.getFileTransferUploadStreams() != null) {
data.set("fileTransferUploadStreams", om.valueToTree(this.getFileTransferUploadStreams()));
}
if (this.getLoadTimeout() != null) {
data.set("loadTimeout", om.valueToTree(this.getLoadTimeout()));
}
if (this.getMapBooleanAsBoolean() != null) {
data.set("mapBooleanAsBoolean", om.valueToTree(this.getMapBooleanAsBoolean()));
}
if (this.getMaxFileSize() != null) {
data.set("maxFileSize", om.valueToTree(this.getMaxFileSize()));
}
if (this.getRemoveQuotes() != null) {
data.set("removeQuotes", om.valueToTree(this.getRemoveQuotes()));
}
if (this.getReplaceChars() != null) {
data.set("replaceChars", om.valueToTree(this.getReplaceChars()));
}
if (this.getReplaceInvalidChars() != null) {
data.set("replaceInvalidChars", om.valueToTree(this.getReplaceInvalidChars()));
}
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
if (this.getServerSideEncryptionKmsKeyId() != null) {
data.set("serverSideEncryptionKmsKeyId", om.valueToTree(this.getServerSideEncryptionKmsKeyId()));
}
if (this.getServiceAccessRoleArn() != null) {
data.set("serviceAccessRoleArn", om.valueToTree(this.getServiceAccessRoleArn()));
}
if (this.getTimeFormat() != null) {
data.set("timeFormat", om.valueToTree(this.getTimeFormat()));
}
if (this.getTrimBlanks() != null) {
data.set("trimBlanks", om.valueToTree(this.getTrimBlanks()));
}
if (this.getTruncateColumns() != null) {
data.set("truncateColumns", om.valueToTree(this.getTruncateColumns()));
}
if (this.getWriteBufferSize() != null) {
data.set("writeBufferSize", om.valueToTree(this.getWriteBufferSize()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.RedshiftSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RedshiftSettingsProperty.Jsii$Proxy that = (RedshiftSettingsProperty.Jsii$Proxy) o;
if (this.acceptAnyDate != null ? !this.acceptAnyDate.equals(that.acceptAnyDate) : that.acceptAnyDate != null) return false;
if (this.afterConnectScript != null ? !this.afterConnectScript.equals(that.afterConnectScript) : that.afterConnectScript != null) return false;
if (this.bucketFolder != null ? !this.bucketFolder.equals(that.bucketFolder) : that.bucketFolder != null) return false;
if (this.bucketName != null ? !this.bucketName.equals(that.bucketName) : that.bucketName != null) return false;
if (this.caseSensitiveNames != null ? !this.caseSensitiveNames.equals(that.caseSensitiveNames) : that.caseSensitiveNames != null) return false;
if (this.compUpdate != null ? !this.compUpdate.equals(that.compUpdate) : that.compUpdate != null) return false;
if (this.connectionTimeout != null ? !this.connectionTimeout.equals(that.connectionTimeout) : that.connectionTimeout != null) return false;
if (this.dateFormat != null ? !this.dateFormat.equals(that.dateFormat) : that.dateFormat != null) return false;
if (this.emptyAsNull != null ? !this.emptyAsNull.equals(that.emptyAsNull) : that.emptyAsNull != null) return false;
if (this.encryptionMode != null ? !this.encryptionMode.equals(that.encryptionMode) : that.encryptionMode != null) return false;
if (this.explicitIds != null ? !this.explicitIds.equals(that.explicitIds) : that.explicitIds != null) return false;
if (this.fileTransferUploadStreams != null ? !this.fileTransferUploadStreams.equals(that.fileTransferUploadStreams) : that.fileTransferUploadStreams != null) return false;
if (this.loadTimeout != null ? !this.loadTimeout.equals(that.loadTimeout) : that.loadTimeout != null) return false;
if (this.mapBooleanAsBoolean != null ? !this.mapBooleanAsBoolean.equals(that.mapBooleanAsBoolean) : that.mapBooleanAsBoolean != null) return false;
if (this.maxFileSize != null ? !this.maxFileSize.equals(that.maxFileSize) : that.maxFileSize != null) return false;
if (this.removeQuotes != null ? !this.removeQuotes.equals(that.removeQuotes) : that.removeQuotes != null) return false;
if (this.replaceChars != null ? !this.replaceChars.equals(that.replaceChars) : that.replaceChars != null) return false;
if (this.replaceInvalidChars != null ? !this.replaceInvalidChars.equals(that.replaceInvalidChars) : that.replaceInvalidChars != null) return false;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
if (this.secretsManagerSecretId != null ? !this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId != null) return false;
if (this.serverSideEncryptionKmsKeyId != null ? !this.serverSideEncryptionKmsKeyId.equals(that.serverSideEncryptionKmsKeyId) : that.serverSideEncryptionKmsKeyId != null) return false;
if (this.serviceAccessRoleArn != null ? !this.serviceAccessRoleArn.equals(that.serviceAccessRoleArn) : that.serviceAccessRoleArn != null) return false;
if (this.timeFormat != null ? !this.timeFormat.equals(that.timeFormat) : that.timeFormat != null) return false;
if (this.trimBlanks != null ? !this.trimBlanks.equals(that.trimBlanks) : that.trimBlanks != null) return false;
if (this.truncateColumns != null ? !this.truncateColumns.equals(that.truncateColumns) : that.truncateColumns != null) return false;
return this.writeBufferSize != null ? this.writeBufferSize.equals(that.writeBufferSize) : that.writeBufferSize == null;
}
@Override
public final int hashCode() {
int result = this.acceptAnyDate != null ? this.acceptAnyDate.hashCode() : 0;
result = 31 * result + (this.afterConnectScript != null ? this.afterConnectScript.hashCode() : 0);
result = 31 * result + (this.bucketFolder != null ? this.bucketFolder.hashCode() : 0);
result = 31 * result + (this.bucketName != null ? this.bucketName.hashCode() : 0);
result = 31 * result + (this.caseSensitiveNames != null ? this.caseSensitiveNames.hashCode() : 0);
result = 31 * result + (this.compUpdate != null ? this.compUpdate.hashCode() : 0);
result = 31 * result + (this.connectionTimeout != null ? this.connectionTimeout.hashCode() : 0);
result = 31 * result + (this.dateFormat != null ? this.dateFormat.hashCode() : 0);
result = 31 * result + (this.emptyAsNull != null ? this.emptyAsNull.hashCode() : 0);
result = 31 * result + (this.encryptionMode != null ? this.encryptionMode.hashCode() : 0);
result = 31 * result + (this.explicitIds != null ? this.explicitIds.hashCode() : 0);
result = 31 * result + (this.fileTransferUploadStreams != null ? this.fileTransferUploadStreams.hashCode() : 0);
result = 31 * result + (this.loadTimeout != null ? this.loadTimeout.hashCode() : 0);
result = 31 * result + (this.mapBooleanAsBoolean != null ? this.mapBooleanAsBoolean.hashCode() : 0);
result = 31 * result + (this.maxFileSize != null ? this.maxFileSize.hashCode() : 0);
result = 31 * result + (this.removeQuotes != null ? this.removeQuotes.hashCode() : 0);
result = 31 * result + (this.replaceChars != null ? this.replaceChars.hashCode() : 0);
result = 31 * result + (this.replaceInvalidChars != null ? this.replaceInvalidChars.hashCode() : 0);
result = 31 * result + (this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
result = 31 * result + (this.serverSideEncryptionKmsKeyId != null ? this.serverSideEncryptionKmsKeyId.hashCode() : 0);
result = 31 * result + (this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.timeFormat != null ? this.timeFormat.hashCode() : 0);
result = 31 * result + (this.trimBlanks != null ? this.trimBlanks.hashCode() : 0);
result = 31 * result + (this.truncateColumns != null ? this.truncateColumns.hashCode() : 0);
result = 31 * result + (this.writeBufferSize != null ? this.writeBufferSize.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines an Amazon S3 endpoint.
*
* This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about the available settings, see Extra connection attributes when using Amazon S3 as a source for AWS DMS and Extra connection attributes when using Amazon S3 as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* S3SettingsProperty s3SettingsProperty = S3SettingsProperty.builder()
* .addColumnName(false)
* .bucketFolder("bucketFolder")
* .bucketName("bucketName")
* .cannedAclForObjects("cannedAclForObjects")
* .cdcInsertsAndUpdates(false)
* .cdcInsertsOnly(false)
* .cdcMaxBatchInterval(123)
* .cdcMinFileSize(123)
* .cdcPath("cdcPath")
* .compressionType("compressionType")
* .csvDelimiter("csvDelimiter")
* .csvNoSupValue("csvNoSupValue")
* .csvNullValue("csvNullValue")
* .csvRowDelimiter("csvRowDelimiter")
* .dataFormat("dataFormat")
* .dataPageSize(123)
* .datePartitionDelimiter("datePartitionDelimiter")
* .datePartitionEnabled(false)
* .datePartitionSequence("datePartitionSequence")
* .datePartitionTimezone("datePartitionTimezone")
* .dictPageSizeLimit(123)
* .enableStatistics(false)
* .encodingType("encodingType")
* .encryptionMode("encryptionMode")
* .externalTableDefinition("externalTableDefinition")
* .ignoreHeaderRows(123)
* .includeOpForFullLoad(false)
* .maxFileSize(123)
* .parquetTimestampInMillisecond(false)
* .parquetVersion("parquetVersion")
* .preserveTransactions(false)
* .rfc4180(false)
* .rowGroupLength(123)
* .serverSideEncryptionKmsKeyId("serverSideEncryptionKmsKeyId")
* .serviceAccessRoleArn("serviceAccessRoleArn")
* .timestampColumnName("timestampColumnName")
* .useCsvNoSupValue(false)
* .useTaskStartTimeForFullLoadTimestamp(false)
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.S3SettingsProperty")
@software.amazon.jsii.Jsii.Proxy(S3SettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface S3SettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* An optional parameter that, when set to true
or y
, you can use to add column name information to the .csv output file.
*
* The default value is false
. Valid values are true
, false
, y
, and n
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getAddColumnName() {
return null;
}
/**
* An optional parameter to set a folder name in the S3 bucket.
*
* If provided, tables are created in the path *bucketFolder* / *schema_name* / *table_name* /
. If this parameter isn't specified, the path used is *schema_name* / *table_name* /
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getBucketFolder() {
return null;
}
/**
* The name of the S3 bucket.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getBucketName() {
return null;
}
/**
* A value that enables AWS DMS to specify a predefined (canned) access control list (ACL) for objects created in an Amazon S3 bucket as .csv or .parquet files. For more information about Amazon S3 canned ACLs, see Canned ACL in the Amazon S3 Developer Guide .
*
* The default value is NONE. Valid values include NONE, PRIVATE, PUBLIC_READ, PUBLIC_READ_WRITE, AUTHENTICATED_READ, AWS_EXEC_READ, BUCKET_OWNER_READ, and BUCKET_OWNER_FULL_CONTROL.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCannedAclForObjects() {
return null;
}
/**
* A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is false
, but when CdcInsertsAndUpdates
is set to true
or y
, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.
*
* For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the IncludeOpForFullLoad
parameter. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to either I
or U
to indicate INSERT and UPDATE operations at the source. But if IncludeOpForFullLoad
is set to false
, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
*
* AWS DMS supports the use of the CdcInsertsAndUpdates
parameter in versions 3.3.1 and later.
*
* CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getCdcInsertsAndUpdates() {
return null;
}
/**
* A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the false
setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target.
*
* If CdcInsertsOnly
is set to true
or y
, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of IncludeOpForFullLoad
. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If IncludeOpForFullLoad
is set to false
, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
*
* AWS DMS supports the interaction described preceding between the CdcInsertsOnly
and IncludeOpForFullLoad
parameters in versions 3.1.4 and later.
*
* CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getCdcInsertsOnly() {
return null;
}
/**
* Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3.
*
* When CdcMaxBatchInterval
and CdcMinFileSize
are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template.
*
* The default value is 60 seconds.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getCdcMaxBatchInterval() {
return null;
}
/**
* Minimum file size, defined in kilobytes, to reach for a file output to Amazon S3.
*
* When CdcMinFileSize
and CdcMaxBatchInterval
are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template.
*
* The default value is 32 MB.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getCdcMinFileSize() {
return null;
}
/**
* Specifies the folder path of CDC files.
*
* For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If CdcPath
is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set PreserveTransactions
to true
, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by BucketFolder
and BucketName
.
*
* For example, if you specify CdcPath
as MyChangedData
, and you specify BucketName
as MyTargetBucket
but do not specify BucketFolder
, AWS DMS creates the CDC folder path following: MyTargetBucket/MyChangedData
.
*
* If you specify the same CdcPath
, and you specify BucketName
as MyTargetBucket
and BucketFolder
as MyTargetData
, AWS DMS creates the CDC folder path following: MyTargetBucket/MyTargetData/MyChangedData
.
*
* For more information on CDC including transaction order on an S3 target, see Capturing data changes (CDC) including transaction order on the S3 target .
*
*
*
* This setting is supported in AWS DMS versions 3.4.2 and later.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCdcPath() {
return null;
}
/**
* An optional parameter.
*
* When set to GZIP it enables the service to compress the target files. To allow the service to write the target files uncompressed, either set this parameter to NONE (the default) or don't specify the parameter at all. This parameter applies to both .csv and .parquet file formats.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCompressionType() {
return null;
}
/**
* The delimiter used to separate columns in the .csv file for both source and target. The default is a comma.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCsvDelimiter() {
return null;
}
/**
* This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If UseCsvNoSupValue
is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the UseCsvNoSupValue
setting.
*
*
*
* This setting is supported in AWS DMS versions 3.4.1 and later.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCsvNoSupValue() {
return null;
}
/**
* An optional parameter that specifies how AWS DMS treats null values.
*
* While handling the null value, you can use this parameter to pass a user-defined string as null when writing to the target. For example, when target columns are not nullable, you can use this option to differentiate between the empty string value and the null value. So, if you set this parameter value to the empty string ("" or ''), AWS DMS treats the empty string as the null value instead of NULL
.
*
* The default value is NULL
. Valid values include any valid string.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCsvNullValue() {
return null;
}
/**
* The delimiter used to separate rows in the .csv file for both source and target.
*
* The default is a carriage return ( \n
).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getCsvRowDelimiter() {
return null;
}
/**
* The format of the data that you want to use for output. You can choose one of the following:.
*
*
* csv
: This is a row-based file format with comma-separated values (.csv).
* parquet
: Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDataFormat() {
return null;
}
/**
* The size of one data page in bytes.
*
* This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getDataPageSize() {
return null;
}
/**
* Specifies a date separating delimiter to use during folder partitioning.
*
* The default value is SLASH
. Use this parameter when DatePartitionedEnabled
is set to true
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDatePartitionDelimiter() {
return null;
}
/**
* When set to true
, this parameter partitions S3 bucket folders based on transaction commit dates.
*
* The default value is false
. For more information about date-based folder partitioning, see Using date-based folder partitioning .
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getDatePartitionEnabled() {
return null;
}
/**
* Identifies the sequence of the date format to use during folder partitioning.
*
* The default value is YYYYMMDD
. Use this parameter when DatePartitionedEnabled
is set to true
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDatePartitionSequence() {
return null;
}
/**
* When creating an S3 target endpoint, set DatePartitionTimezone
to convert the current UTC time into a specified time zone.
*
* The conversion occurs when a date partition folder is created and a change data capture (CDC) file name is generated. The time zone format is Area/Location. Use this parameter when DatePartitionedEnabled
is set to true
, as shown in the following example.
*
* s3-settings='{"DatePartitionEnabled": true, "DatePartitionSequence": "YYYYMMDDHH", "DatePartitionDelimiter": "SLASH", "DatePartitionTimezone":" *Asia/Seoul* ", "BucketName": "dms-nattarat-test"}'
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getDatePartitionTimezone() {
return null;
}
/**
* The maximum size of an encoded dictionary page of a column.
*
* If the dictionary page exceeds this, this column is stored using an encoding type of PLAIN
. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to PLAIN
encoding. This size is used for .parquet file format only.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getDictPageSizeLimit() {
return null;
}
/**
* A value that enables statistics for Parquet pages and row groups.
*
* Choose true
to enable statistics, false
to disable. Statistics include NULL
, DISTINCT
, MAX
, and MIN
values. This parameter defaults to true
. This value is used for .parquet file format only.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getEnableStatistics() {
return null;
}
/**
* The type of encoding that you're using:.
*
*
* RLE_DICTIONARY
uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default.
* PLAIN
doesn't use encoding at all. Values are stored as they are.
* PLAIN_DICTIONARY
builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk.
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getEncodingType() {
return null;
}
/**
* 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
, you need an IAM role with permission to allow "arn:aws:s3:::dms-*"
to use the following actions:
*
*
* s3:CreateBucket
* s3:ListBucket
* s3:DeleteBucket
* s3:GetBucketLocation
* s3:GetObject
* s3:PutObject
* s3:DeleteObject
* s3:GetObjectVersion
* s3:GetBucketPolicy
* s3:PutBucketPolicy
* s3:DeleteBucketPolicy
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getEncryptionMode() {
return null;
}
/**
* The external table definition.
*
* Conditional: If S3
is used as a source then ExternalTableDefinition
is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getExternalTableDefinition() {
return null;
}
/**
* When this value is set to 1, AWS DMS ignores the first row header in a .csv file. A value of 1 turns on the feature; a value of 0 turns off the feature.
*
* The default is 0.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getIgnoreHeaderRows() {
return null;
}
/**
* A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database.
*
*
*
* AWS DMS supports the IncludeOpForFullLoad
parameter in versions 3.1.4 and later.
*
*
*
* For full load, records can only be inserted. By default (the false
setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad
is set to true
or y
, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load.
*
*
*
* This setting works together with the CdcInsertsOnly
and the CdcInsertsAndUpdates
parameters for output to .csv files only. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getIncludeOpForFullLoad() {
return null;
}
/**
* A value that specifies the maximum size (in KB) of any .csv file to be created while migrating to an S3 target during full load.
*
* The default value is 1,048,576 KB (1 GB). Valid values include 1 to 1,048,576.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMaxFileSize() {
return null;
}
/**
* A value that specifies the precision of any TIMESTAMP
column values that are written to an Amazon S3 object file in .parquet format.
*
*
*
* AWS DMS supports the ParquetTimestampInMillisecond
parameter in versions 3.1.4 and later.
*
*
*
* When ParquetTimestampInMillisecond
is set to true
or y
, AWS DMS writes all TIMESTAMP
columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision.
*
* Currently, Amazon Athena and AWS Glue can handle only millisecond precision for TIMESTAMP
values. Set this parameter to true
for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue .
*
*
*
* AWS DMS writes any TIMESTAMP
column values written to an S3 file in .csv format with microsecond precision.
*
* Setting ParquetTimestampInMillisecond
has no effect on the string format of the timestamp column value that is inserted by setting the TimestampColumnName
parameter.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getParquetTimestampInMillisecond() {
return null;
}
/**
* The version of the Apache Parquet format that you want to use: parquet_1_0
(the default) or parquet_2_0
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getParquetVersion() {
return null;
}
/**
* If this setting is set to true
, AWS DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by CdcPath
. For more information, see Capturing data changes (CDC) including transaction order on the S3 target .
*
*
*
* This setting is supported in AWS DMS versions 3.4.2 and later.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getPreserveTransactions() {
return null;
}
/**
* For an S3 source, when this value is set to true
or y
, each leading double quotation mark has to be followed by an ending double quotation mark.
*
* This formatting complies with RFC 4180. When this value is set to false
or n
, string literals are copied to the target as is. In this case, a delimiter (row or column) signals the end of the field. Thus, you can't use a delimiter as part of the string, because it signals the end of the value.
*
* For an S3 target, an optional parameter used to set behavior to comply with RFC 4180 for data migrated to Amazon S3 using .csv file format only. When this value is set to true
or y
using Amazon S3 as a target, if the data has quotation marks or newline characters in it, AWS DMS encloses the entire column with an additional pair of double quotation marks ("). Every quotation mark within the data is repeated twice.
*
* The default value is true
. Valid values include true
, false
, y
, and n
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getRfc4180() {
return null;
}
/**
* The number of rows in a row group.
*
* A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.
*
* If you choose a value larger than the maximum, RowGroupLength
is set to the max row group length in bytes (64 * 1024 * 1024).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getRowGroupLength() {
return null;
}
/**
* If you are using SSE_KMS
for the EncryptionMode
, provide the AWS KMS key ID.
*
* The key that you use needs an attached policy that enables IAM user permissions and allows use of the key.
*
* Here is a CLI example: aws dms create-endpoint --endpoint-identifier *value* --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn= *value* ,BucketFolder= *value* ,BucketName= *value* ,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId= *value*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServerSideEncryptionKmsKeyId() {
return null;
}
/**
* A required parameter that specifies the Amazon Resource Name (ARN) used by the service to access the IAM role.
*
* The role must allow the iam:PassRole
action. It enables AWS DMS to read and write objects from an S3 bucket.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getServiceAccessRoleArn() {
return null;
}
/**
* A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target.
*
*
*
* AWS DMS supports the TimestampColumnName
parameter in versions 3.1.4 and later.
*
*
*
* AWS DMS includes an additional STRING
column in the .csv or .parquet object files of your migrated data when you set TimestampColumnName
to a nonblank value.
*
* For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.
*
* For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database.
*
* The string format for this timestamp column value is yyyy-MM-dd HH:mm:ss.SSSSSS
. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database.
*
* When the AddColumnName
parameter is set to true
, DMS also includes a name for the timestamp column that you set with TimestampColumnName
.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getTimestampColumnName() {
return null;
}
/**
* This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If this setting is set to true
for columns not included in the supplemental log, AWS DMS uses the value specified by CsvNoSupValue
. If this setting isn't set or is set to false
, AWS DMS uses the null value for these columns.
*
*
*
* This setting is supported in AWS DMS versions 3.4.1 and later.
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getUseCsvNoSupValue() {
return null;
}
/**
* When set to true, this parameter uses the task start time as the timestamp column value instead of the time data is written to target.
*
* For full load, when useTaskStartTimeForFullLoadTimestamp
is set to true
, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.
*
* When useTaskStartTimeForFullLoadTimestamp
is set to false
, the full load timestamp in the timestamp column increments with the time data arrives at the target.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Object getUseTaskStartTimeForFullLoadTimestamp() {
return null;
}
/**
* @return a {@link Builder} of {@link S3SettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link S3SettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Object addColumnName;
java.lang.String bucketFolder;
java.lang.String bucketName;
java.lang.String cannedAclForObjects;
java.lang.Object cdcInsertsAndUpdates;
java.lang.Object cdcInsertsOnly;
java.lang.Number cdcMaxBatchInterval;
java.lang.Number cdcMinFileSize;
java.lang.String cdcPath;
java.lang.String compressionType;
java.lang.String csvDelimiter;
java.lang.String csvNoSupValue;
java.lang.String csvNullValue;
java.lang.String csvRowDelimiter;
java.lang.String dataFormat;
java.lang.Number dataPageSize;
java.lang.String datePartitionDelimiter;
java.lang.Object datePartitionEnabled;
java.lang.String datePartitionSequence;
java.lang.String datePartitionTimezone;
java.lang.Number dictPageSizeLimit;
java.lang.Object enableStatistics;
java.lang.String encodingType;
java.lang.String encryptionMode;
java.lang.String externalTableDefinition;
java.lang.Number ignoreHeaderRows;
java.lang.Object includeOpForFullLoad;
java.lang.Number maxFileSize;
java.lang.Object parquetTimestampInMillisecond;
java.lang.String parquetVersion;
java.lang.Object preserveTransactions;
java.lang.Object rfc4180;
java.lang.Number rowGroupLength;
java.lang.String serverSideEncryptionKmsKeyId;
java.lang.String serviceAccessRoleArn;
java.lang.String timestampColumnName;
java.lang.Object useCsvNoSupValue;
java.lang.Object useTaskStartTimeForFullLoadTimestamp;
/**
* Sets the value of {@link S3SettingsProperty#getAddColumnName}
* @param addColumnName An optional parameter that, when set to true
or y
, you can use to add column name information to the .csv output file.
* The default value is false
. Valid values are true
, false
, y
, and n
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder addColumnName(java.lang.Boolean addColumnName) {
this.addColumnName = addColumnName;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getAddColumnName}
* @param addColumnName An optional parameter that, when set to true
or y
, you can use to add column name information to the .csv output file.
* The default value is false
. Valid values are true
, false
, y
, and n
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder addColumnName(software.amazon.awscdk.core.IResolvable addColumnName) {
this.addColumnName = addColumnName;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getBucketFolder}
* @param bucketFolder An optional parameter to set a folder name in the S3 bucket.
* If provided, tables are created in the path *bucketFolder* / *schema_name* / *table_name* /
. If this parameter isn't specified, the path used is *schema_name* / *table_name* /
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder bucketFolder(java.lang.String bucketFolder) {
this.bucketFolder = bucketFolder;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getBucketName}
* @param bucketName The name of the S3 bucket.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder bucketName(java.lang.String bucketName) {
this.bucketName = bucketName;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCannedAclForObjects}
* @param cannedAclForObjects A value that enables AWS DMS to specify a predefined (canned) access control list (ACL) for objects created in an Amazon S3 bucket as .csv or .parquet files. For more information about Amazon S3 canned ACLs, see Canned ACL in the Amazon S3 Developer Guide .
* The default value is NONE. Valid values include NONE, PRIVATE, PUBLIC_READ, PUBLIC_READ_WRITE, AUTHENTICATED_READ, AWS_EXEC_READ, BUCKET_OWNER_READ, and BUCKET_OWNER_FULL_CONTROL.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cannedAclForObjects(java.lang.String cannedAclForObjects) {
this.cannedAclForObjects = cannedAclForObjects;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCdcInsertsAndUpdates}
* @param cdcInsertsAndUpdates A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is false
, but when CdcInsertsAndUpdates
is set to true
or y
, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.
* For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the IncludeOpForFullLoad
parameter. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to either I
or U
to indicate INSERT and UPDATE operations at the source. But if IncludeOpForFullLoad
is set to false
, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
*
* AWS DMS supports the use of the CdcInsertsAndUpdates
parameter in versions 3.3.1 and later.
*
* CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cdcInsertsAndUpdates(java.lang.Boolean cdcInsertsAndUpdates) {
this.cdcInsertsAndUpdates = cdcInsertsAndUpdates;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCdcInsertsAndUpdates}
* @param cdcInsertsAndUpdates A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is false
, but when CdcInsertsAndUpdates
is set to true
or y
, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.
* For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the IncludeOpForFullLoad
parameter. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to either I
or U
to indicate INSERT and UPDATE operations at the source. But if IncludeOpForFullLoad
is set to false
, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
*
* AWS DMS supports the use of the CdcInsertsAndUpdates
parameter in versions 3.3.1 and later.
*
* CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cdcInsertsAndUpdates(software.amazon.awscdk.core.IResolvable cdcInsertsAndUpdates) {
this.cdcInsertsAndUpdates = cdcInsertsAndUpdates;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCdcInsertsOnly}
* @param cdcInsertsOnly A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the false
setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target.
* If CdcInsertsOnly
is set to true
or y
, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of IncludeOpForFullLoad
. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If IncludeOpForFullLoad
is set to false
, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
*
* AWS DMS supports the interaction described preceding between the CdcInsertsOnly
and IncludeOpForFullLoad
parameters in versions 3.1.4 and later.
*
* CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cdcInsertsOnly(java.lang.Boolean cdcInsertsOnly) {
this.cdcInsertsOnly = cdcInsertsOnly;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCdcInsertsOnly}
* @param cdcInsertsOnly A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the false
setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target.
* If CdcInsertsOnly
is set to true
or y
, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of IncludeOpForFullLoad
. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If IncludeOpForFullLoad
is set to false
, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
*
* AWS DMS supports the interaction described preceding between the CdcInsertsOnly
and IncludeOpForFullLoad
parameters in versions 3.1.4 and later.
*
* CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cdcInsertsOnly(software.amazon.awscdk.core.IResolvable cdcInsertsOnly) {
this.cdcInsertsOnly = cdcInsertsOnly;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCdcMaxBatchInterval}
* @param cdcMaxBatchInterval Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3.
* When CdcMaxBatchInterval
and CdcMinFileSize
are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template.
*
* The default value is 60 seconds.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cdcMaxBatchInterval(java.lang.Number cdcMaxBatchInterval) {
this.cdcMaxBatchInterval = cdcMaxBatchInterval;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCdcMinFileSize}
* @param cdcMinFileSize Minimum file size, defined in kilobytes, to reach for a file output to Amazon S3.
* When CdcMinFileSize
and CdcMaxBatchInterval
are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template.
*
* The default value is 32 MB.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cdcMinFileSize(java.lang.Number cdcMinFileSize) {
this.cdcMinFileSize = cdcMinFileSize;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCdcPath}
* @param cdcPath Specifies the folder path of CDC files.
* For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If CdcPath
is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set PreserveTransactions
to true
, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by BucketFolder
and BucketName
.
*
* For example, if you specify CdcPath
as MyChangedData
, and you specify BucketName
as MyTargetBucket
but do not specify BucketFolder
, AWS DMS creates the CDC folder path following: MyTargetBucket/MyChangedData
.
*
* If you specify the same CdcPath
, and you specify BucketName
as MyTargetBucket
and BucketFolder
as MyTargetData
, AWS DMS creates the CDC folder path following: MyTargetBucket/MyTargetData/MyChangedData
.
*
* For more information on CDC including transaction order on an S3 target, see Capturing data changes (CDC) including transaction order on the S3 target .
*
*
*
* This setting is supported in AWS DMS versions 3.4.2 and later.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cdcPath(java.lang.String cdcPath) {
this.cdcPath = cdcPath;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCompressionType}
* @param compressionType An optional parameter.
* When set to GZIP it enables the service to compress the target files. To allow the service to write the target files uncompressed, either set this parameter to NONE (the default) or don't specify the parameter at all. This parameter applies to both .csv and .parquet file formats.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder compressionType(java.lang.String compressionType) {
this.compressionType = compressionType;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCsvDelimiter}
* @param csvDelimiter The delimiter used to separate columns in the .csv file for both source and target. The default is a comma.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder csvDelimiter(java.lang.String csvDelimiter) {
this.csvDelimiter = csvDelimiter;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCsvNoSupValue}
* @param csvNoSupValue This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If UseCsvNoSupValue
is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the UseCsvNoSupValue
setting.
*
*
* This setting is supported in AWS DMS versions 3.4.1 and later.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder csvNoSupValue(java.lang.String csvNoSupValue) {
this.csvNoSupValue = csvNoSupValue;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCsvNullValue}
* @param csvNullValue An optional parameter that specifies how AWS DMS treats null values.
* While handling the null value, you can use this parameter to pass a user-defined string as null when writing to the target. For example, when target columns are not nullable, you can use this option to differentiate between the empty string value and the null value. So, if you set this parameter value to the empty string ("" or ''), AWS DMS treats the empty string as the null value instead of NULL
.
*
* The default value is NULL
. Valid values include any valid string.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder csvNullValue(java.lang.String csvNullValue) {
this.csvNullValue = csvNullValue;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getCsvRowDelimiter}
* @param csvRowDelimiter The delimiter used to separate rows in the .csv file for both source and target.
* The default is a carriage return ( \n
).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder csvRowDelimiter(java.lang.String csvRowDelimiter) {
this.csvRowDelimiter = csvRowDelimiter;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getDataFormat}
* @param dataFormat The format of the data that you want to use for output. You can choose one of the following:.
*
* csv
: This is a row-based file format with comma-separated values (.csv).
* parquet
: Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder dataFormat(java.lang.String dataFormat) {
this.dataFormat = dataFormat;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getDataPageSize}
* @param dataPageSize The size of one data page in bytes.
* This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder dataPageSize(java.lang.Number dataPageSize) {
this.dataPageSize = dataPageSize;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getDatePartitionDelimiter}
* @param datePartitionDelimiter Specifies a date separating delimiter to use during folder partitioning.
* The default value is SLASH
. Use this parameter when DatePartitionedEnabled
is set to true
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder datePartitionDelimiter(java.lang.String datePartitionDelimiter) {
this.datePartitionDelimiter = datePartitionDelimiter;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getDatePartitionEnabled}
* @param datePartitionEnabled When set to true
, this parameter partitions S3 bucket folders based on transaction commit dates.
* The default value is false
. For more information about date-based folder partitioning, see Using date-based folder partitioning .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder datePartitionEnabled(java.lang.Boolean datePartitionEnabled) {
this.datePartitionEnabled = datePartitionEnabled;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getDatePartitionEnabled}
* @param datePartitionEnabled When set to true
, this parameter partitions S3 bucket folders based on transaction commit dates.
* The default value is false
. For more information about date-based folder partitioning, see Using date-based folder partitioning .
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder datePartitionEnabled(software.amazon.awscdk.core.IResolvable datePartitionEnabled) {
this.datePartitionEnabled = datePartitionEnabled;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getDatePartitionSequence}
* @param datePartitionSequence Identifies the sequence of the date format to use during folder partitioning.
* The default value is YYYYMMDD
. Use this parameter when DatePartitionedEnabled
is set to true
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder datePartitionSequence(java.lang.String datePartitionSequence) {
this.datePartitionSequence = datePartitionSequence;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getDatePartitionTimezone}
* @param datePartitionTimezone When creating an S3 target endpoint, set DatePartitionTimezone
to convert the current UTC time into a specified time zone.
* The conversion occurs when a date partition folder is created and a change data capture (CDC) file name is generated. The time zone format is Area/Location. Use this parameter when DatePartitionedEnabled
is set to true
, as shown in the following example.
*
* s3-settings='{"DatePartitionEnabled": true, "DatePartitionSequence": "YYYYMMDDHH", "DatePartitionDelimiter": "SLASH", "DatePartitionTimezone":" *Asia/Seoul* ", "BucketName": "dms-nattarat-test"}'
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder datePartitionTimezone(java.lang.String datePartitionTimezone) {
this.datePartitionTimezone = datePartitionTimezone;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getDictPageSizeLimit}
* @param dictPageSizeLimit The maximum size of an encoded dictionary page of a column.
* If the dictionary page exceeds this, this column is stored using an encoding type of PLAIN
. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to PLAIN
encoding. This size is used for .parquet file format only.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder dictPageSizeLimit(java.lang.Number dictPageSizeLimit) {
this.dictPageSizeLimit = dictPageSizeLimit;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getEnableStatistics}
* @param enableStatistics A value that enables statistics for Parquet pages and row groups.
* Choose true
to enable statistics, false
to disable. Statistics include NULL
, DISTINCT
, MAX
, and MIN
values. This parameter defaults to true
. This value is used for .parquet file format only.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder enableStatistics(java.lang.Boolean enableStatistics) {
this.enableStatistics = enableStatistics;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getEnableStatistics}
* @param enableStatistics A value that enables statistics for Parquet pages and row groups.
* Choose true
to enable statistics, false
to disable. Statistics include NULL
, DISTINCT
, MAX
, and MIN
values. This parameter defaults to true
. This value is used for .parquet file format only.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder enableStatistics(software.amazon.awscdk.core.IResolvable enableStatistics) {
this.enableStatistics = enableStatistics;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getEncodingType}
* @param encodingType The type of encoding that you're using:.
*
* RLE_DICTIONARY
uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default.
* PLAIN
doesn't use encoding at all. Values are stored as they are.
* PLAIN_DICTIONARY
builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk.
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder encodingType(java.lang.String encodingType) {
this.encodingType = encodingType;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getEncryptionMode}
* @param 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
, you need an IAM role with permission to allow "arn:aws:s3:::dms-*"
to use the following actions:
*
*
* s3:CreateBucket
* s3:ListBucket
* s3:DeleteBucket
* s3:GetBucketLocation
* s3:GetObject
* s3:PutObject
* s3:DeleteObject
* s3:GetObjectVersion
* s3:GetBucketPolicy
* s3:PutBucketPolicy
* s3:DeleteBucketPolicy
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder encryptionMode(java.lang.String encryptionMode) {
this.encryptionMode = encryptionMode;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getExternalTableDefinition}
* @param externalTableDefinition The external table definition.
* Conditional: If S3
is used as a source then ExternalTableDefinition
is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder externalTableDefinition(java.lang.String externalTableDefinition) {
this.externalTableDefinition = externalTableDefinition;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getIgnoreHeaderRows}
* @param ignoreHeaderRows When this value is set to 1, AWS DMS ignores the first row header in a .csv file. A value of 1 turns on the feature; a value of 0 turns off the feature.
* The default is 0.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder ignoreHeaderRows(java.lang.Number ignoreHeaderRows) {
this.ignoreHeaderRows = ignoreHeaderRows;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getIncludeOpForFullLoad}
* @param includeOpForFullLoad A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database.
*
*
* AWS DMS supports the IncludeOpForFullLoad
parameter in versions 3.1.4 and later.
*
*
*
* For full load, records can only be inserted. By default (the false
setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad
is set to true
or y
, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load.
*
*
*
* This setting works together with the CdcInsertsOnly
and the CdcInsertsAndUpdates
parameters for output to .csv files only. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeOpForFullLoad(java.lang.Boolean includeOpForFullLoad) {
this.includeOpForFullLoad = includeOpForFullLoad;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getIncludeOpForFullLoad}
* @param includeOpForFullLoad A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database.
*
*
* AWS DMS supports the IncludeOpForFullLoad
parameter in versions 3.1.4 and later.
*
*
*
* For full load, records can only be inserted. By default (the false
setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad
is set to true
or y
, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load.
*
*
*
* This setting works together with the CdcInsertsOnly
and the CdcInsertsAndUpdates
parameters for output to .csv files only. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder includeOpForFullLoad(software.amazon.awscdk.core.IResolvable includeOpForFullLoad) {
this.includeOpForFullLoad = includeOpForFullLoad;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getMaxFileSize}
* @param maxFileSize A value that specifies the maximum size (in KB) of any .csv file to be created while migrating to an S3 target during full load.
* The default value is 1,048,576 KB (1 GB). Valid values include 1 to 1,048,576.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxFileSize(java.lang.Number maxFileSize) {
this.maxFileSize = maxFileSize;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getParquetTimestampInMillisecond}
* @param parquetTimestampInMillisecond A value that specifies the precision of any TIMESTAMP
column values that are written to an Amazon S3 object file in .parquet format.
*
*
* AWS DMS supports the ParquetTimestampInMillisecond
parameter in versions 3.1.4 and later.
*
*
*
* When ParquetTimestampInMillisecond
is set to true
or y
, AWS DMS writes all TIMESTAMP
columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision.
*
* Currently, Amazon Athena and AWS Glue can handle only millisecond precision for TIMESTAMP
values. Set this parameter to true
for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue .
*
*
*
* AWS DMS writes any TIMESTAMP
column values written to an S3 file in .csv format with microsecond precision.
*
* Setting ParquetTimestampInMillisecond
has no effect on the string format of the timestamp column value that is inserted by setting the TimestampColumnName
parameter.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder parquetTimestampInMillisecond(java.lang.Boolean parquetTimestampInMillisecond) {
this.parquetTimestampInMillisecond = parquetTimestampInMillisecond;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getParquetTimestampInMillisecond}
* @param parquetTimestampInMillisecond A value that specifies the precision of any TIMESTAMP
column values that are written to an Amazon S3 object file in .parquet format.
*
*
* AWS DMS supports the ParquetTimestampInMillisecond
parameter in versions 3.1.4 and later.
*
*
*
* When ParquetTimestampInMillisecond
is set to true
or y
, AWS DMS writes all TIMESTAMP
columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision.
*
* Currently, Amazon Athena and AWS Glue can handle only millisecond precision for TIMESTAMP
values. Set this parameter to true
for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue .
*
*
*
* AWS DMS writes any TIMESTAMP
column values written to an S3 file in .csv format with microsecond precision.
*
* Setting ParquetTimestampInMillisecond
has no effect on the string format of the timestamp column value that is inserted by setting the TimestampColumnName
parameter.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder parquetTimestampInMillisecond(software.amazon.awscdk.core.IResolvable parquetTimestampInMillisecond) {
this.parquetTimestampInMillisecond = parquetTimestampInMillisecond;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getParquetVersion}
* @param parquetVersion The version of the Apache Parquet format that you want to use: parquet_1_0
(the default) or parquet_2_0
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder parquetVersion(java.lang.String parquetVersion) {
this.parquetVersion = parquetVersion;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getPreserveTransactions}
* @param preserveTransactions If this setting is set to true
, AWS DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by CdcPath
. For more information, see Capturing data changes (CDC) including transaction order on the S3 target .
*
*
* This setting is supported in AWS DMS versions 3.4.2 and later.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder preserveTransactions(java.lang.Boolean preserveTransactions) {
this.preserveTransactions = preserveTransactions;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getPreserveTransactions}
* @param preserveTransactions If this setting is set to true
, AWS DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by CdcPath
. For more information, see Capturing data changes (CDC) including transaction order on the S3 target .
*
*
* This setting is supported in AWS DMS versions 3.4.2 and later.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder preserveTransactions(software.amazon.awscdk.core.IResolvable preserveTransactions) {
this.preserveTransactions = preserveTransactions;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getRfc4180}
* @param rfc4180 For an S3 source, when this value is set to true
or y
, each leading double quotation mark has to be followed by an ending double quotation mark.
* This formatting complies with RFC 4180. When this value is set to false
or n
, string literals are copied to the target as is. In this case, a delimiter (row or column) signals the end of the field. Thus, you can't use a delimiter as part of the string, because it signals the end of the value.
*
* For an S3 target, an optional parameter used to set behavior to comply with RFC 4180 for data migrated to Amazon S3 using .csv file format only. When this value is set to true
or y
using Amazon S3 as a target, if the data has quotation marks or newline characters in it, AWS DMS encloses the entire column with an additional pair of double quotation marks ("). Every quotation mark within the data is repeated twice.
*
* The default value is true
. Valid values include true
, false
, y
, and n
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder rfc4180(java.lang.Boolean rfc4180) {
this.rfc4180 = rfc4180;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getRfc4180}
* @param rfc4180 For an S3 source, when this value is set to true
or y
, each leading double quotation mark has to be followed by an ending double quotation mark.
* This formatting complies with RFC 4180. When this value is set to false
or n
, string literals are copied to the target as is. In this case, a delimiter (row or column) signals the end of the field. Thus, you can't use a delimiter as part of the string, because it signals the end of the value.
*
* For an S3 target, an optional parameter used to set behavior to comply with RFC 4180 for data migrated to Amazon S3 using .csv file format only. When this value is set to true
or y
using Amazon S3 as a target, if the data has quotation marks or newline characters in it, AWS DMS encloses the entire column with an additional pair of double quotation marks ("). Every quotation mark within the data is repeated twice.
*
* The default value is true
. Valid values include true
, false
, y
, and n
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder rfc4180(software.amazon.awscdk.core.IResolvable rfc4180) {
this.rfc4180 = rfc4180;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getRowGroupLength}
* @param rowGroupLength The number of rows in a row group.
* A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.
*
* If you choose a value larger than the maximum, RowGroupLength
is set to the max row group length in bytes (64 * 1024 * 1024).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder rowGroupLength(java.lang.Number rowGroupLength) {
this.rowGroupLength = rowGroupLength;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getServerSideEncryptionKmsKeyId}
* @param serverSideEncryptionKmsKeyId If you are using SSE_KMS
for the EncryptionMode
, provide the AWS KMS key ID.
* The key that you use needs an attached policy that enables IAM user permissions and allows use of the key.
*
* Here is a CLI example: aws dms create-endpoint --endpoint-identifier *value* --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn= *value* ,BucketFolder= *value* ,BucketName= *value* ,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId= *value*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serverSideEncryptionKmsKeyId(java.lang.String serverSideEncryptionKmsKeyId) {
this.serverSideEncryptionKmsKeyId = serverSideEncryptionKmsKeyId;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getServiceAccessRoleArn}
* @param serviceAccessRoleArn A required parameter that specifies the Amazon Resource Name (ARN) used by the service to access the IAM role.
* The role must allow the iam:PassRole
action. It enables AWS DMS to read and write objects from an S3 bucket.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serviceAccessRoleArn(java.lang.String serviceAccessRoleArn) {
this.serviceAccessRoleArn = serviceAccessRoleArn;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getTimestampColumnName}
* @param timestampColumnName A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target.
*
*
* AWS DMS supports the TimestampColumnName
parameter in versions 3.1.4 and later.
*
*
*
* AWS DMS includes an additional STRING
column in the .csv or .parquet object files of your migrated data when you set TimestampColumnName
to a nonblank value.
*
* For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.
*
* For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database.
*
* The string format for this timestamp column value is yyyy-MM-dd HH:mm:ss.SSSSSS
. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database.
*
* When the AddColumnName
parameter is set to true
, DMS also includes a name for the timestamp column that you set with TimestampColumnName
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder timestampColumnName(java.lang.String timestampColumnName) {
this.timestampColumnName = timestampColumnName;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getUseCsvNoSupValue}
* @param useCsvNoSupValue This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If this setting is set to true
for columns not included in the supplemental log, AWS DMS uses the value specified by CsvNoSupValue
. If this setting isn't set or is set to false
, AWS DMS uses the null value for these columns.
*
*
* This setting is supported in AWS DMS versions 3.4.1 and later.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useCsvNoSupValue(java.lang.Boolean useCsvNoSupValue) {
this.useCsvNoSupValue = useCsvNoSupValue;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getUseCsvNoSupValue}
* @param useCsvNoSupValue This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If this setting is set to true
for columns not included in the supplemental log, AWS DMS uses the value specified by CsvNoSupValue
. If this setting isn't set or is set to false
, AWS DMS uses the null value for these columns.
*
*
* This setting is supported in AWS DMS versions 3.4.1 and later.
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useCsvNoSupValue(software.amazon.awscdk.core.IResolvable useCsvNoSupValue) {
this.useCsvNoSupValue = useCsvNoSupValue;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getUseTaskStartTimeForFullLoadTimestamp}
* @param useTaskStartTimeForFullLoadTimestamp When set to true, this parameter uses the task start time as the timestamp column value instead of the time data is written to target.
* For full load, when useTaskStartTimeForFullLoadTimestamp
is set to true
, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.
*
* When useTaskStartTimeForFullLoadTimestamp
is set to false
, the full load timestamp in the timestamp column increments with the time data arrives at the target.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useTaskStartTimeForFullLoadTimestamp(java.lang.Boolean useTaskStartTimeForFullLoadTimestamp) {
this.useTaskStartTimeForFullLoadTimestamp = useTaskStartTimeForFullLoadTimestamp;
return this;
}
/**
* Sets the value of {@link S3SettingsProperty#getUseTaskStartTimeForFullLoadTimestamp}
* @param useTaskStartTimeForFullLoadTimestamp When set to true, this parameter uses the task start time as the timestamp column value instead of the time data is written to target.
* For full load, when useTaskStartTimeForFullLoadTimestamp
is set to true
, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.
*
* When useTaskStartTimeForFullLoadTimestamp
is set to false
, the full load timestamp in the timestamp column increments with the time data arrives at the target.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder useTaskStartTimeForFullLoadTimestamp(software.amazon.awscdk.core.IResolvable useTaskStartTimeForFullLoadTimestamp) {
this.useTaskStartTimeForFullLoadTimestamp = useTaskStartTimeForFullLoadTimestamp;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link S3SettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public S3SettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link S3SettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements S3SettingsProperty {
private final java.lang.Object addColumnName;
private final java.lang.String bucketFolder;
private final java.lang.String bucketName;
private final java.lang.String cannedAclForObjects;
private final java.lang.Object cdcInsertsAndUpdates;
private final java.lang.Object cdcInsertsOnly;
private final java.lang.Number cdcMaxBatchInterval;
private final java.lang.Number cdcMinFileSize;
private final java.lang.String cdcPath;
private final java.lang.String compressionType;
private final java.lang.String csvDelimiter;
private final java.lang.String csvNoSupValue;
private final java.lang.String csvNullValue;
private final java.lang.String csvRowDelimiter;
private final java.lang.String dataFormat;
private final java.lang.Number dataPageSize;
private final java.lang.String datePartitionDelimiter;
private final java.lang.Object datePartitionEnabled;
private final java.lang.String datePartitionSequence;
private final java.lang.String datePartitionTimezone;
private final java.lang.Number dictPageSizeLimit;
private final java.lang.Object enableStatistics;
private final java.lang.String encodingType;
private final java.lang.String encryptionMode;
private final java.lang.String externalTableDefinition;
private final java.lang.Number ignoreHeaderRows;
private final java.lang.Object includeOpForFullLoad;
private final java.lang.Number maxFileSize;
private final java.lang.Object parquetTimestampInMillisecond;
private final java.lang.String parquetVersion;
private final java.lang.Object preserveTransactions;
private final java.lang.Object rfc4180;
private final java.lang.Number rowGroupLength;
private final java.lang.String serverSideEncryptionKmsKeyId;
private final java.lang.String serviceAccessRoleArn;
private final java.lang.String timestampColumnName;
private final java.lang.Object useCsvNoSupValue;
private final java.lang.Object useTaskStartTimeForFullLoadTimestamp;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.addColumnName = software.amazon.jsii.Kernel.get(this, "addColumnName", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.bucketFolder = software.amazon.jsii.Kernel.get(this, "bucketFolder", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.bucketName = software.amazon.jsii.Kernel.get(this, "bucketName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.cannedAclForObjects = software.amazon.jsii.Kernel.get(this, "cannedAclForObjects", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.cdcInsertsAndUpdates = software.amazon.jsii.Kernel.get(this, "cdcInsertsAndUpdates", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.cdcInsertsOnly = software.amazon.jsii.Kernel.get(this, "cdcInsertsOnly", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.cdcMaxBatchInterval = software.amazon.jsii.Kernel.get(this, "cdcMaxBatchInterval", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.cdcMinFileSize = software.amazon.jsii.Kernel.get(this, "cdcMinFileSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.cdcPath = software.amazon.jsii.Kernel.get(this, "cdcPath", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.compressionType = software.amazon.jsii.Kernel.get(this, "compressionType", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.csvDelimiter = software.amazon.jsii.Kernel.get(this, "csvDelimiter", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.csvNoSupValue = software.amazon.jsii.Kernel.get(this, "csvNoSupValue", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.csvNullValue = software.amazon.jsii.Kernel.get(this, "csvNullValue", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.csvRowDelimiter = software.amazon.jsii.Kernel.get(this, "csvRowDelimiter", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.dataFormat = software.amazon.jsii.Kernel.get(this, "dataFormat", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.dataPageSize = software.amazon.jsii.Kernel.get(this, "dataPageSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.datePartitionDelimiter = software.amazon.jsii.Kernel.get(this, "datePartitionDelimiter", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.datePartitionEnabled = software.amazon.jsii.Kernel.get(this, "datePartitionEnabled", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.datePartitionSequence = software.amazon.jsii.Kernel.get(this, "datePartitionSequence", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.datePartitionTimezone = software.amazon.jsii.Kernel.get(this, "datePartitionTimezone", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.dictPageSizeLimit = software.amazon.jsii.Kernel.get(this, "dictPageSizeLimit", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.enableStatistics = software.amazon.jsii.Kernel.get(this, "enableStatistics", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.encodingType = software.amazon.jsii.Kernel.get(this, "encodingType", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.encryptionMode = software.amazon.jsii.Kernel.get(this, "encryptionMode", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.externalTableDefinition = software.amazon.jsii.Kernel.get(this, "externalTableDefinition", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.ignoreHeaderRows = software.amazon.jsii.Kernel.get(this, "ignoreHeaderRows", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.includeOpForFullLoad = software.amazon.jsii.Kernel.get(this, "includeOpForFullLoad", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.maxFileSize = software.amazon.jsii.Kernel.get(this, "maxFileSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.parquetTimestampInMillisecond = software.amazon.jsii.Kernel.get(this, "parquetTimestampInMillisecond", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.parquetVersion = software.amazon.jsii.Kernel.get(this, "parquetVersion", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.preserveTransactions = software.amazon.jsii.Kernel.get(this, "preserveTransactions", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.rfc4180 = software.amazon.jsii.Kernel.get(this, "rfc4180", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.rowGroupLength = software.amazon.jsii.Kernel.get(this, "rowGroupLength", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.serverSideEncryptionKmsKeyId = software.amazon.jsii.Kernel.get(this, "serverSideEncryptionKmsKeyId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serviceAccessRoleArn = software.amazon.jsii.Kernel.get(this, "serviceAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.timestampColumnName = software.amazon.jsii.Kernel.get(this, "timestampColumnName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.useCsvNoSupValue = software.amazon.jsii.Kernel.get(this, "useCsvNoSupValue", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.useTaskStartTimeForFullLoadTimestamp = software.amazon.jsii.Kernel.get(this, "useTaskStartTimeForFullLoadTimestamp", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.addColumnName = builder.addColumnName;
this.bucketFolder = builder.bucketFolder;
this.bucketName = builder.bucketName;
this.cannedAclForObjects = builder.cannedAclForObjects;
this.cdcInsertsAndUpdates = builder.cdcInsertsAndUpdates;
this.cdcInsertsOnly = builder.cdcInsertsOnly;
this.cdcMaxBatchInterval = builder.cdcMaxBatchInterval;
this.cdcMinFileSize = builder.cdcMinFileSize;
this.cdcPath = builder.cdcPath;
this.compressionType = builder.compressionType;
this.csvDelimiter = builder.csvDelimiter;
this.csvNoSupValue = builder.csvNoSupValue;
this.csvNullValue = builder.csvNullValue;
this.csvRowDelimiter = builder.csvRowDelimiter;
this.dataFormat = builder.dataFormat;
this.dataPageSize = builder.dataPageSize;
this.datePartitionDelimiter = builder.datePartitionDelimiter;
this.datePartitionEnabled = builder.datePartitionEnabled;
this.datePartitionSequence = builder.datePartitionSequence;
this.datePartitionTimezone = builder.datePartitionTimezone;
this.dictPageSizeLimit = builder.dictPageSizeLimit;
this.enableStatistics = builder.enableStatistics;
this.encodingType = builder.encodingType;
this.encryptionMode = builder.encryptionMode;
this.externalTableDefinition = builder.externalTableDefinition;
this.ignoreHeaderRows = builder.ignoreHeaderRows;
this.includeOpForFullLoad = builder.includeOpForFullLoad;
this.maxFileSize = builder.maxFileSize;
this.parquetTimestampInMillisecond = builder.parquetTimestampInMillisecond;
this.parquetVersion = builder.parquetVersion;
this.preserveTransactions = builder.preserveTransactions;
this.rfc4180 = builder.rfc4180;
this.rowGroupLength = builder.rowGroupLength;
this.serverSideEncryptionKmsKeyId = builder.serverSideEncryptionKmsKeyId;
this.serviceAccessRoleArn = builder.serviceAccessRoleArn;
this.timestampColumnName = builder.timestampColumnName;
this.useCsvNoSupValue = builder.useCsvNoSupValue;
this.useTaskStartTimeForFullLoadTimestamp = builder.useTaskStartTimeForFullLoadTimestamp;
}
@Override
public final java.lang.Object getAddColumnName() {
return this.addColumnName;
}
@Override
public final java.lang.String getBucketFolder() {
return this.bucketFolder;
}
@Override
public final java.lang.String getBucketName() {
return this.bucketName;
}
@Override
public final java.lang.String getCannedAclForObjects() {
return this.cannedAclForObjects;
}
@Override
public final java.lang.Object getCdcInsertsAndUpdates() {
return this.cdcInsertsAndUpdates;
}
@Override
public final java.lang.Object getCdcInsertsOnly() {
return this.cdcInsertsOnly;
}
@Override
public final java.lang.Number getCdcMaxBatchInterval() {
return this.cdcMaxBatchInterval;
}
@Override
public final java.lang.Number getCdcMinFileSize() {
return this.cdcMinFileSize;
}
@Override
public final java.lang.String getCdcPath() {
return this.cdcPath;
}
@Override
public final java.lang.String getCompressionType() {
return this.compressionType;
}
@Override
public final java.lang.String getCsvDelimiter() {
return this.csvDelimiter;
}
@Override
public final java.lang.String getCsvNoSupValue() {
return this.csvNoSupValue;
}
@Override
public final java.lang.String getCsvNullValue() {
return this.csvNullValue;
}
@Override
public final java.lang.String getCsvRowDelimiter() {
return this.csvRowDelimiter;
}
@Override
public final java.lang.String getDataFormat() {
return this.dataFormat;
}
@Override
public final java.lang.Number getDataPageSize() {
return this.dataPageSize;
}
@Override
public final java.lang.String getDatePartitionDelimiter() {
return this.datePartitionDelimiter;
}
@Override
public final java.lang.Object getDatePartitionEnabled() {
return this.datePartitionEnabled;
}
@Override
public final java.lang.String getDatePartitionSequence() {
return this.datePartitionSequence;
}
@Override
public final java.lang.String getDatePartitionTimezone() {
return this.datePartitionTimezone;
}
@Override
public final java.lang.Number getDictPageSizeLimit() {
return this.dictPageSizeLimit;
}
@Override
public final java.lang.Object getEnableStatistics() {
return this.enableStatistics;
}
@Override
public final java.lang.String getEncodingType() {
return this.encodingType;
}
@Override
public final java.lang.String getEncryptionMode() {
return this.encryptionMode;
}
@Override
public final java.lang.String getExternalTableDefinition() {
return this.externalTableDefinition;
}
@Override
public final java.lang.Number getIgnoreHeaderRows() {
return this.ignoreHeaderRows;
}
@Override
public final java.lang.Object getIncludeOpForFullLoad() {
return this.includeOpForFullLoad;
}
@Override
public final java.lang.Number getMaxFileSize() {
return this.maxFileSize;
}
@Override
public final java.lang.Object getParquetTimestampInMillisecond() {
return this.parquetTimestampInMillisecond;
}
@Override
public final java.lang.String getParquetVersion() {
return this.parquetVersion;
}
@Override
public final java.lang.Object getPreserveTransactions() {
return this.preserveTransactions;
}
@Override
public final java.lang.Object getRfc4180() {
return this.rfc4180;
}
@Override
public final java.lang.Number getRowGroupLength() {
return this.rowGroupLength;
}
@Override
public final java.lang.String getServerSideEncryptionKmsKeyId() {
return this.serverSideEncryptionKmsKeyId;
}
@Override
public final java.lang.String getServiceAccessRoleArn() {
return this.serviceAccessRoleArn;
}
@Override
public final java.lang.String getTimestampColumnName() {
return this.timestampColumnName;
}
@Override
public final java.lang.Object getUseCsvNoSupValue() {
return this.useCsvNoSupValue;
}
@Override
public final java.lang.Object getUseTaskStartTimeForFullLoadTimestamp() {
return this.useTaskStartTimeForFullLoadTimestamp;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAddColumnName() != null) {
data.set("addColumnName", om.valueToTree(this.getAddColumnName()));
}
if (this.getBucketFolder() != null) {
data.set("bucketFolder", om.valueToTree(this.getBucketFolder()));
}
if (this.getBucketName() != null) {
data.set("bucketName", om.valueToTree(this.getBucketName()));
}
if (this.getCannedAclForObjects() != null) {
data.set("cannedAclForObjects", om.valueToTree(this.getCannedAclForObjects()));
}
if (this.getCdcInsertsAndUpdates() != null) {
data.set("cdcInsertsAndUpdates", om.valueToTree(this.getCdcInsertsAndUpdates()));
}
if (this.getCdcInsertsOnly() != null) {
data.set("cdcInsertsOnly", om.valueToTree(this.getCdcInsertsOnly()));
}
if (this.getCdcMaxBatchInterval() != null) {
data.set("cdcMaxBatchInterval", om.valueToTree(this.getCdcMaxBatchInterval()));
}
if (this.getCdcMinFileSize() != null) {
data.set("cdcMinFileSize", om.valueToTree(this.getCdcMinFileSize()));
}
if (this.getCdcPath() != null) {
data.set("cdcPath", om.valueToTree(this.getCdcPath()));
}
if (this.getCompressionType() != null) {
data.set("compressionType", om.valueToTree(this.getCompressionType()));
}
if (this.getCsvDelimiter() != null) {
data.set("csvDelimiter", om.valueToTree(this.getCsvDelimiter()));
}
if (this.getCsvNoSupValue() != null) {
data.set("csvNoSupValue", om.valueToTree(this.getCsvNoSupValue()));
}
if (this.getCsvNullValue() != null) {
data.set("csvNullValue", om.valueToTree(this.getCsvNullValue()));
}
if (this.getCsvRowDelimiter() != null) {
data.set("csvRowDelimiter", om.valueToTree(this.getCsvRowDelimiter()));
}
if (this.getDataFormat() != null) {
data.set("dataFormat", om.valueToTree(this.getDataFormat()));
}
if (this.getDataPageSize() != null) {
data.set("dataPageSize", om.valueToTree(this.getDataPageSize()));
}
if (this.getDatePartitionDelimiter() != null) {
data.set("datePartitionDelimiter", om.valueToTree(this.getDatePartitionDelimiter()));
}
if (this.getDatePartitionEnabled() != null) {
data.set("datePartitionEnabled", om.valueToTree(this.getDatePartitionEnabled()));
}
if (this.getDatePartitionSequence() != null) {
data.set("datePartitionSequence", om.valueToTree(this.getDatePartitionSequence()));
}
if (this.getDatePartitionTimezone() != null) {
data.set("datePartitionTimezone", om.valueToTree(this.getDatePartitionTimezone()));
}
if (this.getDictPageSizeLimit() != null) {
data.set("dictPageSizeLimit", om.valueToTree(this.getDictPageSizeLimit()));
}
if (this.getEnableStatistics() != null) {
data.set("enableStatistics", om.valueToTree(this.getEnableStatistics()));
}
if (this.getEncodingType() != null) {
data.set("encodingType", om.valueToTree(this.getEncodingType()));
}
if (this.getEncryptionMode() != null) {
data.set("encryptionMode", om.valueToTree(this.getEncryptionMode()));
}
if (this.getExternalTableDefinition() != null) {
data.set("externalTableDefinition", om.valueToTree(this.getExternalTableDefinition()));
}
if (this.getIgnoreHeaderRows() != null) {
data.set("ignoreHeaderRows", om.valueToTree(this.getIgnoreHeaderRows()));
}
if (this.getIncludeOpForFullLoad() != null) {
data.set("includeOpForFullLoad", om.valueToTree(this.getIncludeOpForFullLoad()));
}
if (this.getMaxFileSize() != null) {
data.set("maxFileSize", om.valueToTree(this.getMaxFileSize()));
}
if (this.getParquetTimestampInMillisecond() != null) {
data.set("parquetTimestampInMillisecond", om.valueToTree(this.getParquetTimestampInMillisecond()));
}
if (this.getParquetVersion() != null) {
data.set("parquetVersion", om.valueToTree(this.getParquetVersion()));
}
if (this.getPreserveTransactions() != null) {
data.set("preserveTransactions", om.valueToTree(this.getPreserveTransactions()));
}
if (this.getRfc4180() != null) {
data.set("rfc4180", om.valueToTree(this.getRfc4180()));
}
if (this.getRowGroupLength() != null) {
data.set("rowGroupLength", om.valueToTree(this.getRowGroupLength()));
}
if (this.getServerSideEncryptionKmsKeyId() != null) {
data.set("serverSideEncryptionKmsKeyId", om.valueToTree(this.getServerSideEncryptionKmsKeyId()));
}
if (this.getServiceAccessRoleArn() != null) {
data.set("serviceAccessRoleArn", om.valueToTree(this.getServiceAccessRoleArn()));
}
if (this.getTimestampColumnName() != null) {
data.set("timestampColumnName", om.valueToTree(this.getTimestampColumnName()));
}
if (this.getUseCsvNoSupValue() != null) {
data.set("useCsvNoSupValue", om.valueToTree(this.getUseCsvNoSupValue()));
}
if (this.getUseTaskStartTimeForFullLoadTimestamp() != null) {
data.set("useTaskStartTimeForFullLoadTimestamp", om.valueToTree(this.getUseTaskStartTimeForFullLoadTimestamp()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.S3SettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
S3SettingsProperty.Jsii$Proxy that = (S3SettingsProperty.Jsii$Proxy) o;
if (this.addColumnName != null ? !this.addColumnName.equals(that.addColumnName) : that.addColumnName != null) return false;
if (this.bucketFolder != null ? !this.bucketFolder.equals(that.bucketFolder) : that.bucketFolder != null) return false;
if (this.bucketName != null ? !this.bucketName.equals(that.bucketName) : that.bucketName != null) return false;
if (this.cannedAclForObjects != null ? !this.cannedAclForObjects.equals(that.cannedAclForObjects) : that.cannedAclForObjects != null) return false;
if (this.cdcInsertsAndUpdates != null ? !this.cdcInsertsAndUpdates.equals(that.cdcInsertsAndUpdates) : that.cdcInsertsAndUpdates != null) return false;
if (this.cdcInsertsOnly != null ? !this.cdcInsertsOnly.equals(that.cdcInsertsOnly) : that.cdcInsertsOnly != null) return false;
if (this.cdcMaxBatchInterval != null ? !this.cdcMaxBatchInterval.equals(that.cdcMaxBatchInterval) : that.cdcMaxBatchInterval != null) return false;
if (this.cdcMinFileSize != null ? !this.cdcMinFileSize.equals(that.cdcMinFileSize) : that.cdcMinFileSize != null) return false;
if (this.cdcPath != null ? !this.cdcPath.equals(that.cdcPath) : that.cdcPath != null) return false;
if (this.compressionType != null ? !this.compressionType.equals(that.compressionType) : that.compressionType != null) return false;
if (this.csvDelimiter != null ? !this.csvDelimiter.equals(that.csvDelimiter) : that.csvDelimiter != null) return false;
if (this.csvNoSupValue != null ? !this.csvNoSupValue.equals(that.csvNoSupValue) : that.csvNoSupValue != null) return false;
if (this.csvNullValue != null ? !this.csvNullValue.equals(that.csvNullValue) : that.csvNullValue != null) return false;
if (this.csvRowDelimiter != null ? !this.csvRowDelimiter.equals(that.csvRowDelimiter) : that.csvRowDelimiter != null) return false;
if (this.dataFormat != null ? !this.dataFormat.equals(that.dataFormat) : that.dataFormat != null) return false;
if (this.dataPageSize != null ? !this.dataPageSize.equals(that.dataPageSize) : that.dataPageSize != null) return false;
if (this.datePartitionDelimiter != null ? !this.datePartitionDelimiter.equals(that.datePartitionDelimiter) : that.datePartitionDelimiter != null) return false;
if (this.datePartitionEnabled != null ? !this.datePartitionEnabled.equals(that.datePartitionEnabled) : that.datePartitionEnabled != null) return false;
if (this.datePartitionSequence != null ? !this.datePartitionSequence.equals(that.datePartitionSequence) : that.datePartitionSequence != null) return false;
if (this.datePartitionTimezone != null ? !this.datePartitionTimezone.equals(that.datePartitionTimezone) : that.datePartitionTimezone != null) return false;
if (this.dictPageSizeLimit != null ? !this.dictPageSizeLimit.equals(that.dictPageSizeLimit) : that.dictPageSizeLimit != null) return false;
if (this.enableStatistics != null ? !this.enableStatistics.equals(that.enableStatistics) : that.enableStatistics != null) return false;
if (this.encodingType != null ? !this.encodingType.equals(that.encodingType) : that.encodingType != null) return false;
if (this.encryptionMode != null ? !this.encryptionMode.equals(that.encryptionMode) : that.encryptionMode != null) return false;
if (this.externalTableDefinition != null ? !this.externalTableDefinition.equals(that.externalTableDefinition) : that.externalTableDefinition != null) return false;
if (this.ignoreHeaderRows != null ? !this.ignoreHeaderRows.equals(that.ignoreHeaderRows) : that.ignoreHeaderRows != null) return false;
if (this.includeOpForFullLoad != null ? !this.includeOpForFullLoad.equals(that.includeOpForFullLoad) : that.includeOpForFullLoad != null) return false;
if (this.maxFileSize != null ? !this.maxFileSize.equals(that.maxFileSize) : that.maxFileSize != null) return false;
if (this.parquetTimestampInMillisecond != null ? !this.parquetTimestampInMillisecond.equals(that.parquetTimestampInMillisecond) : that.parquetTimestampInMillisecond != null) return false;
if (this.parquetVersion != null ? !this.parquetVersion.equals(that.parquetVersion) : that.parquetVersion != null) return false;
if (this.preserveTransactions != null ? !this.preserveTransactions.equals(that.preserveTransactions) : that.preserveTransactions != null) return false;
if (this.rfc4180 != null ? !this.rfc4180.equals(that.rfc4180) : that.rfc4180 != null) return false;
if (this.rowGroupLength != null ? !this.rowGroupLength.equals(that.rowGroupLength) : that.rowGroupLength != null) return false;
if (this.serverSideEncryptionKmsKeyId != null ? !this.serverSideEncryptionKmsKeyId.equals(that.serverSideEncryptionKmsKeyId) : that.serverSideEncryptionKmsKeyId != null) return false;
if (this.serviceAccessRoleArn != null ? !this.serviceAccessRoleArn.equals(that.serviceAccessRoleArn) : that.serviceAccessRoleArn != null) return false;
if (this.timestampColumnName != null ? !this.timestampColumnName.equals(that.timestampColumnName) : that.timestampColumnName != null) return false;
if (this.useCsvNoSupValue != null ? !this.useCsvNoSupValue.equals(that.useCsvNoSupValue) : that.useCsvNoSupValue != null) return false;
return this.useTaskStartTimeForFullLoadTimestamp != null ? this.useTaskStartTimeForFullLoadTimestamp.equals(that.useTaskStartTimeForFullLoadTimestamp) : that.useTaskStartTimeForFullLoadTimestamp == null;
}
@Override
public final int hashCode() {
int result = this.addColumnName != null ? this.addColumnName.hashCode() : 0;
result = 31 * result + (this.bucketFolder != null ? this.bucketFolder.hashCode() : 0);
result = 31 * result + (this.bucketName != null ? this.bucketName.hashCode() : 0);
result = 31 * result + (this.cannedAclForObjects != null ? this.cannedAclForObjects.hashCode() : 0);
result = 31 * result + (this.cdcInsertsAndUpdates != null ? this.cdcInsertsAndUpdates.hashCode() : 0);
result = 31 * result + (this.cdcInsertsOnly != null ? this.cdcInsertsOnly.hashCode() : 0);
result = 31 * result + (this.cdcMaxBatchInterval != null ? this.cdcMaxBatchInterval.hashCode() : 0);
result = 31 * result + (this.cdcMinFileSize != null ? this.cdcMinFileSize.hashCode() : 0);
result = 31 * result + (this.cdcPath != null ? this.cdcPath.hashCode() : 0);
result = 31 * result + (this.compressionType != null ? this.compressionType.hashCode() : 0);
result = 31 * result + (this.csvDelimiter != null ? this.csvDelimiter.hashCode() : 0);
result = 31 * result + (this.csvNoSupValue != null ? this.csvNoSupValue.hashCode() : 0);
result = 31 * result + (this.csvNullValue != null ? this.csvNullValue.hashCode() : 0);
result = 31 * result + (this.csvRowDelimiter != null ? this.csvRowDelimiter.hashCode() : 0);
result = 31 * result + (this.dataFormat != null ? this.dataFormat.hashCode() : 0);
result = 31 * result + (this.dataPageSize != null ? this.dataPageSize.hashCode() : 0);
result = 31 * result + (this.datePartitionDelimiter != null ? this.datePartitionDelimiter.hashCode() : 0);
result = 31 * result + (this.datePartitionEnabled != null ? this.datePartitionEnabled.hashCode() : 0);
result = 31 * result + (this.datePartitionSequence != null ? this.datePartitionSequence.hashCode() : 0);
result = 31 * result + (this.datePartitionTimezone != null ? this.datePartitionTimezone.hashCode() : 0);
result = 31 * result + (this.dictPageSizeLimit != null ? this.dictPageSizeLimit.hashCode() : 0);
result = 31 * result + (this.enableStatistics != null ? this.enableStatistics.hashCode() : 0);
result = 31 * result + (this.encodingType != null ? this.encodingType.hashCode() : 0);
result = 31 * result + (this.encryptionMode != null ? this.encryptionMode.hashCode() : 0);
result = 31 * result + (this.externalTableDefinition != null ? this.externalTableDefinition.hashCode() : 0);
result = 31 * result + (this.ignoreHeaderRows != null ? this.ignoreHeaderRows.hashCode() : 0);
result = 31 * result + (this.includeOpForFullLoad != null ? this.includeOpForFullLoad.hashCode() : 0);
result = 31 * result + (this.maxFileSize != null ? this.maxFileSize.hashCode() : 0);
result = 31 * result + (this.parquetTimestampInMillisecond != null ? this.parquetTimestampInMillisecond.hashCode() : 0);
result = 31 * result + (this.parquetVersion != null ? this.parquetVersion.hashCode() : 0);
result = 31 * result + (this.preserveTransactions != null ? this.preserveTransactions.hashCode() : 0);
result = 31 * result + (this.rfc4180 != null ? this.rfc4180.hashCode() : 0);
result = 31 * result + (this.rowGroupLength != null ? this.rowGroupLength.hashCode() : 0);
result = 31 * result + (this.serverSideEncryptionKmsKeyId != null ? this.serverSideEncryptionKmsKeyId.hashCode() : 0);
result = 31 * result + (this.serviceAccessRoleArn != null ? this.serviceAccessRoleArn.hashCode() : 0);
result = 31 * result + (this.timestampColumnName != null ? this.timestampColumnName.hashCode() : 0);
result = 31 * result + (this.useCsvNoSupValue != null ? this.useCsvNoSupValue.hashCode() : 0);
result = 31 * result + (this.useTaskStartTimeForFullLoadTimestamp != null ? this.useTaskStartTimeForFullLoadTimestamp.hashCode() : 0);
return result;
}
}
}
/**
* Provides information that defines a SAP ASE 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 SAP ASE as a source for AWS DMS and Extra connection attributes when using SAP ASE as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.dms.*;
* SybaseSettingsProperty sybaseSettingsProperty = SybaseSettingsProperty.builder()
* .secretsManagerAccessRoleArn("secretsManagerAccessRoleArn")
* .secretsManagerSecretId("secretsManagerSecretId")
* .build();
*
*/
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.dms.$Module.class, fqn = "@aws-cdk/aws-dms.CfnEndpoint.SybaseSettingsProperty")
@software.amazon.jsii.Jsii.Proxy(SybaseSettingsProperty.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static interface SybaseSettingsProperty extends software.amazon.jsii.JsiiSerializable {
/**
* 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 SAP ASE 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 .
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerAccessRoleArn() {
return null;
}
/**
* The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the SAP SAE endpoint connection details.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getSecretsManagerSecretId() {
return null;
}
/**
* @return a {@link Builder} of {@link SybaseSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link SybaseSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String secretsManagerAccessRoleArn;
java.lang.String secretsManagerSecretId;
/**
* Sets the value of {@link SybaseSettingsProperty#getSecretsManagerAccessRoleArn}
* @param secretsManagerAccessRoleArn 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 SAP ASE 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 .
*
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerAccessRoleArn(java.lang.String secretsManagerAccessRoleArn) {
this.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn;
return this;
}
/**
* Sets the value of {@link SybaseSettingsProperty#getSecretsManagerSecretId}
* @param secretsManagerSecretId The full ARN, partial ARN, or display name of the SecretsManagerSecret
that contains the SAP SAE endpoint connection details.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder secretsManagerSecretId(java.lang.String secretsManagerSecretId) {
this.secretsManagerSecretId = secretsManagerSecretId;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link SybaseSettingsProperty}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public SybaseSettingsProperty build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link SybaseSettingsProperty}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements SybaseSettingsProperty {
private final java.lang.String secretsManagerAccessRoleArn;
private final java.lang.String secretsManagerSecretId;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.secretsManagerAccessRoleArn = software.amazon.jsii.Kernel.get(this, "secretsManagerAccessRoleArn", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.secretsManagerSecretId = software.amazon.jsii.Kernel.get(this, "secretsManagerSecretId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.secretsManagerAccessRoleArn = builder.secretsManagerAccessRoleArn;
this.secretsManagerSecretId = builder.secretsManagerSecretId;
}
@Override
public final java.lang.String getSecretsManagerAccessRoleArn() {
return this.secretsManagerAccessRoleArn;
}
@Override
public final java.lang.String getSecretsManagerSecretId() {
return this.secretsManagerSecretId;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getSecretsManagerAccessRoleArn() != null) {
data.set("secretsManagerAccessRoleArn", om.valueToTree(this.getSecretsManagerAccessRoleArn()));
}
if (this.getSecretsManagerSecretId() != null) {
data.set("secretsManagerSecretId", om.valueToTree(this.getSecretsManagerSecretId()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-dms.CfnEndpoint.SybaseSettingsProperty"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SybaseSettingsProperty.Jsii$Proxy that = (SybaseSettingsProperty.Jsii$Proxy) o;
if (this.secretsManagerAccessRoleArn != null ? !this.secretsManagerAccessRoleArn.equals(that.secretsManagerAccessRoleArn) : that.secretsManagerAccessRoleArn != null) return false;
return this.secretsManagerSecretId != null ? this.secretsManagerSecretId.equals(that.secretsManagerSecretId) : that.secretsManagerSecretId == null;
}
@Override
public final int hashCode() {
int result = this.secretsManagerAccessRoleArn != null ? this.secretsManagerAccessRoleArn.hashCode() : 0;
result = 31 * result + (this.secretsManagerSecretId != null ? this.secretsManagerSecretId.hashCode() : 0);
return result;
}
}
}
/**
* A fluent builder for {@link software.amazon.awscdk.services.dms.CfnEndpoint}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
/**
* @return a new instance of {@link Builder}.
* @param scope - scope in which this resource is defined.
This parameter is required.
* @param id - scoped id of the resource.
This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static Builder create(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) {
return new Builder(scope, id);
}
private final software.amazon.awscdk.core.Construct scope;
private final java.lang.String id;
private final software.amazon.awscdk.services.dms.CfnEndpointProps.Builder props;
private Builder(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) {
this.scope = scope;
this.id = id;
this.props = new software.amazon.awscdk.services.dms.CfnEndpointProps.Builder();
}
/**
* The type of endpoint.
*
* Valid values are source
and target
.
*
* @return {@code this}
* @param endpointType The type of endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder endpointType(final java.lang.String endpointType) {
this.props.endpointType(endpointType);
return this;
}
/**
* The type of engine for the endpoint, depending on the EndpointType
value.
*
* Valid values : mysql
| oracle
| postgres
| mariadb
| aurora
| aurora-postgresql
| opensearch
| redshift
| s3
| db2
| azuredb
| sybase
| dynamodb
| mongodb
| kinesis
| kafka
| elasticsearch
| docdb
| sqlserver
| neptune
*
* @return {@code this}
* @param engineName The type of engine for the endpoint, depending on the EndpointType
value. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder engineName(final java.lang.String engineName) {
this.props.engineName(engineName);
return this;
}
/**
* The Amazon Resource Name (ARN) for the certificate.
*
* @return {@code this}
* @param certificateArn The Amazon Resource Name (ARN) for the certificate. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder certificateArn(final java.lang.String certificateArn) {
this.props.certificateArn(certificateArn);
return this;
}
/**
* The name of the endpoint database.
*
* For a MySQL source or target endpoint, don't specify DatabaseName
. To migrate to a specific database, use this setting and targetDbType
.
*
* @return {@code this}
* @param databaseName The name of the endpoint database. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder databaseName(final java.lang.String databaseName) {
this.props.databaseName(databaseName);
return this;
}
/**
* Settings in JSON format for the source and target DocumentDB endpoint.
*
* For more information about other available settings, see Using extra connections attributes with Amazon DocumentDB as a source and Using Amazon DocumentDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param docDbSettings Settings in JSON format for the source and target DocumentDB endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder docDbSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.DocDbSettingsProperty docDbSettings) {
this.props.docDbSettings(docDbSettings);
return this;
}
/**
* Settings in JSON format for the source and target DocumentDB endpoint.
*
* For more information about other available settings, see Using extra connections attributes with Amazon DocumentDB as a source and Using Amazon DocumentDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param docDbSettings Settings in JSON format for the source and target DocumentDB endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder docDbSettings(final software.amazon.awscdk.core.IResolvable docDbSettings) {
this.props.docDbSettings(docDbSettings);
return this;
}
/**
* Settings in JSON format for the target Amazon DynamoDB endpoint.
*
* For information about other available settings, see Using object mapping to migrate data to DynamoDB in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param dynamoDbSettings Settings in JSON format for the target Amazon DynamoDB endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder dynamoDbSettings(final software.amazon.awscdk.core.IResolvable dynamoDbSettings) {
this.props.dynamoDbSettings(dynamoDbSettings);
return this;
}
/**
* Settings in JSON format for the target Amazon DynamoDB endpoint.
*
* For information about other available settings, see Using object mapping to migrate data to DynamoDB in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param dynamoDbSettings Settings in JSON format for the target Amazon DynamoDB endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder dynamoDbSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.DynamoDbSettingsProperty dynamoDbSettings) {
this.props.dynamoDbSettings(dynamoDbSettings);
return this;
}
/**
* Settings in JSON format for the target OpenSearch endpoint.
*
* For more information about the available settings, see Extra connection attributes when using OpenSearch as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param elasticsearchSettings Settings in JSON format for the target OpenSearch endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder elasticsearchSettings(final software.amazon.awscdk.core.IResolvable elasticsearchSettings) {
this.props.elasticsearchSettings(elasticsearchSettings);
return this;
}
/**
* Settings in JSON format for the target OpenSearch endpoint.
*
* For more information about the available settings, see Extra connection attributes when using OpenSearch as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param elasticsearchSettings Settings in JSON format for the target OpenSearch endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder elasticsearchSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.ElasticsearchSettingsProperty elasticsearchSettings) {
this.props.elasticsearchSettings(elasticsearchSettings);
return this;
}
/**
* The database endpoint identifier.
*
* Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen, or contain two consecutive hyphens.
*
* @return {@code this}
* @param endpointIdentifier The database endpoint identifier. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder endpointIdentifier(final java.lang.String endpointIdentifier) {
this.props.endpointIdentifier(endpointIdentifier);
return this;
}
/**
* Additional attributes associated with the connection.
*
* Each attribute is specified as a name-value pair associated by an equal sign (=). Multiple attributes are separated by a semicolon (;) with no additional white space. For information on the attributes available for connecting your source or target endpoint, see Working with AWS DMS Endpoints in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param extraConnectionAttributes Additional attributes associated with the connection. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder extraConnectionAttributes(final java.lang.String extraConnectionAttributes) {
this.props.extraConnectionAttributes(extraConnectionAttributes);
return this;
}
/**
* Settings in JSON format for the source GCP MySQL endpoint.
*
* These settings are much the same as the settings for any MySQL-compatible endpoint. For more information, see Extra connection attributes when using MySQL as a source for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param gcpMySqlSettings Settings in JSON format for the source GCP MySQL endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder gcpMySqlSettings(final software.amazon.awscdk.core.IResolvable gcpMySqlSettings) {
this.props.gcpMySqlSettings(gcpMySqlSettings);
return this;
}
/**
* Settings in JSON format for the source GCP MySQL endpoint.
*
* These settings are much the same as the settings for any MySQL-compatible endpoint. For more information, see Extra connection attributes when using MySQL as a source for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param gcpMySqlSettings Settings in JSON format for the source GCP MySQL endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder gcpMySqlSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.GcpMySQLSettingsProperty gcpMySqlSettings) {
this.props.gcpMySqlSettings(gcpMySqlSettings);
return this;
}
/**
* Settings in JSON format for the source IBM Db2 LUW endpoint.
*
* For information about other available settings, see Extra connection attributes when using Db2 LUW as a source for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param ibmDb2Settings Settings in JSON format for the source IBM Db2 LUW endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder ibmDb2Settings(final software.amazon.awscdk.core.IResolvable ibmDb2Settings) {
this.props.ibmDb2Settings(ibmDb2Settings);
return this;
}
/**
* Settings in JSON format for the source IBM Db2 LUW endpoint.
*
* For information about other available settings, see Extra connection attributes when using Db2 LUW as a source for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param ibmDb2Settings Settings in JSON format for the source IBM Db2 LUW endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder ibmDb2Settings(final software.amazon.awscdk.services.dms.CfnEndpoint.IbmDb2SettingsProperty ibmDb2Settings) {
this.props.ibmDb2Settings(ibmDb2Settings);
return this;
}
/**
* Settings in JSON format for the target Apache Kafka endpoint.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kafka topic in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param kafkaSettings Settings in JSON format for the target Apache Kafka endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder kafkaSettings(final software.amazon.awscdk.core.IResolvable kafkaSettings) {
this.props.kafkaSettings(kafkaSettings);
return this;
}
/**
* Settings in JSON format for the target Apache Kafka endpoint.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kafka topic in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param kafkaSettings Settings in JSON format for the target Apache Kafka endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder kafkaSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.KafkaSettingsProperty kafkaSettings) {
this.props.kafkaSettings(kafkaSettings);
return this;
}
/**
* Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kinesis data stream in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param kinesisSettings Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder kinesisSettings(final software.amazon.awscdk.core.IResolvable kinesisSettings) {
this.props.kinesisSettings(kinesisSettings);
return this;
}
/**
* Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams.
*
* For more information about other available settings, see Using object mapping to migrate data to a Kinesis data stream in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param kinesisSettings Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder kinesisSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.KinesisSettingsProperty kinesisSettings) {
this.props.kinesisSettings(kinesisSettings);
return this;
}
/**
* An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint.
*
* If you don't specify a value for the KmsKeyId
parameter, AWS DMS uses your default encryption key.
*
* AWS KMS creates the default encryption key for your AWS account . Your AWS account has a different default encryption key for each AWS Region .
*
* @return {@code this}
* @param kmsKeyId An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder kmsKeyId(final java.lang.String kmsKeyId) {
this.props.kmsKeyId(kmsKeyId);
return this;
}
/**
* Settings in JSON format for the source and target Microsoft SQL Server endpoint.
*
* For information about other available settings, see Extra connection attributes when using SQL Server as a source for AWS DMS and Extra connection attributes when using SQL Server as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param microsoftSqlServerSettings Settings in JSON format for the source and target Microsoft SQL Server endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder microsoftSqlServerSettings(final software.amazon.awscdk.core.IResolvable microsoftSqlServerSettings) {
this.props.microsoftSqlServerSettings(microsoftSqlServerSettings);
return this;
}
/**
* Settings in JSON format for the source and target Microsoft SQL Server endpoint.
*
* For information about other available settings, see Extra connection attributes when using SQL Server as a source for AWS DMS and Extra connection attributes when using SQL Server as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param microsoftSqlServerSettings Settings in JSON format for the source and target Microsoft SQL Server endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder microsoftSqlServerSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.MicrosoftSqlServerSettingsProperty microsoftSqlServerSettings) {
this.props.microsoftSqlServerSettings(microsoftSqlServerSettings);
return this;
}
/**
* Settings in JSON format for the source MongoDB endpoint.
*
* For more information about the available settings, see Using MongoDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param mongoDbSettings Settings in JSON format for the source MongoDB endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mongoDbSettings(final software.amazon.awscdk.core.IResolvable mongoDbSettings) {
this.props.mongoDbSettings(mongoDbSettings);
return this;
}
/**
* Settings in JSON format for the source MongoDB endpoint.
*
* For more information about the available settings, see Using MongoDB as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param mongoDbSettings Settings in JSON format for the source MongoDB endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mongoDbSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.MongoDbSettingsProperty mongoDbSettings) {
this.props.mongoDbSettings(mongoDbSettings);
return this;
}
/**
* Settings in JSON format for the source and target MySQL endpoint.
*
* For information about other available settings, see Extra connection attributes when using MySQL as a source for AWS DMS and Extra connection attributes when using a MySQL-compatible database as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param mySqlSettings Settings in JSON format for the source and target MySQL endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mySqlSettings(final software.amazon.awscdk.core.IResolvable mySqlSettings) {
this.props.mySqlSettings(mySqlSettings);
return this;
}
/**
* Settings in JSON format for the source and target MySQL endpoint.
*
* For information about other available settings, see Extra connection attributes when using MySQL as a source for AWS DMS and Extra connection attributes when using a MySQL-compatible database as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param mySqlSettings Settings in JSON format for the source and target MySQL endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder mySqlSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.MySqlSettingsProperty mySqlSettings) {
this.props.mySqlSettings(mySqlSettings);
return this;
}
/**
* Settings in JSON format for the target Amazon Neptune endpoint.
*
* For more information about the available settings, see Specifying endpoint settings for Amazon Neptune as a target in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param neptuneSettings Settings in JSON format for the target Amazon Neptune endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder neptuneSettings(final software.amazon.awscdk.core.IResolvable neptuneSettings) {
this.props.neptuneSettings(neptuneSettings);
return this;
}
/**
* Settings in JSON format for the target Amazon Neptune endpoint.
*
* For more information about the available settings, see Specifying endpoint settings for Amazon Neptune as a target in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param neptuneSettings Settings in JSON format for the target Amazon Neptune endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder neptuneSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.NeptuneSettingsProperty neptuneSettings) {
this.props.neptuneSettings(neptuneSettings);
return this;
}
/**
* Settings in JSON format for the source and target Oracle endpoint.
*
* For information about other available settings, see Extra connection attributes when using Oracle as a source for AWS DMS and Extra connection attributes when using Oracle as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param oracleSettings Settings in JSON format for the source and target Oracle endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder oracleSettings(final software.amazon.awscdk.core.IResolvable oracleSettings) {
this.props.oracleSettings(oracleSettings);
return this;
}
/**
* Settings in JSON format for the source and target Oracle endpoint.
*
* For information about other available settings, see Extra connection attributes when using Oracle as a source for AWS DMS and Extra connection attributes when using Oracle as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param oracleSettings Settings in JSON format for the source and target Oracle endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder oracleSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.OracleSettingsProperty oracleSettings) {
this.props.oracleSettings(oracleSettings);
return this;
}
/**
* The password to be used to log in to the endpoint database.
*
* @return {@code this}
* @param password The password to be used to log in to the endpoint database. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder password(final java.lang.String password) {
this.props.password(password);
return this;
}
/**
* The port used by the endpoint database.
*
* @return {@code this}
* @param port The port used by the endpoint database. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder port(final java.lang.Number port) {
this.props.port(port);
return this;
}
/**
* Settings in JSON format for the source and target PostgreSQL endpoint.
*
* 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 .
*
* @return {@code this}
* @param postgreSqlSettings Settings in JSON format for the source and target PostgreSQL endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder postgreSqlSettings(final software.amazon.awscdk.core.IResolvable postgreSqlSettings) {
this.props.postgreSqlSettings(postgreSqlSettings);
return this;
}
/**
* Settings in JSON format for the source and target PostgreSQL endpoint.
*
* 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 .
*
* @return {@code this}
* @param postgreSqlSettings Settings in JSON format for the source and target PostgreSQL endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder postgreSqlSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.PostgreSqlSettingsProperty postgreSqlSettings) {
this.props.postgreSqlSettings(postgreSqlSettings);
return this;
}
/**
* Settings in JSON format for the target Redis endpoint.
*
* For information about other available settings, see Specifying endpoint settings for Redis as a target in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param redisSettings Settings in JSON format for the target Redis endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder redisSettings(final software.amazon.awscdk.core.IResolvable redisSettings) {
this.props.redisSettings(redisSettings);
return this;
}
/**
* Settings in JSON format for the target Redis endpoint.
*
* For information about other available settings, see Specifying endpoint settings for Redis as a target in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param redisSettings Settings in JSON format for the target Redis endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder redisSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.RedisSettingsProperty redisSettings) {
this.props.redisSettings(redisSettings);
return this;
}
/**
* Settings in JSON format for the Amazon Redshift endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon Redshift as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param redshiftSettings Settings in JSON format for the Amazon Redshift endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder redshiftSettings(final software.amazon.awscdk.core.IResolvable redshiftSettings) {
this.props.redshiftSettings(redshiftSettings);
return this;
}
/**
* Settings in JSON format for the Amazon Redshift endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon Redshift as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param redshiftSettings Settings in JSON format for the Amazon Redshift endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder redshiftSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.RedshiftSettingsProperty redshiftSettings) {
this.props.redshiftSettings(redshiftSettings);
return this;
}
/**
* A display name for the resource identifier at the end of the EndpointArn
response parameter that is returned in the created Endpoint
object.
*
* The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as Example-App-ARN1
.
*
* For example, this value might result in the EndpointArn
value arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1
. If you don't specify a ResourceIdentifier
value, AWS DMS generates a default identifier value for the end of EndpointArn
.
*
* @return {@code this}
* @param resourceIdentifier A display name for the resource identifier at the end of the EndpointArn
response parameter that is returned in the created Endpoint
object. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder resourceIdentifier(final java.lang.String resourceIdentifier) {
this.props.resourceIdentifier(resourceIdentifier);
return this;
}
/**
* Settings in JSON format for the source and target Amazon S3 endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon S3 as a source for AWS DMS and Extra connection attributes when using Amazon S3 as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param s3Settings Settings in JSON format for the source and target Amazon S3 endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder s3Settings(final software.amazon.awscdk.core.IResolvable s3Settings) {
this.props.s3Settings(s3Settings);
return this;
}
/**
* Settings in JSON format for the source and target Amazon S3 endpoint.
*
* For more information about other available settings, see Extra connection attributes when using Amazon S3 as a source for AWS DMS and Extra connection attributes when using Amazon S3 as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param s3Settings Settings in JSON format for the source and target Amazon S3 endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder s3Settings(final software.amazon.awscdk.services.dms.CfnEndpoint.S3SettingsProperty s3Settings) {
this.props.s3Settings(s3Settings);
return this;
}
/**
* The name of the server where the endpoint database resides.
*
* @return {@code this}
* @param serverName The name of the server where the endpoint database resides. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serverName(final java.lang.String serverName) {
this.props.serverName(serverName);
return this;
}
/**
* The Secure Sockets Layer (SSL) mode to use for the SSL connection. The default is none
.
*
*
*
* When engine_name
is set to S3, the only allowed value is none
.
*
*
*
* @return {@code this}
* @param sslMode The Secure Sockets Layer (SSL) mode to use for the SSL connection. The default is none
. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sslMode(final java.lang.String sslMode) {
this.props.sslMode(sslMode);
return this;
}
/**
* Settings in JSON format for the source and target SAP ASE endpoint.
*
* For information about other available settings, see Extra connection attributes when using SAP ASE as a source for AWS DMS and Extra connection attributes when using SAP ASE as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param sybaseSettings Settings in JSON format for the source and target SAP ASE endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sybaseSettings(final software.amazon.awscdk.core.IResolvable sybaseSettings) {
this.props.sybaseSettings(sybaseSettings);
return this;
}
/**
* Settings in JSON format for the source and target SAP ASE endpoint.
*
* For information about other available settings, see Extra connection attributes when using SAP ASE as a source for AWS DMS and Extra connection attributes when using SAP ASE as a target for AWS DMS in the AWS Database Migration Service User Guide .
*
* @return {@code this}
* @param sybaseSettings Settings in JSON format for the source and target SAP ASE endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sybaseSettings(final software.amazon.awscdk.services.dms.CfnEndpoint.SybaseSettingsProperty sybaseSettings) {
this.props.sybaseSettings(sybaseSettings);
return this;
}
/**
* One or more tags to be assigned to the endpoint.
*
* @return {@code this}
* @param tags One or more tags to be assigned to the endpoint. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder tags(final java.util.List extends software.amazon.awscdk.core.CfnTag> tags) {
this.props.tags(tags);
return this;
}
/**
* The user name to be used to log in to the endpoint database.
*
* @return {@code this}
* @param username The user name to be used to log in to the endpoint database. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder username(final java.lang.String username) {
this.props.username(username);
return this;
}
/**
* @return a newly built instance of {@link software.amazon.awscdk.services.dms.CfnEndpoint}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public software.amazon.awscdk.services.dms.CfnEndpoint build() {
return new software.amazon.awscdk.services.dms.CfnEndpoint(
this.scope,
this.id,
this.props.build()
);
}
}
}