{
  "groups": [
    {
      "name": "camel.component.paho-mqtt5",
      "type": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.customizer",
      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "sourceMethod": "getCustomizer()"
    }
  ],
  "properties": [
    {
      "name": "camel.component.paho-mqtt5.automatic-reconnect",
      "type": "java.lang.Boolean",
      "description": "Sets whether the client will automatically attempt to reconnect to the server if the connection is lost. If set to false, the client will not attempt to automatically reconnect to the server in the event that the connection is lost. If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server. It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay will double until it is at 2 minutes at which point the delay will stay at 2 minutes.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": true
    },
    {
      "name": "camel.component.paho-mqtt5.autowired-enabled",
      "type": "java.lang.Boolean",
      "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.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": true
    },
    {
      "name": "camel.component.paho-mqtt5.bridge-error-handler",
      "type": "java.lang.Boolean",
      "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.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": false
    },
    {
      "name": "camel.component.paho-mqtt5.broker-url",
      "type": "java.lang.String",
      "description": "The URL of the MQTT broker.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": "tcp:\/\/localhost:1883"
    },
    {
      "name": "camel.component.paho-mqtt5.clean-start",
      "type": "java.lang.Boolean",
      "description": "Sets whether the client and server should remember state across restarts and reconnects. If set to false both the client and server will maintain state across restarts of the client, the server and the connection. As state is maintained: Message delivery will be reliable meeting the specified QOS even if the client, server or connection are restarted. The server will treat a subscription as durable. If set to true the client and server will not maintain state across restarts of the client, the server or the connection. This means Message delivery to the specified QOS cannot be maintained if the client, server or connection are restarted The server will treat a subscription as non-durable",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": true
    },
    {
      "name": "camel.component.paho-mqtt5.client",
      "type": "org.eclipse.paho.mqttv5.client.MqttClient",
      "description": "To use a shared Paho client. The option is a org.eclipse.paho.mqttv5.client.MqttClient type.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.client-id",
      "type": "java.lang.String",
      "description": "MQTT client identifier. The identifier must be unique.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.configuration",
      "type": "org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration",
      "description": "To use the shared Paho configuration. The option is a org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration type.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.connection-timeout",
      "type": "java.lang.Integer",
      "description": "Sets the connection timeout value. This value, measured in seconds, defines the maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": 30
    },
    {
      "name": "camel.component.paho-mqtt5.custom-web-socket-headers",
      "type": "java.util.Map<java.lang.String,java.lang.String>",
      "description": "Sets the Custom WebSocket Headers for the WebSocket Connection.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.customizer.enabled",
      "type": "java.lang.Boolean",
      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
    },
    {
      "name": "camel.component.paho-mqtt5.enabled",
      "type": "java.lang.Boolean",
      "description": "Whether to enable auto configuration of the paho-mqtt5 component. This is enabled by default.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.executor-service-timeout",
      "type": "java.lang.Integer",
      "description": "Set the time in seconds that the executor service should wait when terminating before forcefully terminating. It is not recommended to change this value unless you are absolutely sure that you need to.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": 1
    },
    {
      "name": "camel.component.paho-mqtt5.file-persistence-directory",
      "type": "java.lang.String",
      "description": "Base directory used by file persistence. Will by default use user directory.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.https-hostname-verification-enabled",
      "type": "java.lang.Boolean",
      "description": "Whether SSL HostnameVerifier is enabled or not. The default value is true.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": true
    },
    {
      "name": "camel.component.paho-mqtt5.keep-alive-interval",
      "type": "java.lang.Integer",
      "description": "Sets the keep alive interval. This value, measured in seconds, defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP\/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small ping message, which the server will acknowledge. A value of 0 disables keepalive processing in the client. The default value is 60 seconds",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": 60
    },
    {
      "name": "camel.component.paho-mqtt5.lazy-start-producer",
      "type": "java.lang.Boolean",
      "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.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": false
    },
    {
      "name": "camel.component.paho-mqtt5.max-reconnect-delay",
      "type": "java.lang.Integer",
      "description": "Get the maximum time (in millis) to wait between reconnects",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": 128000
    },
    {
      "name": "camel.component.paho-mqtt5.password",
      "type": "java.lang.String",
      "description": "Password to be used for authentication against the MQTT broker",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.persistence",
      "type": "org.apache.camel.component.paho.mqtt5.PahoMqtt5Persistence",
      "description": "Client persistence to be used - memory or file.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.qos",
      "type": "java.lang.Integer",
      "description": "Client quality of service level (0-2).",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": 2
    },
    {
      "name": "camel.component.paho-mqtt5.receive-maximum",
      "type": "java.lang.Integer",
      "description": "Sets the Receive Maximum. This value represents the limit of QoS 1 and QoS 2 publications that the client is willing to process concurrently. There is no mechanism to limit the number of QoS 0 publications that the Server might try to send. The default value is 65535",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": 65535
    },
    {
      "name": "camel.component.paho-mqtt5.retained",
      "type": "java.lang.Boolean",
      "description": "Retain option",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": false
    },
    {
      "name": "camel.component.paho-mqtt5.server-u-r-is",
      "type": "java.lang.String",
      "description": "Set a list of one or more serverURIs the client may connect to. Multiple servers can be separated by comma. Each serverURI specifies the address of a server that the client may connect to. Two types of connection are supported tcp:\/\/ for a TCP connection and ssl:\/\/ for a TCP connection secured by SSL\/TLS. For example: tcp:\/\/localhost:1883 ssl:\/\/localhost:8883 If the port is not specified, it will default to 1883 for tcp:\/\/ URIs, and 8883 for ssl:\/\/ URIs. If serverURIs is set then it overrides the serverURI parameter passed in on the constructor of the MQTT client. When an attempt to connect is initiated the client will start with the first serverURI in the list and work through the list until a connection is established with a server. If a connection cannot be made to any of the servers then the connect attempt fails. Specifying a list of servers that a client may connect to has several uses: High Availability and reliable message delivery Some MQTT servers support a high availability feature where two or more equal MQTT servers share state. An MQTT client can connect to any of the equal servers and be assured that messages are reliably delivered and durable subscriptions are maintained no matter which server the client connects to. The cleansession flag must be set to false if durable subscriptions and\/or reliable message delivery is required. Hunt List A set of servers may be specified that are not equal (as in the high availability option). As no state is shared across the servers reliable message delivery and durable subscriptions are not valid. The cleansession flag must be set to true if the hunt list mode is used",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.socket-factory",
      "type": "javax.net.SocketFactory",
      "description": "Sets the SocketFactory to use. This allows an application to apply its own policies around the creation of network sockets. If using an SSL connection, an SSLSocketFactory can be used to supply application-specific security settings. The option is a javax.net.SocketFactory type.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.ssl-client-props",
      "type": "java.util.Properties",
      "description": "Sets the SSL properties for the connection. Note that these properties are only valid if an implementation of the Java Secure Socket Extensions (JSSE) is available. These properties are not used if a custom SocketFactory has been set. The following properties can be used: com.ibm.ssl.protocol One of: SSL, SSLv3, TLS, TLSv1, SSL_TLS. com.ibm.ssl.contextProvider Underlying JSSE provider. For example IBMJSSE2 or SunJSSE com.ibm.ssl.keyStore The name of the file that contains the KeyStore object that you want the KeyManager to use. For example \/mydir\/etc\/key.p12 com.ibm.ssl.keyStorePassword The password for the KeyStore object that you want the KeyManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.keyStoreType Type of key store, for example PKCS12, JKS, or JCEKS. com.ibm.ssl.keyStoreProvider Key store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.trustStore The name of the file that contains the KeyStore object that you want the TrustManager to use. com.ibm.ssl.trustStorePassword The password for the TrustStore object that you want the TrustManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.trustStoreType The type of KeyStore object that you want the default TrustManager to use. Same possible values as keyStoreType. com.ibm.ssl.trustStoreProvider Trust store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.enabledCipherSuites A list of which ciphers are enabled. Values are dependent on the provider, for example: SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA. com.ibm.ssl.keyManager Sets the algorithm that will be used to instantiate a KeyManagerFactory object instead of using the default algorithm available in the platform. Example values: IbmX509 or IBMJ9X509. com.ibm.ssl.trustManager Sets the algorithm that will be used to instantiate a TrustManagerFactory object instead of using the default algorithm available in the platform. Example values: PKIX or IBMJ9X509. The option is a java.util.Properties type.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.ssl-hostname-verifier",
      "type": "javax.net.ssl.HostnameVerifier",
      "description": "Sets the HostnameVerifier for the SSL connection. Note that it will be used after handshake on a connection and you should do actions by yourself when hostname is verified error. There is no default HostnameVerifier. The option is a javax.net.ssl.HostnameVerifier type.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.user-name",
      "type": "java.lang.String",
      "description": "Username to be used for authentication against the MQTT broker",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.will-mqtt-properties",
      "type": "org.eclipse.paho.mqttv5.common.packet.MqttProperties",
      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The MQTT properties set for the message. The option is a org.eclipse.paho.mqttv5.common.packet.MqttProperties type.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.will-payload",
      "type": "java.lang.String",
      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The byte payload for the message.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    },
    {
      "name": "camel.component.paho-mqtt5.will-qos",
      "type": "java.lang.Integer",
      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The quality of service to publish the message at (0, 1 or 2).",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": 1
    },
    {
      "name": "camel.component.paho-mqtt5.will-retained",
      "type": "java.lang.Boolean",
      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. Whether or not the message should be retained.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": false
    },
    {
      "name": "camel.component.paho-mqtt5.will-topic",
      "type": "java.lang.String",
      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
    }
  ],
  "hints": []
}