/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DatabaseMigrationService { namespace Model { /** *

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 * Also:

AWS * API Reference

*/ class AWS_DATABASEMIGRATIONSERVICE_API KafkaSettings { public: KafkaSettings(); KafkaSettings(Aws::Utils::Json::JsonView jsonValue); KafkaSettings& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The broker location and port of the Kafka broker that hosts your Kafka * instance. Specify the broker in the form * broker-hostname-or-ip:port . For example, * "ec2-12-345-678-901.compute-1.amazonaws.com:2345".

*/ inline const Aws::String& GetBroker() const{ return m_broker; } /** *

The broker location and port of the Kafka broker that hosts your Kafka * instance. Specify the broker in the form * broker-hostname-or-ip:port . For example, * "ec2-12-345-678-901.compute-1.amazonaws.com:2345".

*/ inline bool BrokerHasBeenSet() const { return m_brokerHasBeenSet; } /** *

The broker location and port of the Kafka broker that hosts your Kafka * instance. Specify the broker in the form * broker-hostname-or-ip:port . For example, * "ec2-12-345-678-901.compute-1.amazonaws.com:2345".

*/ inline void SetBroker(const Aws::String& value) { m_brokerHasBeenSet = true; m_broker = value; } /** *

The broker location and port of the Kafka broker that hosts your Kafka * instance. Specify the broker in the form * broker-hostname-or-ip:port . For example, * "ec2-12-345-678-901.compute-1.amazonaws.com:2345".

*/ inline void SetBroker(Aws::String&& value) { m_brokerHasBeenSet = true; m_broker = std::move(value); } /** *

The broker location and port of the Kafka broker that hosts your Kafka * instance. Specify the broker in the form * broker-hostname-or-ip:port . For example, * "ec2-12-345-678-901.compute-1.amazonaws.com:2345".

*/ inline void SetBroker(const char* value) { m_brokerHasBeenSet = true; m_broker.assign(value); } /** *

The broker location and port of the Kafka broker that hosts your Kafka * instance. Specify the broker in the form * broker-hostname-or-ip:port . For example, * "ec2-12-345-678-901.compute-1.amazonaws.com:2345".

*/ inline KafkaSettings& WithBroker(const Aws::String& value) { SetBroker(value); return *this;} /** *

The broker location and port of the Kafka broker that hosts your Kafka * instance. Specify the broker in the form * broker-hostname-or-ip:port . For example, * "ec2-12-345-678-901.compute-1.amazonaws.com:2345".

*/ inline KafkaSettings& WithBroker(Aws::String&& value) { SetBroker(std::move(value)); return *this;} /** *

The broker location and port of the Kafka broker that hosts your Kafka * instance. Specify the broker in the form * broker-hostname-or-ip:port . For example, * "ec2-12-345-678-901.compute-1.amazonaws.com:2345".

*/ inline KafkaSettings& WithBroker(const char* value) { SetBroker(value); return *this;} /** *

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.

*/ inline const Aws::String& GetTopic() const{ return m_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.

*/ inline bool TopicHasBeenSet() const { return m_topicHasBeenSet; } /** *

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.

*/ inline void SetTopic(const Aws::String& value) { m_topicHasBeenSet = true; m_topic = value; } /** *

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.

*/ inline void SetTopic(Aws::String&& value) { m_topicHasBeenSet = true; m_topic = std::move(value); } /** *

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.

*/ inline void SetTopic(const char* value) { m_topicHasBeenSet = true; m_topic.assign(value); } /** *

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.

*/ inline KafkaSettings& WithTopic(const Aws::String& value) { SetTopic(value); return *this;} /** *

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.

*/ inline KafkaSettings& WithTopic(Aws::String&& value) { SetTopic(std::move(value)); return *this;} /** *

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.

*/ inline KafkaSettings& WithTopic(const char* value) { SetTopic(value); 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).

*/ inline const MessageFormatValue& GetMessageFormat() const{ return m_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).

*/ inline bool MessageFormatHasBeenSet() const { return m_messageFormatHasBeenSet; } /** *

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).

*/ inline void SetMessageFormat(const MessageFormatValue& value) { m_messageFormatHasBeenSet = true; m_messageFormat = value; } /** *

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).

*/ inline void SetMessageFormat(MessageFormatValue&& value) { m_messageFormatHasBeenSet = true; m_messageFormat = std::move(value); } /** *

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).

*/ inline KafkaSettings& WithMessageFormat(const MessageFormatValue& value) { SetMessageFormat(value); 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).

*/ inline KafkaSettings& WithMessageFormat(MessageFormatValue&& value) { SetMessageFormat(std::move(value)); 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.

*/ inline bool GetIncludeTransactionDetails() const{ return m_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.

*/ inline bool IncludeTransactionDetailsHasBeenSet() const { return m_includeTransactionDetailsHasBeenSet; } /** *

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.

*/ inline void SetIncludeTransactionDetails(bool value) { m_includeTransactionDetailsHasBeenSet = true; m_includeTransactionDetails = value; } /** *

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.

*/ inline KafkaSettings& WithIncludeTransactionDetails(bool value) { SetIncludeTransactionDetails(value); return *this;} /** *

Shows the partition value within the Kafka message output, unless the * partition type is schema-table-type. The default is * false.

*/ inline bool GetIncludePartitionValue() const{ return m_includePartitionValue; } /** *

Shows the partition value within the Kafka message output, unless the * partition type is schema-table-type. The default is * false.

*/ inline bool IncludePartitionValueHasBeenSet() const { return m_includePartitionValueHasBeenSet; } /** *

Shows the partition value within the Kafka message output, unless the * partition type is schema-table-type. The default is * false.

*/ inline void SetIncludePartitionValue(bool value) { m_includePartitionValueHasBeenSet = true; m_includePartitionValue = value; } /** *

Shows the partition value within the Kafka message output, unless the * partition type is schema-table-type. The default is * false.

*/ inline KafkaSettings& WithIncludePartitionValue(bool value) { SetIncludePartitionValue(value); 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.

*/ inline bool GetPartitionIncludeSchemaTable() const{ return m_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.

*/ inline bool PartitionIncludeSchemaTableHasBeenSet() const { return m_partitionIncludeSchemaTableHasBeenSet; } /** *

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.

*/ inline void SetPartitionIncludeSchemaTable(bool value) { m_partitionIncludeSchemaTableHasBeenSet = true; m_partitionIncludeSchemaTable = value; } /** *

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.

*/ inline KafkaSettings& WithPartitionIncludeSchemaTable(bool value) { SetPartitionIncludeSchemaTable(value); 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.

*/ inline bool GetIncludeTableAlterOperations() const{ return m_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.

*/ inline bool IncludeTableAlterOperationsHasBeenSet() const { return m_includeTableAlterOperationsHasBeenSet; } /** *

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.

*/ inline void SetIncludeTableAlterOperations(bool value) { m_includeTableAlterOperationsHasBeenSet = true; m_includeTableAlterOperations = value; } /** *

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.

*/ inline KafkaSettings& WithIncludeTableAlterOperations(bool value) { SetIncludeTableAlterOperations(value); 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.

*/ inline bool GetIncludeControlDetails() const{ return m_includeControlDetails; } /** *

Shows detailed control information for table definition, column definition, * and table and column changes in the Kafka message output. The default is * false.

*/ inline bool IncludeControlDetailsHasBeenSet() const { return m_includeControlDetailsHasBeenSet; } /** *

Shows detailed control information for table definition, column definition, * and table and column changes in the Kafka message output. The default is * false.

*/ inline void SetIncludeControlDetails(bool value) { m_includeControlDetailsHasBeenSet = true; m_includeControlDetails = value; } /** *

Shows detailed control information for table definition, column definition, * and table and column changes in the Kafka message output. The default is * false.

*/ inline KafkaSettings& WithIncludeControlDetails(bool value) { SetIncludeControlDetails(value); return *this;} /** *

The maximum size in bytes for records created on the endpoint The default is * 1,000,000.

*/ inline int GetMessageMaxBytes() const{ return m_messageMaxBytes; } /** *

The maximum size in bytes for records created on the endpoint The default is * 1,000,000.

*/ inline bool MessageMaxBytesHasBeenSet() const { return m_messageMaxBytesHasBeenSet; } /** *

The maximum size in bytes for records created on the endpoint The default is * 1,000,000.

*/ inline void SetMessageMaxBytes(int value) { m_messageMaxBytesHasBeenSet = true; m_messageMaxBytes = value; } /** *

The maximum size in bytes for records created on the endpoint The default is * 1,000,000.

*/ inline KafkaSettings& WithMessageMaxBytes(int value) { SetMessageMaxBytes(value); return *this;} /** *

Include NULL and empty columns for records migrated to the endpoint. The * default is false.

*/ inline bool GetIncludeNullAndEmpty() const{ return m_includeNullAndEmpty; } /** *

Include NULL and empty columns for records migrated to the endpoint. The * default is false.

*/ inline bool IncludeNullAndEmptyHasBeenSet() const { return m_includeNullAndEmptyHasBeenSet; } /** *

Include NULL and empty columns for records migrated to the endpoint. The * default is false.

*/ inline void SetIncludeNullAndEmpty(bool value) { m_includeNullAndEmptyHasBeenSet = true; m_includeNullAndEmpty = value; } /** *

Include NULL and empty columns for records migrated to the endpoint. The * default is false.

*/ inline KafkaSettings& WithIncludeNullAndEmpty(bool value) { SetIncludeNullAndEmpty(value); return *this;} private: Aws::String m_broker; bool m_brokerHasBeenSet; Aws::String m_topic; bool m_topicHasBeenSet; MessageFormatValue m_messageFormat; bool m_messageFormatHasBeenSet; bool m_includeTransactionDetails; bool m_includeTransactionDetailsHasBeenSet; bool m_includePartitionValue; bool m_includePartitionValueHasBeenSet; bool m_partitionIncludeSchemaTable; bool m_partitionIncludeSchemaTableHasBeenSet; bool m_includeTableAlterOperations; bool m_includeTableAlterOperationsHasBeenSet; bool m_includeControlDetails; bool m_includeControlDetailsHasBeenSet; int m_messageMaxBytes; bool m_messageMaxBytesHasBeenSet; bool m_includeNullAndEmpty; bool m_includeNullAndEmptyHasBeenSet; }; } // namespace Model } // namespace DatabaseMigrationService } // namespace Aws