{
	"connector": {
		"class": "org.apache.camel.kafkaconnector.rest.CamelRestSourceConnector",
		"artifactId": "camel-rest-kafka-connector",
		"groupId": "org.apache.camel.kafkaconnector",
		"id": "camel-rest-source",
		"type": "source",
		"version": "0.7.1",
		"description": "Expose REST services or call external REST services."
	},
	"properties": {
		"camel.source.path.method": {
			"name": "camel.source.path.method",
			"description": "HTTP method to use. One of: [get] [post] [put] [delete] [patch] [head] [trace] [connect] [options]",
			"priority": "HIGH",
			"required": "true",
			"enum": [
				"get",
				"post",
				"put",
				"delete",
				"patch",
				"head",
				"trace",
				"connect",
				"options"
			]
		},
		"camel.source.path.path": {
			"name": "camel.source.path.path",
			"description": "The base path",
			"priority": "HIGH",
			"required": "true"
		},
		"camel.source.path.uriTemplate": {
			"name": "camel.source.path.uriTemplate",
			"description": "The uri template",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.consumes": {
			"name": "camel.source.endpoint.consumes",
			"description": "Media type such as: 'text\/xml', or 'application\/json' this REST service accepts. By default we accept all kinds of types.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.inType": {
			"name": "camel.source.endpoint.inType",
			"description": "To declare the incoming POJO binding type as a FQN class name",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.outType": {
			"name": "camel.source.endpoint.outType",
			"description": "To declare the outgoing POJO binding type as a FQN class name",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.produces": {
			"name": "camel.source.endpoint.produces",
			"description": "Media type such as: 'text\/xml', or 'application\/json' this REST service returns.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.routeId": {
			"name": "camel.source.endpoint.routeId",
			"description": "Name of the route this REST services creates",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.bridgeErrorHandler": {
			"name": "camel.source.endpoint.bridgeErrorHandler",
			"description": "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.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.consumerComponentName": {
			"name": "camel.source.endpoint.consumerComponentName",
			"description": "The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.description": {
			"name": "camel.source.endpoint.description",
			"description": "Human description to document this REST service",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.exceptionHandler": {
			"name": "camel.source.endpoint.exceptionHandler",
			"description": "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.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.exchangePattern": {
			"name": "camel.source.endpoint.exchangePattern",
			"description": "Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut]",
			"priority": "MEDIUM",
			"required": "false",
			"enum": [
				"InOnly",
				"InOut",
				"InOptionalOut"
			]
		},
		"camel.source.endpoint.synchronous": {
			"name": "camel.source.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.rest.bridgeErrorHandler": {
			"name": "camel.component.rest.bridgeErrorHandler",
			"description": "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.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.rest.consumerComponentName": {
			"name": "camel.component.rest.consumerComponentName",
			"description": "The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.rest.autowiredEnabled": {
			"name": "camel.component.rest.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"
		}
	}
}