{
	"connector": {
		"class": "org.apache.camel.kafkaconnector.jdbc.CamelJdbcSinkConnector",
		"artifactId": "camel-jdbc-kafka-connector",
		"groupId": "org.apache.camel.kafkaconnector",
		"id": "camel-jdbc-sink",
		"type": "sink",
		"version": "0.7.3",
		"description": "Access databases through SQL and JDBC."
	},
	"properties": {
		"camel.sink.path.dataSourceName": {
			"name": "camel.sink.path.dataSourceName",
			"description": "Name of DataSource to lookup in the Registry. If the name is dataSource or default, then Camel will attempt to lookup a default DataSource from the registry, meaning if there is a only one instance of DataSource found, then this DataSource will be used.",
			"priority": "HIGH",
			"required": "true"
		},
		"camel.sink.endpoint.allowNamedParameters": {
			"name": "camel.sink.endpoint.allowNamedParameters",
			"description": "Whether to allow using named parameters in the queries.",
			"defaultValue": "true",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.lazyStartProducer": {
			"name": "camel.sink.endpoint.lazyStartProducer",
			"description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.outputClass": {
			"name": "camel.sink.endpoint.outputClass",
			"description": "Specify the full package and class name to use as conversion when outputType=SelectOne or SelectList.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.outputType": {
			"name": "camel.sink.endpoint.outputType",
			"description": "Determines the output the producer should use. One of: [SelectOne] [SelectList] [StreamList]",
			"defaultValue": "\"SelectList\"",
			"priority": "MEDIUM",
			"required": "false",
			"enum": [
				"SelectOne",
				"SelectList",
				"StreamList"
			]
		},
		"camel.sink.endpoint.parameters": {
			"name": "camel.sink.endpoint.parameters",
			"description": "Optional parameters to the java.sql.Statement. For example to set maxRows, fetchSize etc.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.readSize": {
			"name": "camel.sink.endpoint.readSize",
			"description": "The default maximum number of rows that can be read by a polling query. The default value is 0.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.resetAutoCommit": {
			"name": "camel.sink.endpoint.resetAutoCommit",
			"description": "Camel will set the autoCommit on the JDBC connection to be false, commit the change after executed the statement and reset the autoCommit flag of the connection at the end, if the resetAutoCommit is true. If the JDBC connection doesn't support to reset the autoCommit flag, you can set the resetAutoCommit flag to be false, and Camel will not try to reset the autoCommit flag. When used with XA transactions you most likely need to set it to false so that the transaction manager is in charge of committing this tx.",
			"defaultValue": "true",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.transacted": {
			"name": "camel.sink.endpoint.transacted",
			"description": "Whether transactions are in use.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.useGetBytesForBlob": {
			"name": "camel.sink.endpoint.useGetBytesForBlob",
			"description": "To read BLOB columns as bytes instead of string data. This may be needed for certain databases such as Oracle where you must read BLOB columns as bytes.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.useHeadersAsParameters": {
			"name": "camel.sink.endpoint.useHeadersAsParameters",
			"description": "Set this option to true to use the prepareStatementStrategy with named parameters. This allows to define queries with named placeholders, and use headers with the dynamic values for the query placeholders.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.useJDBC4ColumnNameAndLabelSemantics": {
			"name": "camel.sink.endpoint.useJDBC4ColumnNameAndLabelSemantics",
			"description": "Sets whether to use JDBC 4 or JDBC 3.0 or older semantic when retrieving column name. JDBC 4.0 uses columnLabel to get the column name where as JDBC 3.0 uses both columnName or columnLabel. Unfortunately JDBC drivers behave differently so you can use this option to work out issues around your JDBC driver if you get problem using this component This option is default true.",
			"defaultValue": "true",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.beanRowMapper": {
			"name": "camel.sink.endpoint.beanRowMapper",
			"description": "To use a custom org.apache.camel.component.jdbc.BeanRowMapper when using outputClass. The default implementation will lower case the row names and skip underscores, and dashes. For example CUST_ID is mapped as custId.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.prepareStatementStrategy": {
			"name": "camel.sink.endpoint.prepareStatementStrategy",
			"description": "Allows the plugin to use a custom org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy to control preparation of the query and prepared statement.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.synchronous": {
			"name": "camel.sink.endpoint.synchronous",
			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.jdbc.dataSource": {
			"name": "camel.component.jdbc.dataSource",
			"description": "To use the DataSource instance instead of looking up the data source by name from the registry.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.jdbc.lazyStartProducer": {
			"name": "camel.component.jdbc.lazyStartProducer",
			"description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.jdbc.autowiredEnabled": {
			"name": "camel.component.jdbc.autowiredEnabled",
			"description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
			"defaultValue": "true",
			"priority": "MEDIUM",
			"required": "false"
		}
	}
}