{
  "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.session-expiry-interval",
      "type": "java.lang.Long",
      "description": "Sets the Session Expiry Interval. This value, measured in seconds, defines the maximum time that the broker will maintain the session for once the client disconnects. Clients should only connect with a long Session Expiry interval if they intend to connect to the server at some later point in time. By default this value is -1 and so will not be sent, in this case, the session will not expire. If a 0 is sent, the session will end immediately once the Network Connection is closed. When the client has determined that it has no longer any use for the session, it should disconnect with a Session Expiry Interval set to 0.",
      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
      "defaultValue": -1
    },
    {
      "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": []
}