{
	"connector": {
		"class": "org.apache.camel.kafkaconnector.coap.CamelCoapSourceConnector",
		"artifactId": "camel-coap-kafka-connector",
		"groupId": "org.apache.camel.kafkaconnector",
		"id": "camel-coap-source",
		"type": "source",
		"version": "0.7.0",
		"description": "Send and receive messages to\/from COAP capable devices."
	},
	"properties": {
		"camel.source.path.uri": {
			"name": "camel.source.path.uri",
			"description": "The URI for the CoAP endpoint",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.alias": {
			"name": "camel.source.endpoint.alias",
			"description": "Sets the alias used to query the KeyStore for the private key and certificate. This parameter is used when we are enabling TLS with certificates on the service side, and similarly on the client side when TLS is used with certificates and client authentication. If the parameter is not specified then the default behavior is to use the first alias in the keystore that contains a key entry. This configuration parameter does not apply to configuring TLS via a Raw Public Key or a Pre-Shared Key.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.cipherSuites": {
			"name": "camel.source.endpoint.cipherSuites",
			"description": "Sets the cipherSuites String. This is a comma separated String of ciphersuites to configure. If it is not specified, then it falls back to getting the ciphersuites from the sslContextParameters object.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.clientAuthentication": {
			"name": "camel.source.endpoint.clientAuthentication",
			"description": "Sets the configuration options for server-side client-authentication requirements. The value must be one of NONE, WANT, REQUIRE. If this value is not specified, then it falls back to checking the sslContextParameters.getServerParameters().getClientAuthentication() value.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.privateKey": {
			"name": "camel.source.endpoint.privateKey",
			"description": "Set the configured private key for use with Raw Public Key.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.pskStore": {
			"name": "camel.source.endpoint.pskStore",
			"description": "Set the PskStore to use for pre-shared key.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.publicKey": {
			"name": "camel.source.endpoint.publicKey",
			"description": "Set the configured public key for use with Raw Public Key.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.recommendedCipherSuitesOnly": {
			"name": "camel.source.endpoint.recommendedCipherSuitesOnly",
			"description": "The CBC cipher suites are not recommended. If you want to use them, you first need to set the recommendedCipherSuitesOnly option to false.",
			"defaultValue": "true",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.sslContextParameters": {
			"name": "camel.source.endpoint.sslContextParameters",
			"description": "Set the SSLContextParameters object for setting up TLS. This is required for coapstcp, and for coaps when we are using certificates for TLS (as opposed to RPK or PKS).",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.source.endpoint.trustedRpkStore": {
			"name": "camel.source.endpoint.trustedRpkStore",
			"description": "Set the TrustedRpkStore to use to determine trust in raw public keys.",
			"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.coapMethodRestrict": {
			"name": "camel.source.endpoint.coapMethodRestrict",
			"description": "Comma separated list of methods that the CoAP consumer will bind to. The default is to bind to all methods (DELETE, GET, POST, PUT).",
			"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.coap.bridgeErrorHandler": {
			"name": "camel.component.coap.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.coap.autowiredEnabled": {
			"name": "camel.component.coap.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"
		}
	}
}