/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.databasemigrationservice.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* 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. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class KafkaSettings implements Serializable, Cloneable, StructuredPojo { /** *
* 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
* Database Migration Service in the Database Migration Service User Guide.
*
* The topic to which you migrate the data. If you don't specify a topic, DMS specifies
* "kafka-default-topic"
as the migration topic.
*
* 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).
*
* 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
.
*
* Shows the partition value within the Kafka message output unless the partition type is
* schema-table-type
. The default is false
.
*
* 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
.
*
* 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
.
*
* Shows detailed control information for table definition, column definition, and table and column changes in the
* Kafka message output. The default is false
.
*
* The maximum size in bytes for records created on the endpoint The default is 1,000,000. *
*/ private Integer messageMaxBytes; /** *
* Include NULL and empty columns for records migrated to the endpoint. The default is false
.
*
* 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
.
*
* The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint. *
*/ private String sslClientCertificateArn; /** ** The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint. *
*/ private String sslClientKeyArn; /** ** The password for the client private key used to securely connect to a Kafka target endpoint. *
*/ private String sslClientKeyPassword; /** ** The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that DMS uses to securely connect * to your Kafka target endpoint. *
*/ private String sslCaCertificateArn; /** ** The secure user name you created when you first set up your MSK cluster to validate a client identity and make an * encrypted connection between server and client using SASL-SSL authentication. *
*/ private String saslUsername; /** ** The secure password you created when you first set up your MSK cluster to validate a client identity and make an * encrypted connection between server and client using SASL-SSL authentication. *
*/ private String saslPassword; /** *
* Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, 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.
*
* For SASL/SSL authentication, DMS supports the SCRAM-SHA-512
mechanism by default. DMS versions 3.5.0
* and later also support the PLAIN
mechanism. To use the PLAIN
mechanism, set this
* parameter to PLAIN.
*
* Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. *
*/ private String sslEndpointIdentificationAlgorithm; /** *
* 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
* Database Migration Service in the Database Migration Service User Guide.
*
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 Database Migration Service in the Database Migration Service User Guide.
*/
public void setBroker(String broker) {
this.broker = 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
* Database Migration Service in the Database Migration Service User Guide.
*
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 Database Migration Service in the Database Migration Service User Guide.
*/
public String getBroker() {
return this.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
* Database Migration Service in the Database Migration Service User Guide.
*
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 Database Migration Service in the Database Migration Service User Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withBroker(String broker) {
setBroker(broker);
return this;
}
/**
*
* The topic to which you migrate the data. If you don't specify a topic, DMS specifies
* "kafka-default-topic"
as the migration topic.
*
"kafka-default-topic"
as the migration topic.
*/
public void setTopic(String topic) {
this.topic = topic;
}
/**
*
* The topic to which you migrate the data. If you don't specify a topic, DMS specifies
* "kafka-default-topic"
as the migration topic.
*
"kafka-default-topic"
as the migration topic.
*/
public String getTopic() {
return this.topic;
}
/**
*
* The topic to which you migrate the data. If you don't specify a topic, DMS specifies
* "kafka-default-topic"
as the migration topic.
*
"kafka-default-topic"
as the migration topic.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withTopic(String topic) {
setTopic(topic);
return this;
}
/**
*
* 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).
*
JSON
* (default) or JSON_UNFORMATTED
(a single line with no tab).
* @see MessageFormatValue
*/
public void setMessageFormat(String messageFormat) {
this.messageFormat = 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).
*
JSON
* (default) or JSON_UNFORMATTED
(a single line with no tab).
* @see MessageFormatValue
*/
public String getMessageFormat() {
return this.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).
*
JSON
* (default) or JSON_UNFORMATTED
(a single line with no tab).
* @return Returns a reference to this object so that method calls can be chained together.
* @see MessageFormatValue
*/
public KafkaSettings withMessageFormat(String messageFormat) {
setMessageFormat(messageFormat);
return this;
}
/**
*
* 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).
*
JSON
* (default) or JSON_UNFORMATTED
(a single line with no tab).
* @return Returns a reference to this object so that method calls can be chained together.
* @see MessageFormatValue
*/
public KafkaSettings withMessageFormat(MessageFormatValue messageFormat) {
this.messageFormat = messageFormat.toString();
return this;
}
/**
*
* 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
.
*
transaction_id
, previous
* transaction_id
, and transaction_record_id
(the record offset within a
* transaction). The default is false
.
*/
public void setIncludeTransactionDetails(Boolean includeTransactionDetails) {
this.includeTransactionDetails = 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
.
*
transaction_id
, previous
* transaction_id
, and transaction_record_id
(the record offset within a
* transaction). The default is false
.
*/
public Boolean getIncludeTransactionDetails() {
return this.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
.
*
transaction_id
, previous
* transaction_id
, and transaction_record_id
(the record offset within a
* transaction). The default is false
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withIncludeTransactionDetails(Boolean includeTransactionDetails) {
setIncludeTransactionDetails(includeTransactionDetails);
return this;
}
/**
*
* 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
.
*
transaction_id
, previous
* transaction_id
, and transaction_record_id
(the record offset within a
* transaction). The default is false
.
*/
public Boolean isIncludeTransactionDetails() {
return this.includeTransactionDetails;
}
/**
*
* Shows the partition value within the Kafka message output unless the partition type is
* schema-table-type
. The default is false
.
*
schema-table-type
. The default is false
.
*/
public void setIncludePartitionValue(Boolean includePartitionValue) {
this.includePartitionValue = includePartitionValue;
}
/**
*
* Shows the partition value within the Kafka message output unless the partition type is
* schema-table-type
. The default is false
.
*
schema-table-type
. The default is false
.
*/
public Boolean getIncludePartitionValue() {
return this.includePartitionValue;
}
/**
*
* Shows the partition value within the Kafka message output unless the partition type is
* schema-table-type
. The default is false
.
*
schema-table-type
. The default is false
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withIncludePartitionValue(Boolean includePartitionValue) {
setIncludePartitionValue(includePartitionValue);
return this;
}
/**
*
* Shows the partition value within the Kafka message output unless the partition type is
* schema-table-type
. The default is false
.
*
schema-table-type
. The default is false
.
*/
public Boolean isIncludePartitionValue() {
return this.includePartitionValue;
}
/**
*
* 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
.
*
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
.
*/
public void setPartitionIncludeSchemaTable(Boolean partitionIncludeSchemaTable) {
this.partitionIncludeSchemaTable = 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
.
*
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
.
*/
public Boolean getPartitionIncludeSchemaTable() {
return this.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
.
*
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 Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withPartitionIncludeSchemaTable(Boolean partitionIncludeSchemaTable) {
setPartitionIncludeSchemaTable(partitionIncludeSchemaTable);
return this;
}
/**
*
* 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
.
*
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
.
*/
public Boolean isPartitionIncludeSchemaTable() {
return this.partitionIncludeSchemaTable;
}
/**
*
* 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
.
*
rename-table
, drop-table
, add-column
, drop-column
, and
* rename-column
. The default is false
.
*/
public void setIncludeTableAlterOperations(Boolean includeTableAlterOperations) {
this.includeTableAlterOperations = 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
.
*
rename-table
, drop-table
, add-column
, drop-column
,
* and rename-column
. The default is false
.
*/
public Boolean getIncludeTableAlterOperations() {
return this.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
.
*
rename-table
, drop-table
, add-column
, drop-column
, and
* rename-column
. The default is false
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withIncludeTableAlterOperations(Boolean includeTableAlterOperations) {
setIncludeTableAlterOperations(includeTableAlterOperations);
return this;
}
/**
*
* 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
.
*
rename-table
, drop-table
, add-column
, drop-column
,
* and rename-column
. The default is false
.
*/
public Boolean isIncludeTableAlterOperations() {
return this.includeTableAlterOperations;
}
/**
*
* Shows detailed control information for table definition, column definition, and table and column changes in the
* Kafka message output. The default is false
.
*
false
.
*/
public void setIncludeControlDetails(Boolean includeControlDetails) {
this.includeControlDetails = includeControlDetails;
}
/**
*
* Shows detailed control information for table definition, column definition, and table and column changes in the
* Kafka message output. The default is false
.
*
false
.
*/
public Boolean getIncludeControlDetails() {
return this.includeControlDetails;
}
/**
*
* Shows detailed control information for table definition, column definition, and table and column changes in the
* Kafka message output. The default is false
.
*
false
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withIncludeControlDetails(Boolean includeControlDetails) {
setIncludeControlDetails(includeControlDetails);
return this;
}
/**
*
* Shows detailed control information for table definition, column definition, and table and column changes in the
* Kafka message output. The default is false
.
*
false
.
*/
public Boolean isIncludeControlDetails() {
return this.includeControlDetails;
}
/**
* * The maximum size in bytes for records created on the endpoint The default is 1,000,000. *
* * @param messageMaxBytes * The maximum size in bytes for records created on the endpoint The default is 1,000,000. */ public void setMessageMaxBytes(Integer messageMaxBytes) { this.messageMaxBytes = messageMaxBytes; } /** ** The maximum size in bytes for records created on the endpoint The default is 1,000,000. *
* * @return The maximum size in bytes for records created on the endpoint The default is 1,000,000. */ public Integer getMessageMaxBytes() { return this.messageMaxBytes; } /** ** The maximum size in bytes for records created on the endpoint The default is 1,000,000. *
* * @param messageMaxBytes * The maximum size in bytes for records created on the endpoint The default is 1,000,000. * @return Returns a reference to this object so that method calls can be chained together. */ public KafkaSettings withMessageMaxBytes(Integer messageMaxBytes) { setMessageMaxBytes(messageMaxBytes); return this; } /** *
* Include NULL and empty columns for records migrated to the endpoint. The default is false
.
*
false
.
*/
public void setIncludeNullAndEmpty(Boolean includeNullAndEmpty) {
this.includeNullAndEmpty = includeNullAndEmpty;
}
/**
*
* Include NULL and empty columns for records migrated to the endpoint. The default is false
.
*
false
.
*/
public Boolean getIncludeNullAndEmpty() {
return this.includeNullAndEmpty;
}
/**
*
* Include NULL and empty columns for records migrated to the endpoint. The default is false
.
*
false
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withIncludeNullAndEmpty(Boolean includeNullAndEmpty) {
setIncludeNullAndEmpty(includeNullAndEmpty);
return this;
}
/**
*
* Include NULL and empty columns for records migrated to the endpoint. The default is false
.
*
false
.
*/
public Boolean isIncludeNullAndEmpty() {
return this.includeNullAndEmpty;
}
/**
*
* 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
.
*
ssl-encryption
, ssl-authentication
, and sasl-ssl
.
* sasl-ssl
requires SaslUsername
and SaslPassword
.
* @see KafkaSecurityProtocol
*/
public void setSecurityProtocol(String securityProtocol) {
this.securityProtocol = 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
.
*
ssl-encryption
, ssl-authentication
, and sasl-ssl
.
* sasl-ssl
requires SaslUsername
and SaslPassword
.
* @see KafkaSecurityProtocol
*/
public String getSecurityProtocol() {
return this.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
.
*
ssl-encryption
, ssl-authentication
, and sasl-ssl
.
* sasl-ssl
requires SaslUsername
and SaslPassword
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KafkaSecurityProtocol
*/
public KafkaSettings withSecurityProtocol(String securityProtocol) {
setSecurityProtocol(securityProtocol);
return this;
}
/**
*
* 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
.
*
ssl-encryption
, ssl-authentication
, and sasl-ssl
.
* sasl-ssl
requires SaslUsername
and SaslPassword
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KafkaSecurityProtocol
*/
public KafkaSettings withSecurityProtocol(KafkaSecurityProtocol securityProtocol) {
this.securityProtocol = securityProtocol.toString();
return this;
}
/**
* * The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint. *
* * @param sslClientCertificateArn * The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target * endpoint. */ public void setSslClientCertificateArn(String sslClientCertificateArn) { this.sslClientCertificateArn = sslClientCertificateArn; } /** ** The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint. *
* * @return The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target * endpoint. */ public String getSslClientCertificateArn() { return this.sslClientCertificateArn; } /** ** The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint. *
* * @param sslClientCertificateArn * The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target * endpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public KafkaSettings withSslClientCertificateArn(String sslClientCertificateArn) { setSslClientCertificateArn(sslClientCertificateArn); return this; } /** ** The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint. *
* * @param sslClientKeyArn * The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target * endpoint. */ public void setSslClientKeyArn(String sslClientKeyArn) { this.sslClientKeyArn = sslClientKeyArn; } /** ** The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint. *
* * @return The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target * endpoint. */ public String getSslClientKeyArn() { return this.sslClientKeyArn; } /** ** The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint. *
* * @param sslClientKeyArn * The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target * endpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public KafkaSettings withSslClientKeyArn(String sslClientKeyArn) { setSslClientKeyArn(sslClientKeyArn); return this; } /** ** The password for the client private key used to securely connect to a Kafka target endpoint. *
* * @param sslClientKeyPassword * The password for the client private key used to securely connect to a Kafka target endpoint. */ public void setSslClientKeyPassword(String sslClientKeyPassword) { this.sslClientKeyPassword = sslClientKeyPassword; } /** ** The password for the client private key used to securely connect to a Kafka target endpoint. *
* * @return The password for the client private key used to securely connect to a Kafka target endpoint. */ public String getSslClientKeyPassword() { return this.sslClientKeyPassword; } /** ** The password for the client private key used to securely connect to a Kafka target endpoint. *
* * @param sslClientKeyPassword * The password for the client private key used to securely connect to a Kafka target endpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public KafkaSettings withSslClientKeyPassword(String sslClientKeyPassword) { setSslClientKeyPassword(sslClientKeyPassword); return this; } /** ** The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that DMS uses to securely connect * to your Kafka target endpoint. *
* * @param sslCaCertificateArn * The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that DMS uses to securely * connect to your Kafka target endpoint. */ public void setSslCaCertificateArn(String sslCaCertificateArn) { this.sslCaCertificateArn = sslCaCertificateArn; } /** ** The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that DMS uses to securely connect * to your Kafka target endpoint. *
* * @return The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that DMS uses to securely * connect to your Kafka target endpoint. */ public String getSslCaCertificateArn() { return this.sslCaCertificateArn; } /** ** The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that DMS uses to securely connect * to your Kafka target endpoint. *
* * @param sslCaCertificateArn * The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that DMS uses to securely * connect to your Kafka target endpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public KafkaSettings withSslCaCertificateArn(String sslCaCertificateArn) { setSslCaCertificateArn(sslCaCertificateArn); return this; } /** ** The secure user name you created when you first set up your MSK cluster to validate a client identity and make an * encrypted connection between server and client using SASL-SSL authentication. *
* * @param saslUsername * The secure user name you created when you first set up your MSK cluster to validate a client identity and * make an encrypted connection between server and client using SASL-SSL authentication. */ public void setSaslUsername(String saslUsername) { this.saslUsername = saslUsername; } /** ** The secure user name you created when you first set up your MSK cluster to validate a client identity and make an * encrypted connection between server and client using SASL-SSL authentication. *
* * @return The secure user name you created when you first set up your MSK cluster to validate a client identity and * make an encrypted connection between server and client using SASL-SSL authentication. */ public String getSaslUsername() { return this.saslUsername; } /** ** The secure user name you created when you first set up your MSK cluster to validate a client identity and make an * encrypted connection between server and client using SASL-SSL authentication. *
* * @param saslUsername * The secure user name you created when you first set up your MSK cluster to validate a client identity and * make an encrypted connection between server and client using SASL-SSL authentication. * @return Returns a reference to this object so that method calls can be chained together. */ public KafkaSettings withSaslUsername(String saslUsername) { setSaslUsername(saslUsername); return this; } /** ** The secure password you created when you first set up your MSK cluster to validate a client identity and make an * encrypted connection between server and client using SASL-SSL authentication. *
* * @param saslPassword * The secure password you created when you first set up your MSK cluster to validate a client identity and * make an encrypted connection between server and client using SASL-SSL authentication. */ public void setSaslPassword(String saslPassword) { this.saslPassword = saslPassword; } /** ** The secure password you created when you first set up your MSK cluster to validate a client identity and make an * encrypted connection between server and client using SASL-SSL authentication. *
* * @return The secure password you created when you first set up your MSK cluster to validate a client identity and * make an encrypted connection between server and client using SASL-SSL authentication. */ public String getSaslPassword() { return this.saslPassword; } /** ** The secure password you created when you first set up your MSK cluster to validate a client identity and make an * encrypted connection between server and client using SASL-SSL authentication. *
* * @param saslPassword * The secure password you created when you first set up your MSK cluster to validate a client identity and * make an encrypted connection between server and client using SASL-SSL authentication. * @return Returns a reference to this object so that method calls can be chained together. */ public KafkaSettings withSaslPassword(String saslPassword) { setSaslPassword(saslPassword); return this; } /** *
* Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, 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.
*
true
to avoid adding a '0x' prefix to raw data in hexadecimal
* format. For example, by default, 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.
*/
public void setNoHexPrefix(Boolean noHexPrefix) {
this.noHexPrefix = noHexPrefix;
}
/**
*
* Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, 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.
*
true
to avoid adding a '0x' prefix to raw data in hexadecimal
* format. For example, by default, 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.
*/
public Boolean getNoHexPrefix() {
return this.noHexPrefix;
}
/**
*
* Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, 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.
*
true
to avoid adding a '0x' prefix to raw data in hexadecimal
* format. For example, by default, 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 Returns a reference to this object so that method calls can be chained together.
*/
public KafkaSettings withNoHexPrefix(Boolean noHexPrefix) {
setNoHexPrefix(noHexPrefix);
return this;
}
/**
*
* Set this optional parameter to true
to avoid adding a '0x' prefix to raw data in hexadecimal format.
* For example, by default, 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.
*
true
to avoid adding a '0x' prefix to raw data in hexadecimal
* format. For example, by default, 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.
*/
public Boolean isNoHexPrefix() {
return this.noHexPrefix;
}
/**
*
* For SASL/SSL authentication, DMS supports the SCRAM-SHA-512
mechanism by default. DMS versions 3.5.0
* and later also support the PLAIN
mechanism. To use the PLAIN
mechanism, set this
* parameter to PLAIN.
*
SCRAM-SHA-512
mechanism by default. DMS
* versions 3.5.0 and later also support the PLAIN
mechanism. To use the PLAIN
* mechanism, set this parameter to PLAIN.
* @see KafkaSaslMechanism
*/
public void setSaslMechanism(String saslMechanism) {
this.saslMechanism = saslMechanism;
}
/**
*
* For SASL/SSL authentication, DMS supports the SCRAM-SHA-512
mechanism by default. DMS versions 3.5.0
* and later also support the PLAIN
mechanism. To use the PLAIN
mechanism, set this
* parameter to PLAIN.
*
SCRAM-SHA-512
mechanism by default. DMS
* versions 3.5.0 and later also support the PLAIN
mechanism. To use the PLAIN
* mechanism, set this parameter to PLAIN.
* @see KafkaSaslMechanism
*/
public String getSaslMechanism() {
return this.saslMechanism;
}
/**
*
* For SASL/SSL authentication, DMS supports the SCRAM-SHA-512
mechanism by default. DMS versions 3.5.0
* and later also support the PLAIN
mechanism. To use the PLAIN
mechanism, set this
* parameter to PLAIN.
*
SCRAM-SHA-512
mechanism by default. DMS
* versions 3.5.0 and later also support the PLAIN
mechanism. To use the PLAIN
* mechanism, set this parameter to PLAIN.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KafkaSaslMechanism
*/
public KafkaSettings withSaslMechanism(String saslMechanism) {
setSaslMechanism(saslMechanism);
return this;
}
/**
*
* For SASL/SSL authentication, DMS supports the SCRAM-SHA-512
mechanism by default. DMS versions 3.5.0
* and later also support the PLAIN
mechanism. To use the PLAIN
mechanism, set this
* parameter to PLAIN.
*
SCRAM-SHA-512
mechanism by default. DMS
* versions 3.5.0 and later also support the PLAIN
mechanism. To use the PLAIN
* mechanism, set this parameter to PLAIN.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KafkaSaslMechanism
*/
public KafkaSettings withSaslMechanism(KafkaSaslMechanism saslMechanism) {
this.saslMechanism = saslMechanism.toString();
return this;
}
/**
* * Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. *
* * @param sslEndpointIdentificationAlgorithm * Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. * @see KafkaSslEndpointIdentificationAlgorithm */ public void setSslEndpointIdentificationAlgorithm(String sslEndpointIdentificationAlgorithm) { this.sslEndpointIdentificationAlgorithm = sslEndpointIdentificationAlgorithm; } /** ** Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. *
* * @return Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. * @see KafkaSslEndpointIdentificationAlgorithm */ public String getSslEndpointIdentificationAlgorithm() { return this.sslEndpointIdentificationAlgorithm; } /** ** Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. *
* * @param sslEndpointIdentificationAlgorithm * Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. * @return Returns a reference to this object so that method calls can be chained together. * @see KafkaSslEndpointIdentificationAlgorithm */ public KafkaSettings withSslEndpointIdentificationAlgorithm(String sslEndpointIdentificationAlgorithm) { setSslEndpointIdentificationAlgorithm(sslEndpointIdentificationAlgorithm); return this; } /** ** Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. *
* * @param sslEndpointIdentificationAlgorithm * Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. * @return Returns a reference to this object so that method calls can be chained together. * @see KafkaSslEndpointIdentificationAlgorithm */ public KafkaSettings withSslEndpointIdentificationAlgorithm(KafkaSslEndpointIdentificationAlgorithm sslEndpointIdentificationAlgorithm) { this.sslEndpointIdentificationAlgorithm = sslEndpointIdentificationAlgorithm.toString(); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getBroker() != null) sb.append("Broker: ").append(getBroker()).append(","); if (getTopic() != null) sb.append("Topic: ").append(getTopic()).append(","); if (getMessageFormat() != null) sb.append("MessageFormat: ").append(getMessageFormat()).append(","); if (getIncludeTransactionDetails() != null) sb.append("IncludeTransactionDetails: ").append(getIncludeTransactionDetails()).append(","); if (getIncludePartitionValue() != null) sb.append("IncludePartitionValue: ").append(getIncludePartitionValue()).append(","); if (getPartitionIncludeSchemaTable() != null) sb.append("PartitionIncludeSchemaTable: ").append(getPartitionIncludeSchemaTable()).append(","); if (getIncludeTableAlterOperations() != null) sb.append("IncludeTableAlterOperations: ").append(getIncludeTableAlterOperations()).append(","); if (getIncludeControlDetails() != null) sb.append("IncludeControlDetails: ").append(getIncludeControlDetails()).append(","); if (getMessageMaxBytes() != null) sb.append("MessageMaxBytes: ").append(getMessageMaxBytes()).append(","); if (getIncludeNullAndEmpty() != null) sb.append("IncludeNullAndEmpty: ").append(getIncludeNullAndEmpty()).append(","); if (getSecurityProtocol() != null) sb.append("SecurityProtocol: ").append(getSecurityProtocol()).append(","); if (getSslClientCertificateArn() != null) sb.append("SslClientCertificateArn: ").append(getSslClientCertificateArn()).append(","); if (getSslClientKeyArn() != null) sb.append("SslClientKeyArn: ").append(getSslClientKeyArn()).append(","); if (getSslClientKeyPassword() != null) sb.append("SslClientKeyPassword: ").append("***Sensitive Data Redacted***").append(","); if (getSslCaCertificateArn() != null) sb.append("SslCaCertificateArn: ").append(getSslCaCertificateArn()).append(","); if (getSaslUsername() != null) sb.append("SaslUsername: ").append(getSaslUsername()).append(","); if (getSaslPassword() != null) sb.append("SaslPassword: ").append("***Sensitive Data Redacted***").append(","); if (getNoHexPrefix() != null) sb.append("NoHexPrefix: ").append(getNoHexPrefix()).append(","); if (getSaslMechanism() != null) sb.append("SaslMechanism: ").append(getSaslMechanism()).append(","); if (getSslEndpointIdentificationAlgorithm() != null) sb.append("SslEndpointIdentificationAlgorithm: ").append(getSslEndpointIdentificationAlgorithm()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof KafkaSettings == false) return false; KafkaSettings other = (KafkaSettings) obj; if (other.getBroker() == null ^ this.getBroker() == null) return false; if (other.getBroker() != null && other.getBroker().equals(this.getBroker()) == false) return false; if (other.getTopic() == null ^ this.getTopic() == null) return false; if (other.getTopic() != null && other.getTopic().equals(this.getTopic()) == false) return false; if (other.getMessageFormat() == null ^ this.getMessageFormat() == null) return false; if (other.getMessageFormat() != null && other.getMessageFormat().equals(this.getMessageFormat()) == false) return false; if (other.getIncludeTransactionDetails() == null ^ this.getIncludeTransactionDetails() == null) return false; if (other.getIncludeTransactionDetails() != null && other.getIncludeTransactionDetails().equals(this.getIncludeTransactionDetails()) == false) return false; if (other.getIncludePartitionValue() == null ^ this.getIncludePartitionValue() == null) return false; if (other.getIncludePartitionValue() != null && other.getIncludePartitionValue().equals(this.getIncludePartitionValue()) == false) return false; if (other.getPartitionIncludeSchemaTable() == null ^ this.getPartitionIncludeSchemaTable() == null) return false; if (other.getPartitionIncludeSchemaTable() != null && other.getPartitionIncludeSchemaTable().equals(this.getPartitionIncludeSchemaTable()) == false) return false; if (other.getIncludeTableAlterOperations() == null ^ this.getIncludeTableAlterOperations() == null) return false; if (other.getIncludeTableAlterOperations() != null && other.getIncludeTableAlterOperations().equals(this.getIncludeTableAlterOperations()) == false) return false; if (other.getIncludeControlDetails() == null ^ this.getIncludeControlDetails() == null) return false; if (other.getIncludeControlDetails() != null && other.getIncludeControlDetails().equals(this.getIncludeControlDetails()) == false) return false; if (other.getMessageMaxBytes() == null ^ this.getMessageMaxBytes() == null) return false; if (other.getMessageMaxBytes() != null && other.getMessageMaxBytes().equals(this.getMessageMaxBytes()) == false) return false; if (other.getIncludeNullAndEmpty() == null ^ this.getIncludeNullAndEmpty() == null) return false; if (other.getIncludeNullAndEmpty() != null && other.getIncludeNullAndEmpty().equals(this.getIncludeNullAndEmpty()) == false) return false; if (other.getSecurityProtocol() == null ^ this.getSecurityProtocol() == null) return false; if (other.getSecurityProtocol() != null && other.getSecurityProtocol().equals(this.getSecurityProtocol()) == false) return false; if (other.getSslClientCertificateArn() == null ^ this.getSslClientCertificateArn() == null) return false; if (other.getSslClientCertificateArn() != null && other.getSslClientCertificateArn().equals(this.getSslClientCertificateArn()) == false) return false; if (other.getSslClientKeyArn() == null ^ this.getSslClientKeyArn() == null) return false; if (other.getSslClientKeyArn() != null && other.getSslClientKeyArn().equals(this.getSslClientKeyArn()) == false) return false; if (other.getSslClientKeyPassword() == null ^ this.getSslClientKeyPassword() == null) return false; if (other.getSslClientKeyPassword() != null && other.getSslClientKeyPassword().equals(this.getSslClientKeyPassword()) == false) return false; if (other.getSslCaCertificateArn() == null ^ this.getSslCaCertificateArn() == null) return false; if (other.getSslCaCertificateArn() != null && other.getSslCaCertificateArn().equals(this.getSslCaCertificateArn()) == false) return false; if (other.getSaslUsername() == null ^ this.getSaslUsername() == null) return false; if (other.getSaslUsername() != null && other.getSaslUsername().equals(this.getSaslUsername()) == false) return false; if (other.getSaslPassword() == null ^ this.getSaslPassword() == null) return false; if (other.getSaslPassword() != null && other.getSaslPassword().equals(this.getSaslPassword()) == false) return false; if (other.getNoHexPrefix() == null ^ this.getNoHexPrefix() == null) return false; if (other.getNoHexPrefix() != null && other.getNoHexPrefix().equals(this.getNoHexPrefix()) == false) return false; if (other.getSaslMechanism() == null ^ this.getSaslMechanism() == null) return false; if (other.getSaslMechanism() != null && other.getSaslMechanism().equals(this.getSaslMechanism()) == false) return false; if (other.getSslEndpointIdentificationAlgorithm() == null ^ this.getSslEndpointIdentificationAlgorithm() == null) return false; if (other.getSslEndpointIdentificationAlgorithm() != null && other.getSslEndpointIdentificationAlgorithm().equals(this.getSslEndpointIdentificationAlgorithm()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getBroker() == null) ? 0 : getBroker().hashCode()); hashCode = prime * hashCode + ((getTopic() == null) ? 0 : getTopic().hashCode()); hashCode = prime * hashCode + ((getMessageFormat() == null) ? 0 : getMessageFormat().hashCode()); hashCode = prime * hashCode + ((getIncludeTransactionDetails() == null) ? 0 : getIncludeTransactionDetails().hashCode()); hashCode = prime * hashCode + ((getIncludePartitionValue() == null) ? 0 : getIncludePartitionValue().hashCode()); hashCode = prime * hashCode + ((getPartitionIncludeSchemaTable() == null) ? 0 : getPartitionIncludeSchemaTable().hashCode()); hashCode = prime * hashCode + ((getIncludeTableAlterOperations() == null) ? 0 : getIncludeTableAlterOperations().hashCode()); hashCode = prime * hashCode + ((getIncludeControlDetails() == null) ? 0 : getIncludeControlDetails().hashCode()); hashCode = prime * hashCode + ((getMessageMaxBytes() == null) ? 0 : getMessageMaxBytes().hashCode()); hashCode = prime * hashCode + ((getIncludeNullAndEmpty() == null) ? 0 : getIncludeNullAndEmpty().hashCode()); hashCode = prime * hashCode + ((getSecurityProtocol() == null) ? 0 : getSecurityProtocol().hashCode()); hashCode = prime * hashCode + ((getSslClientCertificateArn() == null) ? 0 : getSslClientCertificateArn().hashCode()); hashCode = prime * hashCode + ((getSslClientKeyArn() == null) ? 0 : getSslClientKeyArn().hashCode()); hashCode = prime * hashCode + ((getSslClientKeyPassword() == null) ? 0 : getSslClientKeyPassword().hashCode()); hashCode = prime * hashCode + ((getSslCaCertificateArn() == null) ? 0 : getSslCaCertificateArn().hashCode()); hashCode = prime * hashCode + ((getSaslUsername() == null) ? 0 : getSaslUsername().hashCode()); hashCode = prime * hashCode + ((getSaslPassword() == null) ? 0 : getSaslPassword().hashCode()); hashCode = prime * hashCode + ((getNoHexPrefix() == null) ? 0 : getNoHexPrefix().hashCode()); hashCode = prime * hashCode + ((getSaslMechanism() == null) ? 0 : getSaslMechanism().hashCode()); hashCode = prime * hashCode + ((getSslEndpointIdentificationAlgorithm() == null) ? 0 : getSslEndpointIdentificationAlgorithm().hashCode()); return hashCode; } @Override public KafkaSettings clone() { try { return (KafkaSettings) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.databasemigrationservice.model.transform.KafkaSettingsMarshaller.getInstance().marshall(this, protocolMarshaller); } }