blob: 653a587acb75bd5c41123383c81a4121425cdb86 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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 org.apache.camel.builder.endpoint.dsl;
import javax.annotation.Generated;
import org.apache.camel.ExchangePattern;
import org.apache.camel.builder.EndpointConsumerBuilder;
import org.apache.camel.builder.EndpointProducerBuilder;
import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
import org.apache.camel.spi.ExceptionHandler;
/**
* Represents a Debezium PostgresSQL endpoint which is used to capture changes
* in PostgresSQL database so that that applications can see those changes and
* respond to them.
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
public interface DebeziumPostgresEndpointBuilderFactory {
/**
* Builder for endpoint for the Debezium PostgresSQL Connector component.
*/
public interface DebeziumPostgresEndpointBuilder
extends
EndpointConsumerBuilder {
default AdvancedDebeziumPostgresEndpointBuilder advanced() {
return (AdvancedDebeziumPostgresEndpointBuilder) this;
}
/**
* Allows for bridging the consumer to the Camel routing Error Handler,
* which mean any exceptions occurred while the consumer is trying to
* pickup incoming messages, or the likes, will now be processed as a
* message and handled by the routing Error Handler. By default the
* consumer will use the org.apache.camel.spi.ExceptionHandler to deal
* with exceptions, that will be logged at WARN or ERROR level and
* ignored.
*
* The option is a: <code>boolean</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder bridgeErrorHandler(
boolean bridgeErrorHandler) {
doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
return this;
}
/**
* Allows for bridging the consumer to the Camel routing Error Handler,
* which mean any exceptions occurred while the consumer is trying to
* pickup incoming messages, or the likes, will now be processed as a
* message and handled by the routing Error Handler. By default the
* consumer will use the org.apache.camel.spi.ExceptionHandler to deal
* with exceptions, that will be logged at WARN or ERROR level and
* ignored.
*
* The option will be converted to a <code>boolean</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder bridgeErrorHandler(
String bridgeErrorHandler) {
doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
return this;
}
/**
* The Converter class that should be used to serialize and deserialize
* key data for offsets. The default is JSON converter.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder internalKeyConverter(
String internalKeyConverter) {
doSetProperty("internalKeyConverter", internalKeyConverter);
return this;
}
/**
* The Converter class that should be used to serialize and deserialize
* value data for offsets. The default is JSON converter.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder internalValueConverter(
String internalValueConverter) {
doSetProperty("internalValueConverter", internalValueConverter);
return this;
}
/**
* The name of the Java class of the commit policy. It defines when
* offsets commit has to be triggered based on the number of events
* processed and the time elapsed since the last commit. This class must
* implement the interface 'OffsetCommitPolicy'. The default is a
* periodic commit policy based upon time intervals.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetCommitPolicy(
String offsetCommitPolicy) {
doSetProperty("offsetCommitPolicy", offsetCommitPolicy);
return this;
}
/**
* Maximum number of milliseconds to wait for records to flush and
* partition offset data to be committed to offset storage before
* cancelling the process and restoring the offset data to be committed
* in a future attempt. The default is 5 seconds.
*
* The option is a: <code>long</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetCommitTimeoutMs(
long offsetCommitTimeoutMs) {
doSetProperty("offsetCommitTimeoutMs", offsetCommitTimeoutMs);
return this;
}
/**
* Maximum number of milliseconds to wait for records to flush and
* partition offset data to be committed to offset storage before
* cancelling the process and restoring the offset data to be committed
* in a future attempt. The default is 5 seconds.
*
* The option will be converted to a <code>long</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetCommitTimeoutMs(
String offsetCommitTimeoutMs) {
doSetProperty("offsetCommitTimeoutMs", offsetCommitTimeoutMs);
return this;
}
/**
* Interval at which to try committing offsets. The default is 1 minute.
*
* The option is a: <code>long</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetFlushIntervalMs(
long offsetFlushIntervalMs) {
doSetProperty("offsetFlushIntervalMs", offsetFlushIntervalMs);
return this;
}
/**
* Interval at which to try committing offsets. The default is 1 minute.
*
* The option will be converted to a <code>long</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetFlushIntervalMs(
String offsetFlushIntervalMs) {
doSetProperty("offsetFlushIntervalMs", offsetFlushIntervalMs);
return this;
}
/**
* The name of the Java class that is responsible for persistence of
* connector offsets.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetStorage(
String offsetStorage) {
doSetProperty("offsetStorage", offsetStorage);
return this;
}
/**
* Path to file where offsets are to be stored. Required when
* offset.storage is set to the FileOffsetBackingStore.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetStorageFileName(
String offsetStorageFileName) {
doSetProperty("offsetStorageFileName", offsetStorageFileName);
return this;
}
/**
* The number of partitions used when creating the offset storage topic.
* Required when offset.storage is set to the 'KafkaOffsetBackingStore'.
*
* The option is a: <code>int</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetStoragePartitions(
int offsetStoragePartitions) {
doSetProperty("offsetStoragePartitions", offsetStoragePartitions);
return this;
}
/**
* The number of partitions used when creating the offset storage topic.
* Required when offset.storage is set to the 'KafkaOffsetBackingStore'.
*
* The option will be converted to a <code>int</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetStoragePartitions(
String offsetStoragePartitions) {
doSetProperty("offsetStoragePartitions", offsetStoragePartitions);
return this;
}
/**
* Replication factor used when creating the offset storage topic.
* Required when offset.storage is set to the KafkaOffsetBackingStore.
*
* The option is a: <code>int</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetStorageReplicationFactor(
int offsetStorageReplicationFactor) {
doSetProperty("offsetStorageReplicationFactor", offsetStorageReplicationFactor);
return this;
}
/**
* Replication factor used when creating the offset storage topic.
* Required when offset.storage is set to the KafkaOffsetBackingStore.
*
* The option will be converted to a <code>int</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetStorageReplicationFactor(
String offsetStorageReplicationFactor) {
doSetProperty("offsetStorageReplicationFactor", offsetStorageReplicationFactor);
return this;
}
/**
* The name of the Kafka topic where offsets are to be stored. Required
* when offset.storage is set to the KafkaOffsetBackingStore.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default DebeziumPostgresEndpointBuilder offsetStorageTopic(
String offsetStorageTopic) {
doSetProperty("offsetStorageTopic", offsetStorageTopic);
return this;
}
/**
* Description is not available here, please check Debezium website for
* corresponding key 'column.blacklist' description.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder columnBlacklist(
String columnBlacklist) {
doSetProperty("columnBlacklist", columnBlacklist);
return this;
}
/**
* The name of the database the connector should be monitoring.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseDbname(
String databaseDbname) {
doSetProperty("databaseDbname", databaseDbname);
return this;
}
/**
* The path to the file that will be used to record the database
* history.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseHistoryFileFilename(
String databaseHistoryFileFilename) {
doSetProperty("databaseHistoryFileFilename", databaseHistoryFileFilename);
return this;
}
/**
* Resolvable hostname or IP address of the Postgres database server.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseHostname(
String databaseHostname) {
doSetProperty("databaseHostname", databaseHostname);
return this;
}
/**
* A semicolon separated list of SQL statements to be executed when a
* JDBC connection to the database is established. Note that the
* connector may establish JDBC connections at its own discretion, so
* this should typically be used for configurationof session parameters
* only, but not for executing DML statements. Use doubled semicolon
* (';;') to use a semicolon as a character and not as a delimiter.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseInitialStatements(
String databaseInitialStatements) {
doSetProperty("databaseInitialStatements", databaseInitialStatements);
return this;
}
/**
* Password of the Postgres database user to be used when connecting to
* the database.
*
* The option is a: <code>java.lang.String</code> type.
*
* Required: true
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databasePassword(
String databasePassword) {
doSetProperty("databasePassword", databasePassword);
return this;
}
/**
* Port of the Postgres database server.
*
* The option is a: <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databasePort(int databasePort) {
doSetProperty("databasePort", databasePort);
return this;
}
/**
* Port of the Postgres database server.
*
* The option will be converted to a <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databasePort(String databasePort) {
doSetProperty("databasePort", databasePort);
return this;
}
/**
* Unique name that identifies the database server and all recorded
* offsets, and that is used as a prefix for all schemas and topics.
* Each distinct installation should have a separate namespace and be
* monitored by at most one Debezium connector.
*
* The option is a: <code>java.lang.String</code> type.
*
* Required: true
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseServerName(
String databaseServerName) {
doSetProperty("databaseServerName", databaseServerName);
return this;
}
/**
* File containing the SSL Certificate for the client. See the Postgres
* SSL docs for further information.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseSslcert(
String databaseSslcert) {
doSetProperty("databaseSslcert", databaseSslcert);
return this;
}
/**
* A name of class to that creates SSL Sockets. Use
* org.postgresql.ssl.NonValidatingFactory to disable SSL validation in
* development environments.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseSslfactory(
String databaseSslfactory) {
doSetProperty("databaseSslfactory", databaseSslfactory);
return this;
}
/**
* File containing the SSL private key for the client. See the Postgres
* SSL docs for further information.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseSslkey(
String databaseSslkey) {
doSetProperty("databaseSslkey", databaseSslkey);
return this;
}
/**
* Whether to use an encrypted connection to Postgres. Options
* include'disable' (the default) to use an unencrypted connection;
* 'require' to use a secure (encrypted) connection, and fail if one
* cannot be established; 'verify-ca' like 'required' but additionally
* verify the server TLS certificate against the configured Certificate
* Authority (CA) certificates, or fail if no valid matching CA
* certificates are found; or'verify-full' like 'verify-ca' but
* additionally verify that the server certificate matches the host to
* which the connection is attempted.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseSslmode(
String databaseSslmode) {
doSetProperty("databaseSslmode", databaseSslmode);
return this;
}
/**
* Password to access the client private key from the file specified by
* 'database.sslkey'. See the Postgres SSL docs for further information.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseSslpassword(
String databaseSslpassword) {
doSetProperty("databaseSslpassword", databaseSslpassword);
return this;
}
/**
* File containing the root certificate(s) against which the server is
* validated. See the Postgres JDBC SSL docs for further information.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseSslrootcert(
String databaseSslrootcert) {
doSetProperty("databaseSslrootcert", databaseSslrootcert);
return this;
}
/**
* Enable or disable TCP keep-alive probe to avoid dropping TCP
* connection.
*
* The option is a: <code>boolean</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseTcpkeepalive(
boolean databaseTcpkeepalive) {
doSetProperty("databaseTcpkeepalive", databaseTcpkeepalive);
return this;
}
/**
* Enable or disable TCP keep-alive probe to avoid dropping TCP
* connection.
*
* The option will be converted to a <code>boolean</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseTcpkeepalive(
String databaseTcpkeepalive) {
doSetProperty("databaseTcpkeepalive", databaseTcpkeepalive);
return this;
}
/**
* Name of the Postgres database user to be used when connecting to the
* database.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder databaseUser(String databaseUser) {
doSetProperty("databaseUser", databaseUser);
return this;
}
/**
* Specify how DECIMAL and NUMERIC columns should be represented in
* change events, including:'precise' (the default) uses
* java.math.BigDecimal to represent values, which are encoded in the
* change events using a binary representation and Kafka Connect's
* 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to
* represent values; 'double' represents values using Java's 'double',
* which may not offer the precision but will be far easier to use in
* consumers.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder decimalHandlingMode(
String decimalHandlingMode) {
doSetProperty("decimalHandlingMode", decimalHandlingMode);
return this;
}
/**
* Length of an interval in milli-seconds in in which the connector
* periodically sends heartbeat messages to a heartbeat topic. Use 0 to
* disable heartbeat messages. Disabled by default.
*
* The option is a: <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder heartbeatIntervalMs(
int heartbeatIntervalMs) {
doSetProperty("heartbeatIntervalMs", heartbeatIntervalMs);
return this;
}
/**
* Length of an interval in milli-seconds in in which the connector
* periodically sends heartbeat messages to a heartbeat topic. Use 0 to
* disable heartbeat messages. Disabled by default.
*
* The option will be converted to a <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder heartbeatIntervalMs(
String heartbeatIntervalMs) {
doSetProperty("heartbeatIntervalMs", heartbeatIntervalMs);
return this;
}
/**
* The prefix that is used to name heartbeat topics.Defaults to
* __debezium-heartbeat.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder heartbeatTopicsPrefix(
String heartbeatTopicsPrefix) {
doSetProperty("heartbeatTopicsPrefix", heartbeatTopicsPrefix);
return this;
}
/**
* Specify how HSTORE columns should be represented in change events,
* including:'json' represents values as json string'map' (default)
* represents values using java.util.Map.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder hstoreHandlingMode(
String hstoreHandlingMode) {
doSetProperty("hstoreHandlingMode", hstoreHandlingMode);
return this;
}
/**
* Specify whether the fields of data type not supported by Debezium
* should be processed:'false' (the default) omits the fields; 'true'
* converts the field into an implementation dependent binary
* representation.
*
* The option is a: <code>boolean</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder includeUnknownDatatypes(
boolean includeUnknownDatatypes) {
doSetProperty("includeUnknownDatatypes", includeUnknownDatatypes);
return this;
}
/**
* Specify whether the fields of data type not supported by Debezium
* should be processed:'false' (the default) omits the fields; 'true'
* converts the field into an implementation dependent binary
* representation.
*
* The option will be converted to a <code>boolean</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder includeUnknownDatatypes(
String includeUnknownDatatypes) {
doSetProperty("includeUnknownDatatypes", includeUnknownDatatypes);
return this;
}
/**
* Maximum size of each batch of source records. Defaults to 2048.
*
* The option is a: <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder maxBatchSize(int maxBatchSize) {
doSetProperty("maxBatchSize", maxBatchSize);
return this;
}
/**
* Maximum size of each batch of source records. Defaults to 2048.
*
* The option will be converted to a <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder maxBatchSize(String maxBatchSize) {
doSetProperty("maxBatchSize", maxBatchSize);
return this;
}
/**
* Maximum size of the queue for change events read from the database
* log but not yet recorded or forwarded. Defaults to 8192, and should
* always be larger than the maximum batch size.
*
* The option is a: <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder maxQueueSize(int maxQueueSize) {
doSetProperty("maxQueueSize", maxQueueSize);
return this;
}
/**
* Maximum size of the queue for change events read from the database
* log but not yet recorded or forwarded. Defaults to 8192, and should
* always be larger than the maximum batch size.
*
* The option will be converted to a <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder maxQueueSize(String maxQueueSize) {
doSetProperty("maxQueueSize", maxQueueSize);
return this;
}
/**
* A semicolon-separated list of expressions that match fully-qualified
* tables and column(s) to be used as message key. Each expression must
* match the pattern ':',where the table names could be defined as
* (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the
* specific connector,and the key columns are a comma-separated list of
* columns representing the custom key. For any table without an
* explicit key configuration the table's primary key column(s) will be
* used as message key.Example:
* dbserver1.inventory.orderlines:orderId,orderLineId;dbserver1.inventory.orders:id.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder messageKeyColumns(
String messageKeyColumns) {
doSetProperty("messageKeyColumns", messageKeyColumns);
return this;
}
/**
* The name of the Postgres logical decoding plugin installed on the
* server. Supported values are 'decoderbufs' and 'wal2json'. Defaults
* to 'decoderbufs'.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder pluginName(String pluginName) {
doSetProperty("pluginName", pluginName);
return this;
}
/**
* Frequency in milliseconds to wait for new change events to appear
* after receiving no events. Defaults to 500ms.
*
* The option is a: <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder pollIntervalMs(
long pollIntervalMs) {
doSetProperty("pollIntervalMs", pollIntervalMs);
return this;
}
/**
* Frequency in milliseconds to wait for new change events to appear
* after receiving no events. Defaults to 500ms.
*
* The option will be converted to a <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder pollIntervalMs(
String pollIntervalMs) {
doSetProperty("pollIntervalMs", pollIntervalMs);
return this;
}
/**
* The name of the Postgres 10 publication used for streaming changes
* from a plugin.Defaults to 'dbz_publication'.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder publicationName(
String publicationName) {
doSetProperty("publicationName", publicationName);
return this;
}
/**
* The schemas for which events must not be captured.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder schemaBlacklist(
String schemaBlacklist) {
doSetProperty("schemaBlacklist", schemaBlacklist);
return this;
}
/**
* Specify the conditions that trigger a refresh of the in-memory schema
* for a table. 'columns_diff' (the default) is the safest mode,
* ensuring the in-memory schema stays in-sync with the database table's
* schema at all times. 'columns_diff_exclude_unchanged_toast' instructs
* the connector to refresh the in-memory schema cache if there is a
* discrepancy between it and the schema derived from the incoming
* message, unless unchanged TOASTable data fully accounts for the
* discrepancy. This setting can improve connector performance
* significantly if there are frequently-updated tables that have
* TOASTed data that are rarely part of these updates. However, it is
* possible for the in-memory schema to become outdated if TOASTable
* columns are dropped from the table.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder schemaRefreshMode(
String schemaRefreshMode) {
doSetProperty("schemaRefreshMode", schemaRefreshMode);
return this;
}
/**
* The schemas for which events should be captured.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder schemaWhitelist(
String schemaWhitelist) {
doSetProperty("schemaWhitelist", schemaWhitelist);
return this;
}
/**
* Whether or not to drop the logical replication slot when the
* connector finishes orderlyBy default the replication is kept so that
* on restart progress can resume from the last recorded location.
*
* The option is a: <code>boolean</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder slotDropOnStop(
boolean slotDropOnStop) {
doSetProperty("slotDropOnStop", slotDropOnStop);
return this;
}
/**
* Whether or not to drop the logical replication slot when the
* connector finishes orderlyBy default the replication is kept so that
* on restart progress can resume from the last recorded location.
*
* The option will be converted to a <code>boolean</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder slotDropOnStop(
String slotDropOnStop) {
doSetProperty("slotDropOnStop", slotDropOnStop);
return this;
}
/**
* How many times to retry connecting to a replication slot when an
* attempt fails.
*
* The option is a: <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder slotMaxRetries(
int slotMaxRetries) {
doSetProperty("slotMaxRetries", slotMaxRetries);
return this;
}
/**
* How many times to retry connecting to a replication slot when an
* attempt fails.
*
* The option will be converted to a <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder slotMaxRetries(
String slotMaxRetries) {
doSetProperty("slotMaxRetries", slotMaxRetries);
return this;
}
/**
* The name of the Postgres logical decoding slot created for streaming
* changes from a plugin.Defaults to 'debezium.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder slotName(String slotName) {
doSetProperty("slotName", slotName);
return this;
}
/**
* The number of milli-seconds to wait between retry attempts when the
* connector fails to connect to a replication slot.
*
* The option is a: <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder slotRetryDelayMs(
long slotRetryDelayMs) {
doSetProperty("slotRetryDelayMs", slotRetryDelayMs);
return this;
}
/**
* The number of milli-seconds to wait between retry attempts when the
* connector fails to connect to a replication slot.
*
* The option will be converted to a <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder slotRetryDelayMs(
String slotRetryDelayMs) {
doSetProperty("slotRetryDelayMs", slotRetryDelayMs);
return this;
}
/**
* Any optional parameters used by logical decoding plugin. Semi-colon
* separated. E.g.
* 'add-tables=public.table,public.table2;include-lsn=true'.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder slotStreamParams(
String slotStreamParams) {
doSetProperty("slotStreamParams", slotStreamParams);
return this;
}
/**
* When 'snapshot.mode' is set as custom, this setting must be set to
* specify a fully qualified class name to load (via the default class
* loader).This class must implement the 'Snapshotter' interface and is
* called on each app boot to determine whether to do a snapshot and how
* to build queries.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotCustomClass(
String snapshotCustomClass) {
doSetProperty("snapshotCustomClass", snapshotCustomClass);
return this;
}
/**
* The number of milliseconds to delay before a snapshot will begin.
*
* The option is a: <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotDelayMs(
long snapshotDelayMs) {
doSetProperty("snapshotDelayMs", snapshotDelayMs);
return this;
}
/**
* The number of milliseconds to delay before a snapshot will begin.
*
* The option will be converted to a <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotDelayMs(
String snapshotDelayMs) {
doSetProperty("snapshotDelayMs", snapshotDelayMs);
return this;
}
/**
* The maximum number of records that should be loaded into memory while
* performing a snapshot.
*
* The option is a: <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotFetchSize(
int snapshotFetchSize) {
doSetProperty("snapshotFetchSize", snapshotFetchSize);
return this;
}
/**
* The maximum number of records that should be loaded into memory while
* performing a snapshot.
*
* The option will be converted to a <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotFetchSize(
String snapshotFetchSize) {
doSetProperty("snapshotFetchSize", snapshotFetchSize);
return this;
}
/**
* The maximum number of millis to wait for table locks at the beginning
* of a snapshot. If locks cannot be acquired in this time frame, the
* snapshot will be aborted. Defaults to 10 seconds.
*
* The option is a: <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotLockTimeoutMs(
long snapshotLockTimeoutMs) {
doSetProperty("snapshotLockTimeoutMs", snapshotLockTimeoutMs);
return this;
}
/**
* The maximum number of millis to wait for table locks at the beginning
* of a snapshot. If locks cannot be acquired in this time frame, the
* snapshot will be aborted. Defaults to 10 seconds.
*
* The option will be converted to a <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotLockTimeoutMs(
String snapshotLockTimeoutMs) {
doSetProperty("snapshotLockTimeoutMs", snapshotLockTimeoutMs);
return this;
}
/**
* The criteria for running a snapshot upon startup of the connector.
* Options include: 'always' to specify that the connector run a
* snapshot each time it starts up; 'initial' (the default) to specify
* the connector can run a snapshot only when no offsets are available
* for the logical server name; 'initial_only' same as 'initial' except
* the connector should stop after completing the snapshot and before it
* would normally start emitting changes;'never' to specify the
* connector should never run a snapshot and that upon first startup the
* connector should read from the last position (LSN) recorded by the
* server; and'exported' to specify the connector should run a snapshot
* based on the position when the replication slot was created; 'custom'
* to specify a custom class with 'snapshot.custom_class' which will be
* loaded and used to determine the snapshot, see docs for more details.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotMode(String snapshotMode) {
doSetProperty("snapshotMode", snapshotMode);
return this;
}
/**
* This property contains a comma-separated list of fully-qualified
* tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on
* thespecific connectors . Select statements for the individual tables
* are specified in further configuration properties, one for each
* table, identified by the id
* 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or
* 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME',
* respectively. The value of those properties is the select statement
* to use when retrieving data from the specific table during
* snapshotting. A possible use case for large append-only tables is
* setting a specific point where to start (resume) snapshotting, in
* case a previous snapshotting was interrupted.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder snapshotSelectStatementOverrides(
String snapshotSelectStatementOverrides) {
doSetProperty("snapshotSelectStatementOverrides", snapshotSelectStatementOverrides);
return this;
}
/**
* A version of the format of the publicly visible source part in the
* message.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder sourceStructVersion(
String sourceStructVersion) {
doSetProperty("sourceStructVersion", sourceStructVersion);
return this;
}
/**
* Frequency in milliseconds for sending replication connection status
* updates to the server. Defaults to 10 seconds (10000 ms).
*
* The option is a: <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder statusUpdateIntervalMs(
int statusUpdateIntervalMs) {
doSetProperty("statusUpdateIntervalMs", statusUpdateIntervalMs);
return this;
}
/**
* Frequency in milliseconds for sending replication connection status
* updates to the server. Defaults to 10 seconds (10000 ms).
*
* The option will be converted to a <code>int</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder statusUpdateIntervalMs(
String statusUpdateIntervalMs) {
doSetProperty("statusUpdateIntervalMs", statusUpdateIntervalMs);
return this;
}
/**
* Description is not available here, please check Debezium website for
* corresponding key 'table.blacklist' description.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder tableBlacklist(
String tableBlacklist) {
doSetProperty("tableBlacklist", tableBlacklist);
return this;
}
/**
* The tables for which changes are to be captured.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder tableWhitelist(
String tableWhitelist) {
doSetProperty("tableWhitelist", tableWhitelist);
return this;
}
/**
* Time, date, and timestamps can be represented with different kinds of
* precisions, including:'adaptive' (the default) bases the precision of
* time, date, and timestamp values on the database column's precision;
* 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields
* always use microseconds precision;'connect' always represents time,
* date, and timestamp values using Kafka Connect's built-in
* representations for Time, Date, and Timestamp, which uses millisecond
* precision regardless of the database columns' precision .
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder timePrecisionMode(
String timePrecisionMode) {
doSetProperty("timePrecisionMode", timePrecisionMode);
return this;
}
/**
* Specify the constant that will be provided by Debezium to indicate
* that the original value is a toasted value not provided by the
* database.If starts with 'hex:' prefix it is expected that the rest of
* the string repesents hexadecimally encoded octets.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder toastedValuePlaceholder(
String toastedValuePlaceholder) {
doSetProperty("toastedValuePlaceholder", toastedValuePlaceholder);
return this;
}
/**
* Whether delete operations should be represented by a delete event and
* a subsquenttombstone event (true) or only by a delete event (false).
* Emitting the tombstone event (the default behavior) allows Kafka to
* completely delete all events pertaining to the given key once the
* source record got deleted.
*
* The option is a: <code>boolean</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder tombstonesOnDelete(
boolean tombstonesOnDelete) {
doSetProperty("tombstonesOnDelete", tombstonesOnDelete);
return this;
}
/**
* Whether delete operations should be represented by a delete event and
* a subsquenttombstone event (true) or only by a delete event (false).
* Emitting the tombstone event (the default behavior) allows Kafka to
* completely delete all events pertaining to the given key once the
* source record got deleted.
*
* The option will be converted to a <code>boolean</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder tombstonesOnDelete(
String tombstonesOnDelete) {
doSetProperty("tombstonesOnDelete", tombstonesOnDelete);
return this;
}
/**
* Specify how often (in ms) the xmin will be fetched from the
* replication slot. This xmin value is exposed by the slot which gives
* a lower bound of where a new replication slot could start from. The
* lower the value, the more likely this value is to be the current
* 'true' value, but the bigger the performance cost. The bigger the
* value, the less likely this value is to be the current 'true' value,
* but the lower the performance penalty. The default is set to 0 ms,
* which disables tracking xmin.
*
* The option is a: <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder xminFetchIntervalMs(
long xminFetchIntervalMs) {
doSetProperty("xminFetchIntervalMs", xminFetchIntervalMs);
return this;
}
/**
* Specify how often (in ms) the xmin will be fetched from the
* replication slot. This xmin value is exposed by the slot which gives
* a lower bound of where a new replication slot could start from. The
* lower the value, the more likely this value is to be the current
* 'true' value, but the bigger the performance cost. The bigger the
* value, the less likely this value is to be the current 'true' value,
* but the lower the performance penalty. The default is set to 0 ms,
* which disables tracking xmin.
*
* The option will be converted to a <code>long</code> type.
*
* Group: postgres
*/
default DebeziumPostgresEndpointBuilder xminFetchIntervalMs(
String xminFetchIntervalMs) {
doSetProperty("xminFetchIntervalMs", xminFetchIntervalMs);
return this;
}
}
/**
* Advanced builder for endpoint for the Debezium PostgresSQL Connector
* component.
*/
public interface AdvancedDebeziumPostgresEndpointBuilder
extends
EndpointConsumerBuilder {
default DebeziumPostgresEndpointBuilder basic() {
return (DebeziumPostgresEndpointBuilder) this;
}
/**
* To let the consumer use a custom ExceptionHandler. Notice if the
* option bridgeErrorHandler is enabled then this option is not in use.
* By default the consumer will deal with exceptions, that will be
* logged at WARN or ERROR level and ignored.
*
* The option is a: <code>org.apache.camel.spi.ExceptionHandler</code>
* type.
*
* Group: consumer (advanced)
*/
default AdvancedDebeziumPostgresEndpointBuilder exceptionHandler(
ExceptionHandler exceptionHandler) {
doSetProperty("exceptionHandler", exceptionHandler);
return this;
}
/**
* To let the consumer use a custom ExceptionHandler. Notice if the
* option bridgeErrorHandler is enabled then this option is not in use.
* By default the consumer will deal with exceptions, that will be
* logged at WARN or ERROR level and ignored.
*
* The option will be converted to a
* <code>org.apache.camel.spi.ExceptionHandler</code> type.
*
* Group: consumer (advanced)
*/
default AdvancedDebeziumPostgresEndpointBuilder exceptionHandler(
String exceptionHandler) {
doSetProperty("exceptionHandler", exceptionHandler);
return this;
}
/**
* Sets the exchange pattern when the consumer creates an exchange.
*
* The option is a: <code>org.apache.camel.ExchangePattern</code> type.
*
* Group: consumer (advanced)
*/
default AdvancedDebeziumPostgresEndpointBuilder exchangePattern(
ExchangePattern exchangePattern) {
doSetProperty("exchangePattern", exchangePattern);
return this;
}
/**
* Sets the exchange pattern when the consumer creates an exchange.
*
* The option will be converted to a
* <code>org.apache.camel.ExchangePattern</code> type.
*
* Group: consumer (advanced)
*/
default AdvancedDebeziumPostgresEndpointBuilder exchangePattern(
String exchangePattern) {
doSetProperty("exchangePattern", exchangePattern);
return this;
}
/**
* Whether the endpoint should use basic property binding (Camel 2.x) or
* the newer property binding with additional capabilities.
*
* The option is a: <code>boolean</code> type.
*
* Group: advanced
*/
default AdvancedDebeziumPostgresEndpointBuilder basicPropertyBinding(
boolean basicPropertyBinding) {
doSetProperty("basicPropertyBinding", basicPropertyBinding);
return this;
}
/**
* Whether the endpoint should use basic property binding (Camel 2.x) or
* the newer property binding with additional capabilities.
*
* The option will be converted to a <code>boolean</code> type.
*
* Group: advanced
*/
default AdvancedDebeziumPostgresEndpointBuilder basicPropertyBinding(
String basicPropertyBinding) {
doSetProperty("basicPropertyBinding", basicPropertyBinding);
return this;
}
/**
* Sets whether synchronous processing should be strictly used, or Camel
* is allowed to use asynchronous processing (if supported).
*
* The option is a: <code>boolean</code> type.
*
* Group: advanced
*/
default AdvancedDebeziumPostgresEndpointBuilder synchronous(
boolean synchronous) {
doSetProperty("synchronous", synchronous);
return this;
}
/**
* Sets whether synchronous processing should be strictly used, or Camel
* is allowed to use asynchronous processing (if supported).
*
* The option will be converted to a <code>boolean</code> type.
*
* Group: advanced
*/
default AdvancedDebeziumPostgresEndpointBuilder synchronous(
String synchronous) {
doSetProperty("synchronous", synchronous);
return this;
}
}
/**
* Debezium PostgresSQL Connector (camel-debezium-postgres)
* Represents a Debezium PostgresSQL endpoint which is used to capture
* changes in PostgresSQL database so that that applications can see those
* changes and respond to them.
*
* Category: database,sql,postgres
* Since: 3.0
* Maven coordinates: org.apache.camel:camel-debezium-postgres
*
* Syntax: <code>debezium-postgres:name</code>
*
* Path parameter: name (required)
* Unique name for the connector. Attempting to register again with the same
* name will fail.
*/
default DebeziumPostgresEndpointBuilder debeziumPostgres(String path) {
class DebeziumPostgresEndpointBuilderImpl extends AbstractEndpointBuilder implements DebeziumPostgresEndpointBuilder, AdvancedDebeziumPostgresEndpointBuilder {
public DebeziumPostgresEndpointBuilderImpl(String path) {
super("debezium-postgres", path);
}
}
return new DebeziumPostgresEndpointBuilderImpl(path);
}
}