{
  "beans" : {
    "model" : {
      "kind" : "model",
      "name" : "bean",
      "title" : "Bean",
      "description" : "Define custom beans that can be used in your Camel routes and in general.",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.app.RegistryBeanDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "name" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Name",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The name of the bean (bean id)"
      },
      "type" : {
        "index" : 1,
        "kind" : "attribute",
        "displayName" : "Type",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The class name (fully qualified) of the bean"
      },
      "initMethod" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Init Method",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The name of the custom initialization method to invoke after setting bean properties. The method must have no arguments, but may throw any exception."
      },
      "destroyMethod" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Destroy Method",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The name of the custom destroy method to invoke on bean shutdown, such as when Camel is shutting down. The method must have no arguments, but may throw any exception."
      },
      "factoryMethod" : {
        "index" : 4,
        "kind" : "attribute",
        "displayName" : "Factory Method",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Name of method to invoke when creating the bean via a factory bean."
      },
      "factoryBean" : {
        "index" : 5,
        "kind" : "attribute",
        "displayName" : "Factory Bean",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Name of factory bean (bean id) to use for creating the bean."
      },
      "builderClass" : {
        "index" : 6,
        "kind" : "attribute",
        "displayName" : "Builder Class",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Fully qualified class name of builder class to use for creating and configuring the bean. The builder will use the properties values to configure the bean."
      },
      "builderMethod" : {
        "index" : 7,
        "kind" : "attribute",
        "displayName" : "Builder Method",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "build",
        "description" : "Name of method when using builder class. This method is invoked after configuring to create the actual bean. This method is often named build (used by default)."
      },
      "scriptLanguage" : {
        "index" : 8,
        "kind" : "attribute",
        "displayName" : "Script Language",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc."
      },
      "constructors" : {
        "index" : 9,
        "kind" : "element",
        "displayName" : "Constructors",
        "required" : false,
        "type" : "object",
        "javaType" : "java.util.Map<java.lang.Integer, java.lang.Object>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Optional constructor arguments for creating the bean. Arguments correspond to specific index of the constructor argument list, starting from zero."
      },
      "properties" : {
        "index" : 10,
        "kind" : "element",
        "displayName" : "Properties",
        "required" : false,
        "type" : "object",
        "javaType" : "java.util.Map<java.lang.String, java.lang.Object>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Optional properties to set on the created bean."
      },
      "script" : {
        "index" : 11,
        "kind" : "element",
        "displayName" : "Script",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource."
      }
    },
    "propertiesSchema" : {
      "type" : "array",
      "additionalProperties" : false,
      "items" : {
        "$ref" : "#/definitions/org.apache.camel.model.app.RegistryBeanDefinition"
      },
      "properties" : { },
      "definitions" : {
        "org.apache.camel.model.app.RegistryBeanDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "builderClass" : {
              "type" : "string",
              "title" : "Builder Class",
              "description" : "Fully qualified class name of builder class to use for creating and configuring the bean. The builder will use the properties values to configure the bean."
            },
            "builderMethod" : {
              "type" : "string",
              "title" : "Builder Method",
              "description" : "Name of method when using builder class. This method is invoked after configuring to create the actual bean. This method is often named build (used by default).",
              "default" : "build"
            },
            "constructors" : {
              "type" : "object",
              "title" : "Constructors",
              "description" : "Optional constructor arguments for creating the bean. Arguments correspond to specific index of the constructor argument list, starting from zero."
            },
            "destroyMethod" : {
              "type" : "string",
              "title" : "Destroy Method",
              "description" : "The name of the custom destroy method to invoke on bean shutdown, such as when Camel is shutting down. The method must have no arguments, but may throw any exception."
            },
            "factoryBean" : {
              "type" : "string",
              "title" : "Factory Bean",
              "description" : "Name of factory bean (bean id) to use for creating the bean."
            },
            "factoryMethod" : {
              "type" : "string",
              "title" : "Factory Method",
              "description" : "Name of method to invoke when creating the bean via a factory bean."
            },
            "initMethod" : {
              "type" : "string",
              "title" : "Init Method",
              "description" : "The name of the custom initialization method to invoke after setting bean properties. The method must have no arguments, but may throw any exception."
            },
            "name" : {
              "type" : "string",
              "title" : "Name",
              "description" : "The name of the bean (bean id)"
            },
            "properties" : {
              "type" : "object",
              "title" : "Properties",
              "description" : "Optional properties to set on the created bean."
            },
            "script" : {
              "type" : "string",
              "title" : "Script",
              "description" : "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource."
            },
            "scriptLanguage" : {
              "type" : "string",
              "title" : "Script Language",
              "description" : "The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc."
            },
            "type" : {
              "type" : "string",
              "title" : "Type",
              "description" : "The class name (fully qualified) of the bean"
            }
          },
          "required" : [ "name", "type" ]
        }
      }
    }
  },
  "errorHandler" : {
    "model" : {
      "kind" : "model",
      "name" : "errorHandler",
      "title" : "Error Handler",
      "description" : "Camel error handling.",
      "deprecated" : false,
      "label" : "configuration,error",
      "javaType" : "org.apache.camel.model.ErrorHandlerDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The id of this node"
      },
      "errorHandlerType" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Error Handler Type",
        "required" : true,
        "type" : "object",
        "javaType" : "org.apache.camel.ErrorHandlerFactory",
        "oneOf" : [ "deadLetterChannel", "defaultErrorHandler", "jtaTransactionErrorHandler", "noErrorHandler", "springTransactionErrorHandler" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The specific error handler in use."
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : { },
      "$comment" : "errorhandler"
    }
  },
  "from" : {
    "model" : {
      "kind" : "model",
      "name" : "from",
      "title" : "From",
      "description" : "Act as a message source as input to a route",
      "deprecated" : false,
      "label" : "eip,routing",
      "javaType" : "org.apache.camel.model.FromDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "uri" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Uri",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the URI of the endpoint to use"
      },
      "variableReceive" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Variable Receive",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To use a variable to store a copy of the received message body (only body, not headers). This is handy for easy access to the received message body via variables."
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "$ref" : "#/definitions/org.apache.camel.dsl.yaml.deserializers.OutputAwareFromDefinition",
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "uri" : {
          "type" : "string",
          "title" : "Uri",
          "description" : "Sets the URI of the endpoint to use"
        },
        "variableReceive" : {
          "type" : "string",
          "title" : "Variable Receive",
          "description" : "To use a variable to store a copy of the received message body (only body, not headers). This is handy for easy access to the received message body via variables."
        },
        "parameters" : {
          "type" : "object",
          "title" : "Parameters",
          "description" : "URI parameters"
        }
      },
      "required" : [ "steps", "uri" ],
      "$comment" : "steps",
      "definitions" : {
        "org.apache.camel.dsl.yaml.deserializers.OutputAwareFromDefinition" : {
          "type" : "object",
          "properties" : {
            "description" : {
              "type" : "string"
            },
            "id" : {
              "type" : "string"
            },
            "parameters" : {
              "type" : "object"
            },
            "steps" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
              }
            },
            "uri" : {
              "type" : "string"
            },
            "variableReceive" : {
              "type" : "string"
            }
          },
          "required" : [ "steps", "uri" ]
        }
      }
    }
  },
  "intercept" : {
    "model" : {
      "kind" : "model",
      "name" : "intercept",
      "title" : "Intercept",
      "description" : "Intercepts a message at each step in the route",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.InterceptDefinition",
      "supportLevel" : "Stable",
      "abstract" : true,
      "input" : true,
      "output" : true
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "disabled" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Disabled",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
      },
      "outputs" : {
        "index" : 3,
        "kind" : "element",
        "displayName" : "Outputs",
        "required" : true,
        "type" : "array",
        "javaType" : "java.util.List",
        "oneOf" : [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "onFallback", "otherwise", "pausable", "pipeline", "policy", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "serviceCall", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "sort", "split", "step", "stop", "threads", "throttle", "throwException", "to", "toD", "transacted", "transform", "unmarshal", "validate", "when", "whenSkipSendToEndpoint", "wireTap" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false
      }
    },
    "propertiesSchema" : {
      "title" : "Intercept",
      "description" : "Intercepts a message at each step in the route",
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "disabled" : {
          "type" : "boolean",
          "title" : "Disabled",
          "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
          "default" : false
        }
      },
      "$comment" : "steps"
    }
  },
  "interceptFrom" : {
    "model" : {
      "kind" : "model",
      "name" : "interceptFrom",
      "title" : "Intercept From",
      "description" : "Intercepts incoming messages",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.InterceptFromDefinition",
      "supportLevel" : "Stable",
      "abstract" : true,
      "input" : true,
      "output" : true
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "disabled" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Disabled",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
      },
      "uri" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Uri",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Intercept incoming messages from the uri or uri pattern. If this option is not configured, then all incoming messages is intercepted."
      },
      "outputs" : {
        "index" : 4,
        "kind" : "element",
        "displayName" : "Outputs",
        "required" : true,
        "type" : "array",
        "javaType" : "java.util.List",
        "oneOf" : [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "onFallback", "otherwise", "pausable", "pipeline", "policy", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "serviceCall", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "sort", "split", "step", "stop", "threads", "throttle", "throwException", "to", "toD", "transacted", "transform", "unmarshal", "validate", "when", "whenSkipSendToEndpoint", "wireTap" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "disabled" : {
          "type" : "boolean",
          "title" : "Disabled",
          "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
          "default" : false
        },
        "uri" : {
          "type" : "string",
          "title" : "Uri",
          "description" : "Intercept incoming messages from the uri or uri pattern. If this option is not configured, then all incoming messages is intercepted."
        }
      },
      "title" : "Intercept From",
      "description" : "Intercepts incoming messages",
      "$comment" : "steps"
    }
  },
  "interceptSendToEndpoint" : {
    "model" : {
      "kind" : "model",
      "name" : "interceptSendToEndpoint",
      "title" : "Intercept Send To Endpoint",
      "description" : "Intercepts messages being sent to an endpoint",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.InterceptSendToEndpointDefinition",
      "supportLevel" : "Stable",
      "abstract" : true,
      "input" : true,
      "output" : true
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "disabled" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Disabled",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
      },
      "uri" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Uri",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Intercept sending to the uri or uri pattern."
      },
      "skipSendToOriginalEndpoint" : {
        "index" : 4,
        "kind" : "attribute",
        "displayName" : "Skip Send To Original Endpoint",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "If set to true then the message is not sent to the original endpoint. By default (false) the message is both intercepted and then sent to the original endpoint."
      },
      "afterUri" : {
        "index" : 5,
        "kind" : "attribute",
        "displayName" : "After Uri",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "After sending to the endpoint then send the message to this uri which allows to process its result."
      },
      "outputs" : {
        "index" : 6,
        "kind" : "element",
        "displayName" : "Outputs",
        "required" : true,
        "type" : "array",
        "javaType" : "java.util.List",
        "oneOf" : [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "onFallback", "otherwise", "pausable", "pipeline", "policy", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "serviceCall", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "sort", "split", "step", "stop", "threads", "throttle", "throwException", "to", "toD", "transacted", "transform", "unmarshal", "validate", "when", "whenSkipSendToEndpoint", "wireTap" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "disabled" : {
          "type" : "boolean",
          "title" : "Disabled",
          "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
          "default" : false
        },
        "uri" : {
          "type" : "string",
          "title" : "Uri",
          "description" : "Intercept sending to the uri or uri pattern."
        },
        "skipSendToOriginalEndpoint" : {
          "type" : "string",
          "title" : "Skip Send To Original Endpoint",
          "description" : "If set to true then the message is not sent to the original endpoint. By default (false) the message is both intercepted and then sent to the original endpoint."
        },
        "afterUri" : {
          "type" : "string",
          "title" : "After Uri",
          "description" : "After sending to the endpoint then send the message to this uri which allows to process its result."
        }
      },
      "title" : "Intercept Send To Endpoint",
      "description" : "Intercepts messages being sent to an endpoint",
      "$comment" : "steps"
    }
  },
  "onCompletion" : {
    "model" : {
      "kind" : "model",
      "name" : "onCompletion",
      "title" : "On Completion",
      "description" : "Route to be executed when normal route processing completes",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.OnCompletionDefinition",
      "supportLevel" : "Stable",
      "abstract" : true,
      "input" : true,
      "output" : true
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "disabled" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Disabled",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
      },
      "mode" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Mode",
        "label" : "advanced",
        "required" : false,
        "type" : "enum",
        "javaType" : "org.apache.camel.model.OnCompletionMode",
        "enum" : [ "AfterConsumer", "BeforeConsumer" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "AfterConsumer",
        "description" : "Sets the on completion mode. The default value is AfterConsumer"
      },
      "onCompleteOnly" : {
        "index" : 4,
        "kind" : "attribute",
        "displayName" : "On Complete Only",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Will only synchronize when the org.apache.camel.Exchange completed successfully (no errors)."
      },
      "onFailureOnly" : {
        "index" : 5,
        "kind" : "attribute",
        "displayName" : "On Failure Only",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Will only synchronize when the org.apache.camel.Exchange ended with failure (exception or FAULT message)."
      },
      "parallelProcessing" : {
        "index" : 6,
        "kind" : "attribute",
        "displayName" : "Parallel Processing",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "If enabled then the on completion process will run asynchronously by a separate thread from a thread pool. By default this is false, meaning the on completion process will run synchronously using the same caller thread as from the route."
      },
      "executorService" : {
        "index" : 7,
        "kind" : "attribute",
        "displayName" : "Executor Service",
        "label" : "advanced",
        "required" : false,
        "type" : "object",
        "javaType" : "java.util.concurrent.ExecutorService",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well."
      },
      "useOriginalMessage" : {
        "index" : 8,
        "kind" : "attribute",
        "displayName" : "Use Original Message",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Will use the original input message body when an org.apache.camel.Exchange for this on completion. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
      },
      "onWhen" : {
        "index" : 9,
        "kind" : "element",
        "displayName" : "On When",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.WhenDefinition",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "asPredicate" : true,
        "description" : "Sets an additional predicate that should be true before the onCompletion is triggered. To be used for fine grained controlling whether a completion callback should be invoked or not"
      },
      "outputs" : {
        "index" : 10,
        "kind" : "element",
        "displayName" : "Outputs",
        "required" : true,
        "type" : "array",
        "javaType" : "java.util.List",
        "oneOf" : [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "onFallback", "otherwise", "pausable", "pipeline", "policy", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "serviceCall", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "sort", "split", "step", "stop", "threads", "throttle", "throwException", "to", "toD", "transacted", "transform", "unmarshal", "validate", "when", "whenSkipSendToEndpoint", "wireTap" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false
      }
    },
    "propertiesSchema" : {
      "title" : "On Completion",
      "description" : "Route to be executed when normal route processing completes",
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "disabled" : {
          "type" : "boolean",
          "title" : "Disabled",
          "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
          "default" : false
        },
        "mode" : {
          "type" : "string",
          "title" : "Mode",
          "description" : "Sets the on completion mode. The default value is AfterConsumer",
          "default" : "AfterConsumer",
          "enum" : [ "AfterConsumer", "BeforeConsumer" ]
        },
        "onCompleteOnly" : {
          "type" : "boolean",
          "title" : "On Complete Only",
          "description" : "Will only synchronize when the org.apache.camel.Exchange completed successfully (no errors).",
          "default" : false
        },
        "onFailureOnly" : {
          "type" : "boolean",
          "title" : "On Failure Only",
          "description" : "Will only synchronize when the org.apache.camel.Exchange ended with failure (exception or FAULT message).",
          "default" : false
        },
        "parallelProcessing" : {
          "type" : "boolean",
          "title" : "Parallel Processing",
          "description" : "If enabled then the on completion process will run asynchronously by a separate thread from a thread pool. By default this is false, meaning the on completion process will run synchronously using the same caller thread as from the route.",
          "default" : false
        },
        "executorService" : {
          "type" : "string",
          "title" : "Executor Service",
          "description" : "To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well."
        },
        "useOriginalMessage" : {
          "type" : "boolean",
          "title" : "Use Original Message",
          "description" : "Will use the original input message body when an org.apache.camel.Exchange for this on completion. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.",
          "default" : false
        },
        "onWhen" : {
          "title" : "On When",
          "description" : "Sets an additional predicate that should be true before the onCompletion is triggered. To be used for fine grained controlling whether a completion callback should be invoked or not",
          "$ref" : "#/definitions/org.apache.camel.model.WhenDefinition"
        }
      },
      "$comment" : "steps",
      "definitions" : {
        "org.apache.camel.model.WhenDefinition" : {
          "title" : "When",
          "description" : "Triggers a route when the expression evaluates to true",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "steps" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
              }
            }
          },
          "$comment" : "expression"
        },
        "org.apache.camel.model.language.ExpressionDefinition" : {
          "type" : "object",
          "properties" : { }
        },
        "org.apache.camel.model.language.ConstantExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Constant",
          "description" : "A fixed value set only once during the route startup."
        },
        "org.apache.camel.model.language.CSimpleExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "CSimple",
          "description" : "Evaluate a compiled simple expression."
        },
        "org.apache.camel.model.language.DatasonnetExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "bodyMediaType" : {
              "type" : "string",
              "title" : "Body Media Type",
              "description" : "The String representation of the message's body MediaType"
            },
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "outputMediaType" : {
              "type" : "string",
              "title" : "Output Media Type",
              "description" : "The String representation of the MediaType to output"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "source" : {
              "type" : "string",
              "title" : "Source",
              "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "DataSonnet",
          "description" : "To use DataSonnet scripts for message transformations."
        },
        "org.apache.camel.model.language.ExchangePropertyExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "ExchangeProperty",
          "description" : "Gets a property from the Exchange."
        },
        "org.apache.camel.model.language.GroovyExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Groovy",
          "description" : "Evaluates a Groovy script."
        },
        "org.apache.camel.model.language.HeaderExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Header",
          "description" : "Gets a header from the Exchange."
        },
        "org.apache.camel.model.language.Hl7TerserExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "source" : {
              "type" : "string",
              "title" : "Source",
              "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "HL7 Terser",
          "description" : "Get the value of a HL7 message field specified by terse location specification syntax."
        },
        "org.apache.camel.model.language.JavaExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "preCompile" : {
              "type" : "boolean",
              "title" : "Pre Compile",
              "description" : "Whether the expression should be pre compiled once during initialization phase. If this is turned off, then the expression is reloaded and compiled on each evaluation."
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "singleQuotes" : {
              "type" : "boolean",
              "title" : "Single Quotes",
              "description" : "Whether single quotes can be used as replacement for double quotes. This is convenient when you need to work with strings inside strings."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Java",
          "description" : "Evaluates a Java (Java compiled once at runtime) expression."
        },
        "org.apache.camel.model.language.JoorExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "preCompile" : {
              "type" : "boolean",
              "title" : "Pre Compile",
              "description" : "Whether the expression should be pre compiled once during initialization phase. If this is turned off, then the expression is reloaded and compiled on each evaluation."
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "singleQuotes" : {
              "type" : "boolean",
              "title" : "Single Quotes",
              "description" : "Whether single quotes can be used as replacement for double quotes. This is convenient when you need to work with strings inside strings."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "jOOR",
          "description" : "Evaluates a jOOR (Java compiled once at runtime) expression."
        },
        "org.apache.camel.model.language.JqExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "source" : {
              "type" : "string",
              "title" : "Source",
              "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "JQ",
          "description" : "Evaluates a JQ expression against a JSON message body."
        },
        "org.apache.camel.model.language.JavaScriptExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "JavaScript",
          "description" : "Evaluates a JavaScript expression."
        },
        "org.apache.camel.model.language.JsonPathExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "allowEasyPredicate" : {
              "type" : "boolean",
              "title" : "Allow Easy Predicate",
              "description" : "Whether to allow using the easy predicate parser to pre-parse predicates."
            },
            "allowSimple" : {
              "type" : "boolean",
              "title" : "Allow Simple",
              "description" : "Whether to allow in inlined Simple exceptions in the JSONPath expression"
            },
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "option" : {
              "type" : "string",
              "title" : "Option",
              "description" : "To configure additional options on JSONPath. Multiple values can be separated by comma.",
              "enum" : [ "DEFAULT_PATH_LEAF_TO_NULL", "ALWAYS_RETURN_LIST", "AS_PATH_LIST", "SUPPRESS_EXCEPTIONS", "REQUIRE_PROPERTIES" ]
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "source" : {
              "type" : "string",
              "title" : "Source",
              "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
            },
            "suppressExceptions" : {
              "type" : "boolean",
              "title" : "Suppress Exceptions",
              "description" : "Whether to suppress exceptions such as PathNotFoundException."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            },
            "unpackArray" : {
              "type" : "boolean",
              "title" : "Unpack Array",
              "description" : "Whether to unpack a single element json-array into an object."
            },
            "writeAsString" : {
              "type" : "boolean",
              "title" : "Write As String",
              "description" : "Whether to write the output of each row/element as a JSON String value instead of a Map/POJO value."
            }
          },
          "title" : "JSONPath",
          "description" : "Evaluates a JSONPath expression against a JSON message body."
        },
        "org.apache.camel.model.language.LanguageExpression" : {
          "title" : "Language",
          "description" : "Evaluates a custom language.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "language" : {
              "type" : "string",
              "title" : "Language",
              "description" : "The name of the language to use"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "required" : [ "expression", "language" ]
        },
        "org.apache.camel.model.language.MethodCallExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "beanType" : {
              "type" : "string",
              "title" : "Bean Type",
              "description" : "Class name (fully qualified) of the bean to use Will lookup in registry and if there is a single instance of the same type, then the existing bean is used, otherwise a new bean is created (requires a default no-arg constructor)."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "method" : {
              "type" : "string",
              "title" : "Method",
              "description" : "Name of method to call"
            },
            "ref" : {
              "type" : "string",
              "title" : "Ref",
              "description" : "Reference to an existing bean (bean id) to lookup in the registry"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "scope" : {
              "type" : "string",
              "title" : "Scope",
              "description" : "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using prototype scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. So when using prototype scope then this depends on the bean registry implementation.",
              "default" : "Singleton",
              "enum" : [ "Singleton", "Request", "Prototype" ]
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            },
            "validate" : {
              "type" : "boolean",
              "title" : "Validate",
              "description" : "Whether to validate the bean has the configured method."
            }
          },
          "title" : "Bean Method",
          "description" : "Calls a Java bean method."
        },
        "org.apache.camel.model.language.MvelExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "MVEL",
          "description" : "Evaluates a MVEL template."
        },
        "org.apache.camel.model.language.OgnlExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "OGNL",
          "description" : "Evaluates an OGNL expression (Apache Commons OGNL)."
        },
        "org.apache.camel.model.language.PythonExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Python",
          "description" : "Evaluates a Python expression."
        },
        "org.apache.camel.model.language.RefExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Ref",
          "description" : "Uses an existing expression from the registry."
        },
        "org.apache.camel.model.language.SimpleExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Simple",
          "description" : "Evaluates a Camel simple expression."
        },
        "org.apache.camel.model.language.SpELExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "SpEL",
          "description" : "Evaluates a Spring expression (SpEL)."
        },
        "org.apache.camel.model.language.TokenizerExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "endToken" : {
              "type" : "string",
              "title" : "End Token",
              "description" : "The end token to use as tokenizer if using start/end token pairs. You can use simple language as the token to support dynamic tokens."
            },
            "group" : {
              "type" : "string",
              "title" : "Group",
              "description" : "To group N parts together, for example to split big files into chunks of 1000 lines. You can use simple language as the group to support dynamic group sizes."
            },
            "groupDelimiter" : {
              "type" : "string",
              "title" : "Group Delimiter",
              "description" : "Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "includeTokens" : {
              "type" : "boolean",
              "title" : "Include Tokens",
              "description" : "Whether to include the tokens in the parts when using pairs. When including tokens then the endToken property must also be configured (to use pair mode). The default value is false"
            },
            "inheritNamespaceTagName" : {
              "type" : "string",
              "title" : "Inherit Namespace Tag Name",
              "description" : "To inherit namespaces from a root/parent tag name when using XML You can use simple language as the tag name to support dynamic names."
            },
            "regex" : {
              "type" : "boolean",
              "title" : "Regex",
              "description" : "If the token is a regular expression pattern. The default value is false"
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "skipFirst" : {
              "type" : "boolean",
              "title" : "Skip First",
              "description" : "To skip the very first element"
            },
            "source" : {
              "type" : "string",
              "title" : "Source",
              "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
            },
            "token" : {
              "type" : "string",
              "title" : "Token",
              "description" : "The (start) token to use as tokenizer, for example you can use the new line token. You can use simple language as the token to support dynamic tokens."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            },
            "xml" : {
              "type" : "boolean",
              "title" : "Xml",
              "description" : "Whether the input is XML messages. This option must be set to true if working with XML payloads."
            }
          },
          "title" : "Tokenize",
          "description" : "Tokenize text payloads using delimiter patterns."
        },
        "org.apache.camel.model.language.VariableExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Variable",
          "description" : "Gets a variable"
        },
        "org.apache.camel.model.language.WasmExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "module" : {
              "type" : "string",
              "title" : "Module",
              "description" : "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function."
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "Wasm",
          "description" : "Call a wasm (web assembly) function."
        },
        "org.apache.camel.model.language.XPathExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "documentType" : {
              "type" : "string",
              "title" : "Document Type",
              "description" : "Name of class for document type The default value is org.w3c.dom.Document"
            },
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "factoryRef" : {
              "type" : "string",
              "title" : "Factory Ref",
              "description" : "References to a custom XPathFactory to lookup in the registry"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "logNamespaces" : {
              "type" : "boolean",
              "title" : "Log Namespaces",
              "description" : "Whether to log namespaces which can assist during troubleshooting"
            },
            "namespace" : {
              "type" : "array",
              "title" : "Namespace",
              "description" : "Injects the XML Namespaces of prefix - uri mappings",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
              }
            },
            "objectModel" : {
              "type" : "string",
              "title" : "Object Model",
              "description" : "The XPath object model to use"
            },
            "preCompile" : {
              "type" : "boolean",
              "title" : "Pre Compile",
              "description" : "Whether to enable pre-compiling the xpath expression during initialization phase. pre-compile is enabled by default. This can be used to turn off, for example in cases the compilation phase is desired at the starting phase, such as if the application is ahead of time compiled (for example with camel-quarkus) which would then load the xpath factory of the built operating system, and not a JVM runtime."
            },
            "resultQName" : {
              "type" : "string",
              "title" : "Result QName",
              "description" : "Sets the output type supported by XPath.",
              "default" : "NODESET",
              "enum" : [ "NUMBER", "STRING", "BOOLEAN", "NODESET", "NODE" ]
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "saxon" : {
              "type" : "boolean",
              "title" : "Saxon",
              "description" : "Whether to use Saxon."
            },
            "source" : {
              "type" : "string",
              "title" : "Source",
              "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
            },
            "threadSafety" : {
              "type" : "boolean",
              "title" : "Thread Safety",
              "description" : "Whether to enable thread-safety for the returned result of the xpath expression. This applies to when using NODESET as the result type, and the returned set has multiple elements. In this situation there can be thread-safety issues if you process the NODESET concurrently such as from a Camel Splitter EIP in parallel processing mode. This option prevents concurrency issues by doing defensive copies of the nodes. It is recommended to turn this option on if you are using camel-saxon or Saxon in your application. Saxon has thread-safety issues which can be prevented by turning this option on."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "XPath",
          "description" : "Evaluates an XPath expression against an XML payload."
        },
        "org.apache.camel.model.language.XQueryExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "configurationRef" : {
              "type" : "string",
              "title" : "Configuration Ref",
              "description" : "Reference to a saxon configuration instance in the registry to use for xquery (requires camel-saxon). This may be needed to add custom functions to a saxon configuration, so these custom functions can be used in xquery expressions."
            },
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "namespace" : {
              "type" : "array",
              "title" : "Namespace",
              "description" : "Injects the XML Namespaces of prefix - uri mappings",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
              }
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "source" : {
              "type" : "string",
              "title" : "Source",
              "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "XQuery",
          "description" : "Evaluates an XQuery expressions against an XML payload."
        },
        "org.apache.camel.model.language.XMLTokenizerExpression" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "expression" : {
              "type" : "string",
              "title" : "Expression",
              "description" : "The expression value in your chosen language syntax"
            },
            "group" : {
              "type" : "number",
              "title" : "Group",
              "description" : "To group N parts together"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "mode" : {
              "type" : "string",
              "title" : "Mode",
              "description" : "The extraction mode. The available extraction modes are: i - injecting the contextual namespace bindings into the extracted token (default) w - wrapping the extracted token in its ancestor context u - unwrapping the extracted token to its child content t - extracting the text content of the specified element",
              "default" : "i",
              "enum" : [ "i", "w", "u", "t" ]
            },
            "namespace" : {
              "type" : "array",
              "title" : "Namespace",
              "description" : "Injects the XML Namespaces of prefix - uri mappings",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
              }
            },
            "resultType" : {
              "type" : "string",
              "title" : "Result Type",
              "description" : "Sets the class of the result type (type from output)"
            },
            "source" : {
              "type" : "string",
              "title" : "Source",
              "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
            },
            "trim" : {
              "type" : "boolean",
              "title" : "Trim",
              "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
            }
          },
          "title" : "XML Tokenize",
          "description" : "Tokenize XML payloads."
        },
        "org.apache.camel.model.PropertyDefinition" : {
          "title" : "Property",
          "description" : "A key value pair where the value is a literal value",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "The name of the property"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "The property value."
            }
          },
          "required" : [ "key", "value" ]
        }
      }
    }
  },
  "onException" : {
    "model" : {
      "kind" : "model",
      "name" : "onException",
      "title" : "On Exception",
      "description" : "Route to be executed when an exception is thrown",
      "deprecated" : false,
      "label" : "error",
      "javaType" : "org.apache.camel.model.OnExceptionDefinition",
      "supportLevel" : "Stable",
      "abstract" : true,
      "input" : true,
      "output" : true
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "disabled" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Disabled",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
      },
      "exception" : {
        "index" : 3,
        "kind" : "element",
        "displayName" : "Exception",
        "required" : true,
        "type" : "array",
        "javaType" : "java.util.List<java.lang.String>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "A set of exceptions to react upon."
      },
      "onWhen" : {
        "index" : 4,
        "kind" : "element",
        "displayName" : "On When",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.WhenDefinition",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "asPredicate" : true,
        "description" : "Sets an additional predicate that should be true before the onException is triggered. To be used for fine grained controlling whether a thrown exception should be intercepted by this exception type or not."
      },
      "retryWhile" : {
        "index" : 5,
        "kind" : "expression",
        "displayName" : "Retry While",
        "label" : "advanced",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.ExpressionSubElementDefinition",
        "oneOf" : [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "asPredicate" : true,
        "description" : "Sets the retry while predicate. Will continue retrying until predicate returns false."
      },
      "redeliveryPolicy" : {
        "index" : 6,
        "kind" : "element",
        "displayName" : "Redelivery Policy",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.RedeliveryPolicyDefinition",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Used for configuring redelivery options"
      },
      "redeliveryPolicyRef" : {
        "index" : 7,
        "kind" : "attribute",
        "displayName" : "Redelivery Policy Ref",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets a reference to a redelivery policy to lookup in the org.apache.camel.spi.Registry to be used."
      },
      "handled" : {
        "index" : 8,
        "kind" : "expression",
        "displayName" : "Handled",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.ExpressionSubElementDefinition",
        "oneOf" : [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "asPredicate" : true,
        "description" : "Sets whether the exchange should be marked as handled or not."
      },
      "continued" : {
        "index" : 9,
        "kind" : "expression",
        "displayName" : "Continued",
        "label" : "advanced",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.ExpressionSubElementDefinition",
        "oneOf" : [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "asPredicate" : true,
        "description" : "Sets whether the exchange should handle and continue routing from the point of failure. If this option is enabled then its considered handled as well."
      },
      "onRedeliveryRef" : {
        "index" : 10,
        "kind" : "attribute",
        "displayName" : "On Redelivery Ref",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets a reference to a processor that should be processed before a redelivery attempt. Can be used to change the org.apache.camel.Exchange before its being redelivered."
      },
      "onExceptionOccurredRef" : {
        "index" : 11,
        "kind" : "attribute",
        "displayName" : "On Exception Occurred Ref",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Important: Any exception thrown from this processor will be ignored."
      },
      "useOriginalMessage" : {
        "index" : 12,
        "kind" : "attribute",
        "displayName" : "Use Original Message",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
      },
      "useOriginalBody" : {
        "index" : 13,
        "kind" : "attribute",
        "displayName" : "Use Original Body",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
      },
      "outputs" : {
        "index" : 14,
        "kind" : "element",
        "displayName" : "Outputs",
        "required" : true,
        "type" : "array",
        "javaType" : "java.util.List",
        "oneOf" : [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "onFallback", "otherwise", "pausable", "pipeline", "policy", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "serviceCall", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "sort", "split", "step", "stop", "threads", "throttle", "throwException", "to", "toD", "transacted", "transform", "unmarshal", "validate", "when", "whenSkipSendToEndpoint", "wireTap" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false
      }
    },
    "propertiesSchema" : {
      "title" : "On Exception",
      "description" : "Route to be executed when an exception is thrown",
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "disabled" : {
          "type" : "boolean",
          "title" : "Disabled",
          "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
          "default" : false
        },
        "exception" : {
          "type" : "array",
          "title" : "Exception",
          "description" : "A set of exceptions to react upon.",
          "items" : {
            "type" : "string"
          }
        },
        "onWhen" : {
          "title" : "On When",
          "description" : "Sets an additional predicate that should be true before the onException is triggered. To be used for fine grained controlling whether a thrown exception should be intercepted by this exception type or not.",
          "$ref" : "#/definitions/org.apache.camel.model.WhenDefinition"
        },
        "retryWhile" : {
          "title" : "Retry While",
          "description" : "Sets the retry while predicate. Will continue retrying until predicate returns false.",
          "type" : "object",
          "$comment" : "expression"
        },
        "redeliveryPolicy" : {
          "title" : "Redelivery Policy",
          "description" : "Used for configuring redelivery options",
          "$ref" : "#/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
        },
        "redeliveryPolicyRef" : {
          "type" : "string",
          "title" : "Redelivery Policy Ref",
          "description" : "Sets a reference to a redelivery policy to lookup in the org.apache.camel.spi.Registry to be used."
        },
        "handled" : {
          "title" : "Handled",
          "description" : "Sets whether the exchange should be marked as handled or not.",
          "type" : "object",
          "$comment" : "expression"
        },
        "continued" : {
          "title" : "Continued",
          "description" : "Sets whether the exchange should handle and continue routing from the point of failure. If this option is enabled then its considered handled as well.",
          "type" : "object",
          "$comment" : "expression"
        },
        "onRedeliveryRef" : {
          "type" : "string",
          "title" : "On Redelivery Ref",
          "description" : "Sets a reference to a processor that should be processed before a redelivery attempt. Can be used to change the org.apache.camel.Exchange before its being redelivered."
        },
        "onExceptionOccurredRef" : {
          "type" : "string",
          "title" : "On Exception Occurred Ref",
          "description" : "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Important: Any exception thrown from this processor will be ignored."
        },
        "useOriginalMessage" : {
          "type" : "boolean",
          "title" : "Use Original Message",
          "description" : "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.",
          "default" : false
        },
        "useOriginalBody" : {
          "type" : "boolean",
          "title" : "Use Original Body",
          "description" : "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.",
          "default" : false
        }
      },
      "$comment" : "steps",
      "definitions" : {
        "org.apache.camel.model.WhenDefinition" : {
          "title" : "When",
          "description" : "Triggers a route when the expression evaluates to true",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "steps" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
              }
            }
          },
          "$comment" : "expression"
        },
        "org.apache.camel.model.RedeliveryPolicyDefinition" : {
          "title" : "Redelivery Policy",
          "description" : "To configure re-delivery for error handling",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "allowRedeliveryWhileStopping" : {
              "type" : "boolean",
              "title" : "Allow Redelivery While Stopping",
              "description" : "Controls whether to allow redelivery while stopping/shutting down a route that uses error handling."
            },
            "asyncDelayedRedelivery" : {
              "type" : "boolean",
              "title" : "Async Delayed Redelivery",
              "description" : "Allow asynchronous delayed redelivery. The route, in particular the consumer's component, must support the Asynchronous Routing Engine (e.g. seda)."
            },
            "backOffMultiplier" : {
              "type" : "number",
              "title" : "Back Off Multiplier",
              "description" : "Sets the back off multiplier",
              "default" : "2.0"
            },
            "collisionAvoidanceFactor" : {
              "type" : "number",
              "title" : "Collision Avoidance Factor",
              "description" : "Sets the collision avoidance factor",
              "default" : "0.15"
            },
            "delayPattern" : {
              "type" : "string",
              "title" : "Delay Pattern",
              "description" : "Sets the delay pattern with delay intervals."
            },
            "disableRedelivery" : {
              "type" : "boolean",
              "title" : "Disable Redelivery",
              "description" : "Disables redelivery (same as setting maximum redeliveries to 0)"
            },
            "exchangeFormatterRef" : {
              "type" : "string",
              "title" : "Exchange Formatter Ref",
              "description" : "Sets the reference of the instance of org.apache.camel.spi.ExchangeFormatter to generate the log message from exchange."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "The id of this node"
            },
            "logContinued" : {
              "type" : "boolean",
              "title" : "Log Continued",
              "description" : "Sets whether continued exceptions should be logged or not. Can be used to include or reduce verbose."
            },
            "logExhausted" : {
              "type" : "boolean",
              "title" : "Log Exhausted",
              "description" : "Sets whether exhausted exceptions should be logged or not. Can be used to include or reduce verbose."
            },
            "logExhaustedMessageBody" : {
              "type" : "boolean",
              "title" : "Log Exhausted Message Body",
              "description" : "Sets whether exhausted message body should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose. Requires logExhaustedMessageHistory to be enabled."
            },
            "logExhaustedMessageHistory" : {
              "type" : "boolean",
              "title" : "Log Exhausted Message History",
              "description" : "Sets whether exhausted exceptions should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose."
            },
            "logHandled" : {
              "type" : "boolean",
              "title" : "Log Handled",
              "description" : "Sets whether handled exceptions should be logged or not. Can be used to include or reduce verbose."
            },
            "logNewException" : {
              "type" : "boolean",
              "title" : "Log New Exception",
              "description" : "Sets whether new exceptions should be logged or not. Can be used to include or reduce verbose. A new exception is an exception that was thrown while handling a previous exception."
            },
            "logRetryAttempted" : {
              "type" : "boolean",
              "title" : "Log Retry Attempted",
              "description" : "Sets whether retry attempts should be logged or not. Can be used to include or reduce verbose."
            },
            "logRetryStackTrace" : {
              "type" : "boolean",
              "title" : "Log Retry Stack Trace",
              "description" : "Sets whether stack traces should be logged when an retry attempt failed. Can be used to include or reduce verbose."
            },
            "logStackTrace" : {
              "type" : "boolean",
              "title" : "Log Stack Trace",
              "description" : "Sets whether stack traces should be logged. Can be used to include or reduce verbose."
            },
            "maximumRedeliveries" : {
              "type" : "number",
              "title" : "Maximum Redeliveries",
              "description" : "Sets the maximum redeliveries x = redeliver at most x times 0 = no redeliveries -1 = redeliver forever"
            },
            "maximumRedeliveryDelay" : {
              "type" : "string",
              "title" : "Maximum Redelivery Delay",
              "description" : "Sets the maximum delay between redelivery",
              "default" : "60000"
            },
            "redeliveryDelay" : {
              "type" : "string",
              "title" : "Redelivery Delay",
              "description" : "Sets the initial redelivery delay",
              "default" : "1000"
            },
            "retriesExhaustedLogLevel" : {
              "type" : "string",
              "title" : "Retries Exhausted Log Level",
              "description" : "Sets the logging level to use when retries have been exhausted",
              "default" : "ERROR",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "retryAttemptedLogInterval" : {
              "type" : "number",
              "title" : "Retry Attempted Log Interval",
              "description" : "Sets the interval to use for logging retry attempts",
              "default" : "1"
            },
            "retryAttemptedLogLevel" : {
              "type" : "string",
              "title" : "Retry Attempted Log Level",
              "description" : "Sets the logging level to use for logging retry attempts",
              "default" : "DEBUG",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "useCollisionAvoidance" : {
              "type" : "boolean",
              "title" : "Use Collision Avoidance",
              "description" : "Turn on collision avoidance."
            },
            "useExponentialBackOff" : {
              "type" : "boolean",
              "title" : "Use Exponential Back Off",
              "description" : "Turn on exponential back off"
            }
          }
        }
      }
    }
  },
  "routeConfiguration" : {
    "model" : {
      "kind" : "model",
      "name" : "routeConfiguration",
      "title" : "Route Configuration",
      "description" : "Reusable configuration for Camel route(s).",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.RouteConfigurationDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "errorHandler" : {
        "index" : 2,
        "kind" : "element",
        "displayName" : "Error Handler",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.ErrorHandlerDefinition",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the error handler to use, for routes that has not already been configured with an error handler."
      },
      "intercept" : {
        "index" : 3,
        "kind" : "element",
        "displayName" : "Intercept",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.InterceptDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Adds a route for an interceptor that intercepts every processing step."
      },
      "interceptFrom" : {
        "index" : 4,
        "kind" : "element",
        "displayName" : "Intercept From",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.InterceptFromDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Adds a route for an interceptor that intercepts incoming messages on the given endpoint."
      },
      "interceptSendToEndpoint" : {
        "index" : 5,
        "kind" : "element",
        "displayName" : "Intercept Send To Endpoint",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.InterceptSendToEndpointDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Applies a route for an interceptor if an exchange is send to the given endpoint"
      },
      "onException" : {
        "index" : 6,
        "kind" : "element",
        "displayName" : "On Exception",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.OnExceptionDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Exception clause for catching certain exceptions and handling them."
      },
      "onCompletion" : {
        "index" : 7,
        "kind" : "element",
        "displayName" : "On Completion",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.OnCompletionDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "On completion callback for doing custom routing when the org.apache.camel.Exchange is complete."
      },
      "precondition" : {
        "index" : 8,
        "kind" : "attribute",
        "displayName" : "Precondition",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The predicate of the precondition in simple language to evaluate in order to determine if this route configuration should be included or not."
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "errorHandler" : {
          "$ref" : "#/definitions/org.apache.camel.model.ErrorHandlerDefinition",
          "title" : "Error Handler",
          "description" : "Sets the error handler to use, for routes that has not already been configured with an error handler."
        },
        "intercept" : {
          "type" : "array",
          "items" : {
            "additionalProperties" : false,
            "type" : "object",
            "properties" : {
              "intercept" : {
                "$ref" : "#/definitions/org.apache.camel.model.InterceptDefinition"
              }
            }
          },
          "title" : "Intercept",
          "description" : "Adds a route for an interceptor that intercepts every processing step."
        },
        "interceptFrom" : {
          "type" : "array",
          "items" : {
            "additionalProperties" : false,
            "type" : "object",
            "properties" : {
              "interceptFrom" : {
                "$ref" : "#/definitions/org.apache.camel.model.InterceptFromDefinition"
              }
            }
          },
          "title" : "Intercept From",
          "description" : "Adds a route for an interceptor that intercepts incoming messages on the given endpoint."
        },
        "interceptSendToEndpoint" : {
          "type" : "array",
          "items" : {
            "additionalProperties" : false,
            "type" : "object",
            "properties" : {
              "interceptSendToEndpoint" : {
                "$ref" : "#/definitions/org.apache.camel.model.InterceptSendToEndpointDefinition"
              }
            }
          },
          "title" : "Intercept Send To Endpoint",
          "description" : "Applies a route for an interceptor if an exchange is send to the given endpoint"
        },
        "onException" : {
          "type" : "array",
          "items" : {
            "additionalProperties" : false,
            "type" : "object",
            "properties" : {
              "onException" : {
                "$ref" : "#/definitions/org.apache.camel.model.OnExceptionDefinition"
              }
            }
          },
          "title" : "On Exception",
          "description" : "Exception clause for catching certain exceptions and handling them."
        },
        "onCompletion" : {
          "type" : "array",
          "items" : {
            "additionalProperties" : false,
            "type" : "object",
            "properties" : {
              "onCompletion" : {
                "$ref" : "#/definitions/org.apache.camel.model.OnCompletionDefinition"
              }
            }
          },
          "title" : "On Completion",
          "description" : "On completion callback for doing custom routing when the org.apache.camel.Exchange is complete."
        },
        "precondition" : {
          "type" : "string",
          "title" : "Precondition",
          "description" : "The predicate of the precondition in simple language to evaluate in order to determine if this route configuration should be included or not."
        }
      },
      "definitions" : {
        "org.apache.camel.model.ErrorHandlerDefinition" : {
          "title" : "Error Handler",
          "description" : "Camel error handling.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "The id of this node"
            }
          },
          "$comment" : "errorhandler"
        },
        "org.apache.camel.model.InterceptDefinition" : {
          "title" : "Intercept",
          "description" : "Intercepts a message at each step in the route",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
              "default" : false
            }
          },
          "$comment" : "steps"
        },
        "org.apache.camel.model.InterceptFromDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
              "default" : false
            },
            "uri" : {
              "type" : "string",
              "title" : "Uri",
              "description" : "Intercept incoming messages from the uri or uri pattern. If this option is not configured, then all incoming messages is intercepted."
            }
          },
          "title" : "Intercept From",
          "description" : "Intercepts incoming messages",
          "$comment" : "steps"
        },
        "org.apache.camel.model.InterceptSendToEndpointDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
              "default" : false
            },
            "uri" : {
              "type" : "string",
              "title" : "Uri",
              "description" : "Intercept sending to the uri or uri pattern."
            },
            "skipSendToOriginalEndpoint" : {
              "type" : "string",
              "title" : "Skip Send To Original Endpoint",
              "description" : "If set to true then the message is not sent to the original endpoint. By default (false) the message is both intercepted and then sent to the original endpoint."
            },
            "afterUri" : {
              "type" : "string",
              "title" : "After Uri",
              "description" : "After sending to the endpoint then send the message to this uri which allows to process its result."
            }
          },
          "title" : "Intercept Send To Endpoint",
          "description" : "Intercepts messages being sent to an endpoint",
          "$comment" : "steps"
        },
        "org.apache.camel.model.OnCompletionDefinition" : {
          "title" : "On Completion",
          "description" : "Route to be executed when normal route processing completes",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
              "default" : false
            },
            "mode" : {
              "type" : "string",
              "title" : "Mode",
              "description" : "Sets the on completion mode. The default value is AfterConsumer",
              "default" : "AfterConsumer",
              "enum" : [ "AfterConsumer", "BeforeConsumer" ]
            },
            "onCompleteOnly" : {
              "type" : "boolean",
              "title" : "On Complete Only",
              "description" : "Will only synchronize when the org.apache.camel.Exchange completed successfully (no errors).",
              "default" : false
            },
            "onFailureOnly" : {
              "type" : "boolean",
              "title" : "On Failure Only",
              "description" : "Will only synchronize when the org.apache.camel.Exchange ended with failure (exception or FAULT message).",
              "default" : false
            },
            "parallelProcessing" : {
              "type" : "boolean",
              "title" : "Parallel Processing",
              "description" : "If enabled then the on completion process will run asynchronously by a separate thread from a thread pool. By default this is false, meaning the on completion process will run synchronously using the same caller thread as from the route.",
              "default" : false
            },
            "executorService" : {
              "type" : "string",
              "title" : "Executor Service",
              "description" : "To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well."
            },
            "useOriginalMessage" : {
              "type" : "boolean",
              "title" : "Use Original Message",
              "description" : "Will use the original input message body when an org.apache.camel.Exchange for this on completion. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.",
              "default" : false
            },
            "onWhen" : {
              "title" : "On When",
              "description" : "Sets an additional predicate that should be true before the onCompletion is triggered. To be used for fine grained controlling whether a completion callback should be invoked or not",
              "$ref" : "#/definitions/org.apache.camel.model.WhenDefinition"
            }
          },
          "$comment" : "steps",
          "definitions" : {
            "org.apache.camel.model.WhenDefinition" : {
              "title" : "When",
              "description" : "Triggers a route when the expression evaluates to true",
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "description" : {
                  "type" : "string",
                  "title" : "Description",
                  "description" : "Sets the description of this node"
                },
                "disabled" : {
                  "type" : "boolean",
                  "title" : "Disabled",
                  "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "steps" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
                  }
                }
              },
              "$comment" : "expression"
            },
            "org.apache.camel.model.language.ExpressionDefinition" : {
              "type" : "object",
              "properties" : { }
            },
            "org.apache.camel.model.language.ConstantExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Constant",
              "description" : "A fixed value set only once during the route startup."
            },
            "org.apache.camel.model.language.CSimpleExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "CSimple",
              "description" : "Evaluate a compiled simple expression."
            },
            "org.apache.camel.model.language.DatasonnetExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "bodyMediaType" : {
                  "type" : "string",
                  "title" : "Body Media Type",
                  "description" : "The String representation of the message's body MediaType"
                },
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "outputMediaType" : {
                  "type" : "string",
                  "title" : "Output Media Type",
                  "description" : "The String representation of the MediaType to output"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "source" : {
                  "type" : "string",
                  "title" : "Source",
                  "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "DataSonnet",
              "description" : "To use DataSonnet scripts for message transformations."
            },
            "org.apache.camel.model.language.ExchangePropertyExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "ExchangeProperty",
              "description" : "Gets a property from the Exchange."
            },
            "org.apache.camel.model.language.GroovyExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Groovy",
              "description" : "Evaluates a Groovy script."
            },
            "org.apache.camel.model.language.HeaderExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Header",
              "description" : "Gets a header from the Exchange."
            },
            "org.apache.camel.model.language.Hl7TerserExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "source" : {
                  "type" : "string",
                  "title" : "Source",
                  "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "HL7 Terser",
              "description" : "Get the value of a HL7 message field specified by terse location specification syntax."
            },
            "org.apache.camel.model.language.JavaExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "preCompile" : {
                  "type" : "boolean",
                  "title" : "Pre Compile",
                  "description" : "Whether the expression should be pre compiled once during initialization phase. If this is turned off, then the expression is reloaded and compiled on each evaluation."
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "singleQuotes" : {
                  "type" : "boolean",
                  "title" : "Single Quotes",
                  "description" : "Whether single quotes can be used as replacement for double quotes. This is convenient when you need to work with strings inside strings."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Java",
              "description" : "Evaluates a Java (Java compiled once at runtime) expression."
            },
            "org.apache.camel.model.language.JoorExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "preCompile" : {
                  "type" : "boolean",
                  "title" : "Pre Compile",
                  "description" : "Whether the expression should be pre compiled once during initialization phase. If this is turned off, then the expression is reloaded and compiled on each evaluation."
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "singleQuotes" : {
                  "type" : "boolean",
                  "title" : "Single Quotes",
                  "description" : "Whether single quotes can be used as replacement for double quotes. This is convenient when you need to work with strings inside strings."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "jOOR",
              "description" : "Evaluates a jOOR (Java compiled once at runtime) expression."
            },
            "org.apache.camel.model.language.JqExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "source" : {
                  "type" : "string",
                  "title" : "Source",
                  "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "JQ",
              "description" : "Evaluates a JQ expression against a JSON message body."
            },
            "org.apache.camel.model.language.JavaScriptExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "JavaScript",
              "description" : "Evaluates a JavaScript expression."
            },
            "org.apache.camel.model.language.JsonPathExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "allowEasyPredicate" : {
                  "type" : "boolean",
                  "title" : "Allow Easy Predicate",
                  "description" : "Whether to allow using the easy predicate parser to pre-parse predicates."
                },
                "allowSimple" : {
                  "type" : "boolean",
                  "title" : "Allow Simple",
                  "description" : "Whether to allow in inlined Simple exceptions in the JSONPath expression"
                },
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "option" : {
                  "type" : "string",
                  "title" : "Option",
                  "description" : "To configure additional options on JSONPath. Multiple values can be separated by comma.",
                  "enum" : [ "DEFAULT_PATH_LEAF_TO_NULL", "ALWAYS_RETURN_LIST", "AS_PATH_LIST", "SUPPRESS_EXCEPTIONS", "REQUIRE_PROPERTIES" ]
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "source" : {
                  "type" : "string",
                  "title" : "Source",
                  "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
                },
                "suppressExceptions" : {
                  "type" : "boolean",
                  "title" : "Suppress Exceptions",
                  "description" : "Whether to suppress exceptions such as PathNotFoundException."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                },
                "unpackArray" : {
                  "type" : "boolean",
                  "title" : "Unpack Array",
                  "description" : "Whether to unpack a single element json-array into an object."
                },
                "writeAsString" : {
                  "type" : "boolean",
                  "title" : "Write As String",
                  "description" : "Whether to write the output of each row/element as a JSON String value instead of a Map/POJO value."
                }
              },
              "title" : "JSONPath",
              "description" : "Evaluates a JSONPath expression against a JSON message body."
            },
            "org.apache.camel.model.language.LanguageExpression" : {
              "title" : "Language",
              "description" : "Evaluates a custom language.",
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "language" : {
                  "type" : "string",
                  "title" : "Language",
                  "description" : "The name of the language to use"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "required" : [ "expression", "language" ]
            },
            "org.apache.camel.model.language.MethodCallExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "beanType" : {
                  "type" : "string",
                  "title" : "Bean Type",
                  "description" : "Class name (fully qualified) of the bean to use Will lookup in registry and if there is a single instance of the same type, then the existing bean is used, otherwise a new bean is created (requires a default no-arg constructor)."
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "method" : {
                  "type" : "string",
                  "title" : "Method",
                  "description" : "Name of method to call"
                },
                "ref" : {
                  "type" : "string",
                  "title" : "Ref",
                  "description" : "Reference to an existing bean (bean id) to lookup in the registry"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "scope" : {
                  "type" : "string",
                  "title" : "Scope",
                  "description" : "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using prototype scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. So when using prototype scope then this depends on the bean registry implementation.",
                  "default" : "Singleton",
                  "enum" : [ "Singleton", "Request", "Prototype" ]
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                },
                "validate" : {
                  "type" : "boolean",
                  "title" : "Validate",
                  "description" : "Whether to validate the bean has the configured method."
                }
              },
              "title" : "Bean Method",
              "description" : "Calls a Java bean method."
            },
            "org.apache.camel.model.language.MvelExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "MVEL",
              "description" : "Evaluates a MVEL template."
            },
            "org.apache.camel.model.language.OgnlExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "OGNL",
              "description" : "Evaluates an OGNL expression (Apache Commons OGNL)."
            },
            "org.apache.camel.model.language.PythonExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Python",
              "description" : "Evaluates a Python expression."
            },
            "org.apache.camel.model.language.RefExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Ref",
              "description" : "Uses an existing expression from the registry."
            },
            "org.apache.camel.model.language.SimpleExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Simple",
              "description" : "Evaluates a Camel simple expression."
            },
            "org.apache.camel.model.language.SpELExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "SpEL",
              "description" : "Evaluates a Spring expression (SpEL)."
            },
            "org.apache.camel.model.language.TokenizerExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "endToken" : {
                  "type" : "string",
                  "title" : "End Token",
                  "description" : "The end token to use as tokenizer if using start/end token pairs. You can use simple language as the token to support dynamic tokens."
                },
                "group" : {
                  "type" : "string",
                  "title" : "Group",
                  "description" : "To group N parts together, for example to split big files into chunks of 1000 lines. You can use simple language as the group to support dynamic group sizes."
                },
                "groupDelimiter" : {
                  "type" : "string",
                  "title" : "Group Delimiter",
                  "description" : "Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter."
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "includeTokens" : {
                  "type" : "boolean",
                  "title" : "Include Tokens",
                  "description" : "Whether to include the tokens in the parts when using pairs. When including tokens then the endToken property must also be configured (to use pair mode). The default value is false"
                },
                "inheritNamespaceTagName" : {
                  "type" : "string",
                  "title" : "Inherit Namespace Tag Name",
                  "description" : "To inherit namespaces from a root/parent tag name when using XML You can use simple language as the tag name to support dynamic names."
                },
                "regex" : {
                  "type" : "boolean",
                  "title" : "Regex",
                  "description" : "If the token is a regular expression pattern. The default value is false"
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "skipFirst" : {
                  "type" : "boolean",
                  "title" : "Skip First",
                  "description" : "To skip the very first element"
                },
                "source" : {
                  "type" : "string",
                  "title" : "Source",
                  "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
                },
                "token" : {
                  "type" : "string",
                  "title" : "Token",
                  "description" : "The (start) token to use as tokenizer, for example you can use the new line token. You can use simple language as the token to support dynamic tokens."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                },
                "xml" : {
                  "type" : "boolean",
                  "title" : "Xml",
                  "description" : "Whether the input is XML messages. This option must be set to true if working with XML payloads."
                }
              },
              "title" : "Tokenize",
              "description" : "Tokenize text payloads using delimiter patterns."
            },
            "org.apache.camel.model.language.VariableExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Variable",
              "description" : "Gets a variable"
            },
            "org.apache.camel.model.language.WasmExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "module" : {
                  "type" : "string",
                  "title" : "Module",
                  "description" : "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function."
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "Wasm",
              "description" : "Call a wasm (web assembly) function."
            },
            "org.apache.camel.model.language.XPathExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "documentType" : {
                  "type" : "string",
                  "title" : "Document Type",
                  "description" : "Name of class for document type The default value is org.w3c.dom.Document"
                },
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "factoryRef" : {
                  "type" : "string",
                  "title" : "Factory Ref",
                  "description" : "References to a custom XPathFactory to lookup in the registry"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "logNamespaces" : {
                  "type" : "boolean",
                  "title" : "Log Namespaces",
                  "description" : "Whether to log namespaces which can assist during troubleshooting"
                },
                "namespace" : {
                  "type" : "array",
                  "title" : "Namespace",
                  "description" : "Injects the XML Namespaces of prefix - uri mappings",
                  "items" : {
                    "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
                  }
                },
                "objectModel" : {
                  "type" : "string",
                  "title" : "Object Model",
                  "description" : "The XPath object model to use"
                },
                "preCompile" : {
                  "type" : "boolean",
                  "title" : "Pre Compile",
                  "description" : "Whether to enable pre-compiling the xpath expression during initialization phase. pre-compile is enabled by default. This can be used to turn off, for example in cases the compilation phase is desired at the starting phase, such as if the application is ahead of time compiled (for example with camel-quarkus) which would then load the xpath factory of the built operating system, and not a JVM runtime."
                },
                "resultQName" : {
                  "type" : "string",
                  "title" : "Result QName",
                  "description" : "Sets the output type supported by XPath.",
                  "default" : "NODESET",
                  "enum" : [ "NUMBER", "STRING", "BOOLEAN", "NODESET", "NODE" ]
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "saxon" : {
                  "type" : "boolean",
                  "title" : "Saxon",
                  "description" : "Whether to use Saxon."
                },
                "source" : {
                  "type" : "string",
                  "title" : "Source",
                  "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
                },
                "threadSafety" : {
                  "type" : "boolean",
                  "title" : "Thread Safety",
                  "description" : "Whether to enable thread-safety for the returned result of the xpath expression. This applies to when using NODESET as the result type, and the returned set has multiple elements. In this situation there can be thread-safety issues if you process the NODESET concurrently such as from a Camel Splitter EIP in parallel processing mode. This option prevents concurrency issues by doing defensive copies of the nodes. It is recommended to turn this option on if you are using camel-saxon or Saxon in your application. Saxon has thread-safety issues which can be prevented by turning this option on."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "XPath",
              "description" : "Evaluates an XPath expression against an XML payload."
            },
            "org.apache.camel.model.language.XQueryExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "configurationRef" : {
                  "type" : "string",
                  "title" : "Configuration Ref",
                  "description" : "Reference to a saxon configuration instance in the registry to use for xquery (requires camel-saxon). This may be needed to add custom functions to a saxon configuration, so these custom functions can be used in xquery expressions."
                },
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "namespace" : {
                  "type" : "array",
                  "title" : "Namespace",
                  "description" : "Injects the XML Namespaces of prefix - uri mappings",
                  "items" : {
                    "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
                  }
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "source" : {
                  "type" : "string",
                  "title" : "Source",
                  "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "XQuery",
              "description" : "Evaluates an XQuery expressions against an XML payload."
            },
            "org.apache.camel.model.language.XMLTokenizerExpression" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "expression" : {
                  "type" : "string",
                  "title" : "Expression",
                  "description" : "The expression value in your chosen language syntax"
                },
                "group" : {
                  "type" : "number",
                  "title" : "Group",
                  "description" : "To group N parts together"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "mode" : {
                  "type" : "string",
                  "title" : "Mode",
                  "description" : "The extraction mode. The available extraction modes are: i - injecting the contextual namespace bindings into the extracted token (default) w - wrapping the extracted token in its ancestor context u - unwrapping the extracted token to its child content t - extracting the text content of the specified element",
                  "default" : "i",
                  "enum" : [ "i", "w", "u", "t" ]
                },
                "namespace" : {
                  "type" : "array",
                  "title" : "Namespace",
                  "description" : "Injects the XML Namespaces of prefix - uri mappings",
                  "items" : {
                    "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
                  }
                },
                "resultType" : {
                  "type" : "string",
                  "title" : "Result Type",
                  "description" : "Sets the class of the result type (type from output)"
                },
                "source" : {
                  "type" : "string",
                  "title" : "Source",
                  "description" : "Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body."
                },
                "trim" : {
                  "type" : "boolean",
                  "title" : "Trim",
                  "description" : "Whether to trim the value to remove leading and trailing whitespaces and line breaks"
                }
              },
              "title" : "XML Tokenize",
              "description" : "Tokenize XML payloads."
            },
            "org.apache.camel.model.PropertyDefinition" : {
              "title" : "Property",
              "description" : "A key value pair where the value is a literal value",
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "key" : {
                  "type" : "string",
                  "title" : "Key",
                  "description" : "The name of the property"
                },
                "value" : {
                  "type" : "string",
                  "title" : "Value",
                  "description" : "The property value."
                }
              },
              "required" : [ "key", "value" ]
            }
          }
        },
        "org.apache.camel.model.OnExceptionDefinition" : {
          "title" : "On Exception",
          "description" : "Route to be executed when an exception is thrown",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.",
              "default" : false
            },
            "exception" : {
              "type" : "array",
              "title" : "Exception",
              "description" : "A set of exceptions to react upon.",
              "items" : {
                "type" : "string"
              }
            },
            "onWhen" : {
              "title" : "On When",
              "description" : "Sets an additional predicate that should be true before the onException is triggered. To be used for fine grained controlling whether a thrown exception should be intercepted by this exception type or not.",
              "$ref" : "#/definitions/org.apache.camel.model.WhenDefinition"
            },
            "retryWhile" : {
              "title" : "Retry While",
              "description" : "Sets the retry while predicate. Will continue retrying until predicate returns false.",
              "type" : "object",
              "$comment" : "expression"
            },
            "redeliveryPolicy" : {
              "title" : "Redelivery Policy",
              "description" : "Used for configuring redelivery options",
              "$ref" : "#/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
            },
            "redeliveryPolicyRef" : {
              "type" : "string",
              "title" : "Redelivery Policy Ref",
              "description" : "Sets a reference to a redelivery policy to lookup in the org.apache.camel.spi.Registry to be used."
            },
            "handled" : {
              "title" : "Handled",
              "description" : "Sets whether the exchange should be marked as handled or not.",
              "type" : "object",
              "$comment" : "expression"
            },
            "continued" : {
              "title" : "Continued",
              "description" : "Sets whether the exchange should handle and continue routing from the point of failure. If this option is enabled then its considered handled as well.",
              "type" : "object",
              "$comment" : "expression"
            },
            "onRedeliveryRef" : {
              "type" : "string",
              "title" : "On Redelivery Ref",
              "description" : "Sets a reference to a processor that should be processed before a redelivery attempt. Can be used to change the org.apache.camel.Exchange before its being redelivered."
            },
            "onExceptionOccurredRef" : {
              "type" : "string",
              "title" : "On Exception Occurred Ref",
              "description" : "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Important: Any exception thrown from this processor will be ignored."
            },
            "useOriginalMessage" : {
              "type" : "boolean",
              "title" : "Use Original Message",
              "description" : "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.",
              "default" : false
            },
            "useOriginalBody" : {
              "type" : "boolean",
              "title" : "Use Original Body",
              "description" : "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.",
              "default" : false
            }
          },
          "$comment" : "steps",
          "definitions" : {
            "org.apache.camel.model.WhenDefinition" : {
              "title" : "When",
              "description" : "Triggers a route when the expression evaluates to true",
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "description" : {
                  "type" : "string",
                  "title" : "Description",
                  "description" : "Sets the description of this node"
                },
                "disabled" : {
                  "type" : "boolean",
                  "title" : "Disabled",
                  "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "steps" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
                  }
                }
              },
              "$comment" : "expression"
            },
            "org.apache.camel.model.RedeliveryPolicyDefinition" : {
              "title" : "Redelivery Policy",
              "description" : "To configure re-delivery for error handling",
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "allowRedeliveryWhileStopping" : {
                  "type" : "boolean",
                  "title" : "Allow Redelivery While Stopping",
                  "description" : "Controls whether to allow redelivery while stopping/shutting down a route that uses error handling."
                },
                "asyncDelayedRedelivery" : {
                  "type" : "boolean",
                  "title" : "Async Delayed Redelivery",
                  "description" : "Allow asynchronous delayed redelivery. The route, in particular the consumer's component, must support the Asynchronous Routing Engine (e.g. seda)."
                },
                "backOffMultiplier" : {
                  "type" : "number",
                  "title" : "Back Off Multiplier",
                  "description" : "Sets the back off multiplier",
                  "default" : "2.0"
                },
                "collisionAvoidanceFactor" : {
                  "type" : "number",
                  "title" : "Collision Avoidance Factor",
                  "description" : "Sets the collision avoidance factor",
                  "default" : "0.15"
                },
                "delayPattern" : {
                  "type" : "string",
                  "title" : "Delay Pattern",
                  "description" : "Sets the delay pattern with delay intervals."
                },
                "disableRedelivery" : {
                  "type" : "boolean",
                  "title" : "Disable Redelivery",
                  "description" : "Disables redelivery (same as setting maximum redeliveries to 0)"
                },
                "exchangeFormatterRef" : {
                  "type" : "string",
                  "title" : "Exchange Formatter Ref",
                  "description" : "Sets the reference of the instance of org.apache.camel.spi.ExchangeFormatter to generate the log message from exchange."
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "The id of this node"
                },
                "logContinued" : {
                  "type" : "boolean",
                  "title" : "Log Continued",
                  "description" : "Sets whether continued exceptions should be logged or not. Can be used to include or reduce verbose."
                },
                "logExhausted" : {
                  "type" : "boolean",
                  "title" : "Log Exhausted",
                  "description" : "Sets whether exhausted exceptions should be logged or not. Can be used to include or reduce verbose."
                },
                "logExhaustedMessageBody" : {
                  "type" : "boolean",
                  "title" : "Log Exhausted Message Body",
                  "description" : "Sets whether exhausted message body should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose. Requires logExhaustedMessageHistory to be enabled."
                },
                "logExhaustedMessageHistory" : {
                  "type" : "boolean",
                  "title" : "Log Exhausted Message History",
                  "description" : "Sets whether exhausted exceptions should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose."
                },
                "logHandled" : {
                  "type" : "boolean",
                  "title" : "Log Handled",
                  "description" : "Sets whether handled exceptions should be logged or not. Can be used to include or reduce verbose."
                },
                "logNewException" : {
                  "type" : "boolean",
                  "title" : "Log New Exception",
                  "description" : "Sets whether new exceptions should be logged or not. Can be used to include or reduce verbose. A new exception is an exception that was thrown while handling a previous exception."
                },
                "logRetryAttempted" : {
                  "type" : "boolean",
                  "title" : "Log Retry Attempted",
                  "description" : "Sets whether retry attempts should be logged or not. Can be used to include or reduce verbose."
                },
                "logRetryStackTrace" : {
                  "type" : "boolean",
                  "title" : "Log Retry Stack Trace",
                  "description" : "Sets whether stack traces should be logged when an retry attempt failed. Can be used to include or reduce verbose."
                },
                "logStackTrace" : {
                  "type" : "boolean",
                  "title" : "Log Stack Trace",
                  "description" : "Sets whether stack traces should be logged. Can be used to include or reduce verbose."
                },
                "maximumRedeliveries" : {
                  "type" : "number",
                  "title" : "Maximum Redeliveries",
                  "description" : "Sets the maximum redeliveries x = redeliver at most x times 0 = no redeliveries -1 = redeliver forever"
                },
                "maximumRedeliveryDelay" : {
                  "type" : "string",
                  "title" : "Maximum Redelivery Delay",
                  "description" : "Sets the maximum delay between redelivery",
                  "default" : "60000"
                },
                "redeliveryDelay" : {
                  "type" : "string",
                  "title" : "Redelivery Delay",
                  "description" : "Sets the initial redelivery delay",
                  "default" : "1000"
                },
                "retriesExhaustedLogLevel" : {
                  "type" : "string",
                  "title" : "Retries Exhausted Log Level",
                  "description" : "Sets the logging level to use when retries have been exhausted",
                  "default" : "ERROR",
                  "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
                },
                "retryAttemptedLogInterval" : {
                  "type" : "number",
                  "title" : "Retry Attempted Log Interval",
                  "description" : "Sets the interval to use for logging retry attempts",
                  "default" : "1"
                },
                "retryAttemptedLogLevel" : {
                  "type" : "string",
                  "title" : "Retry Attempted Log Level",
                  "description" : "Sets the logging level to use for logging retry attempts",
                  "default" : "DEBUG",
                  "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
                },
                "useCollisionAvoidance" : {
                  "type" : "boolean",
                  "title" : "Use Collision Avoidance",
                  "description" : "Turn on collision avoidance."
                },
                "useExponentialBackOff" : {
                  "type" : "boolean",
                  "title" : "Use Exponential Back Off",
                  "description" : "Turn on exponential back off"
                }
              }
            }
          }
        },
        "org.apache.camel.model.errorhandler.DeadLetterChannelDefinition" : {
          "title" : "Dead Letter Channel",
          "description" : "Error handler with dead letter queue.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "deadLetterHandleNewException" : {
              "type" : "boolean",
              "title" : "Dead Letter Handle New Exception",
              "description" : "Whether the dead letter channel should handle (and ignore) any new exception that may been thrown during sending the message to the dead letter endpoint. The default value is true which means any such kind of exception is handled and ignored. Set this to false to let the exception be propagated back on the org.apache.camel.Exchange . This can be used in situations where you use transactions, and want to use Camel's dead letter channel to deal with exceptions during routing, but if the dead letter channel itself fails because of a new exception being thrown, then by setting this to false the new exceptions is propagated back and set on the org.apache.camel.Exchange , which allows the transaction to detect the exception, and rollback."
            },
            "deadLetterUri" : {
              "type" : "string",
              "title" : "Dead Letter Uri",
              "description" : "The dead letter endpoint uri for the Dead Letter error handler."
            },
            "executorServiceRef" : {
              "type" : "string",
              "title" : "Executor Service Ref",
              "description" : "Sets a reference to a thread pool to be used by the error handler"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "The id of this node"
            },
            "level" : {
              "type" : "string",
              "title" : "Level",
              "description" : "Logging level to use by error handler",
              "default" : "ERROR",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "logName" : {
              "type" : "string",
              "title" : "Log Name",
              "description" : "Name of the logger to use by the error handler"
            },
            "loggerRef" : {
              "type" : "string",
              "title" : "Logger Ref",
              "description" : "References to a logger to use as logger for the error handler"
            },
            "onExceptionOccurredRef" : {
              "type" : "string",
              "title" : "On Exception Occurred Ref",
              "description" : "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Important: Any exception thrown from this processor will be ignored."
            },
            "onPrepareFailureRef" : {
              "type" : "string",
              "title" : "On Prepare Failure Ref",
              "description" : "Sets a reference to a processor to prepare the org.apache.camel.Exchange before handled by the failure processor / dead letter channel. This allows for example to enrich the message before sending to a dead letter queue."
            },
            "onRedeliveryRef" : {
              "type" : "string",
              "title" : "On Redelivery Ref",
              "description" : "Sets a reference to a processor that should be processed before a redelivery attempt. Can be used to change the org.apache.camel.Exchange before its being redelivered."
            },
            "redeliveryPolicy" : {
              "title" : "Redelivery Policy",
              "description" : "Sets the redelivery settings",
              "$ref" : "#/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
            },
            "redeliveryPolicyRef" : {
              "type" : "string",
              "title" : "Redelivery Policy Ref",
              "description" : "Sets a reference to a RedeliveryPolicy to be used for redelivery settings."
            },
            "retryWhileRef" : {
              "type" : "string",
              "title" : "Retry While Ref",
              "description" : "Sets a retry while predicate. Will continue retrying until the predicate evaluates to false."
            },
            "useOriginalBody" : {
              "type" : "boolean",
              "title" : "Use Original Body",
              "description" : "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the splitted message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
            },
            "useOriginalMessage" : {
              "type" : "boolean",
              "title" : "Use Original Message",
              "description" : "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the splitted message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
            }
          },
          "required" : [ "deadLetterUri" ]
        },
        "org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition" : {
          "title" : "Default Error Handler",
          "description" : "The default error handler.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "executorServiceRef" : {
              "type" : "string",
              "title" : "Executor Service Ref",
              "description" : "Sets a reference to a thread pool to be used by the error handler"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "The id of this node"
            },
            "level" : {
              "type" : "string",
              "title" : "Level",
              "description" : "Logging level to use by error handler",
              "default" : "ERROR",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "logName" : {
              "type" : "string",
              "title" : "Log Name",
              "description" : "Name of the logger to use by the error handler"
            },
            "loggerRef" : {
              "type" : "string",
              "title" : "Logger Ref",
              "description" : "References to a logger to use as logger for the error handler"
            },
            "onExceptionOccurredRef" : {
              "type" : "string",
              "title" : "On Exception Occurred Ref",
              "description" : "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Important: Any exception thrown from this processor will be ignored."
            },
            "onPrepareFailureRef" : {
              "type" : "string",
              "title" : "On Prepare Failure Ref",
              "description" : "Sets a reference to a processor to prepare the org.apache.camel.Exchange before handled by the failure processor / dead letter channel. This allows for example to enrich the message before sending to a dead letter queue."
            },
            "onRedeliveryRef" : {
              "type" : "string",
              "title" : "On Redelivery Ref",
              "description" : "Sets a reference to a processor that should be processed before a redelivery attempt. Can be used to change the org.apache.camel.Exchange before its being redelivered."
            },
            "redeliveryPolicy" : {
              "title" : "Redelivery Policy",
              "description" : "Sets the redelivery settings",
              "$ref" : "#/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
            },
            "redeliveryPolicyRef" : {
              "type" : "string",
              "title" : "Redelivery Policy Ref",
              "description" : "Sets a reference to a RedeliveryPolicy to be used for redelivery settings."
            },
            "retryWhileRef" : {
              "type" : "string",
              "title" : "Retry While Ref",
              "description" : "Sets a retry while predicate. Will continue retrying until the predicate evaluates to false."
            },
            "useOriginalBody" : {
              "type" : "boolean",
              "title" : "Use Original Body",
              "description" : "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the splitted message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
            },
            "useOriginalMessage" : {
              "type" : "boolean",
              "title" : "Use Original Message",
              "description" : "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the splitted message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
            }
          }
        },
        "org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition" : {
          "title" : "Jta Transaction Error Handler",
          "description" : "JTA based transactional error handler (requires camel-jta).",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "executorServiceRef" : {
              "type" : "string",
              "title" : "Executor Service Ref",
              "description" : "Sets a reference to a thread pool to be used by the error handler"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "The id of this node"
            },
            "level" : {
              "type" : "string",
              "title" : "Level",
              "description" : "Logging level to use by error handler",
              "default" : "ERROR",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "logName" : {
              "type" : "string",
              "title" : "Log Name",
              "description" : "Name of the logger to use by the error handler"
            },
            "loggerRef" : {
              "type" : "string",
              "title" : "Logger Ref",
              "description" : "References to a logger to use as logger for the error handler"
            },
            "onExceptionOccurredRef" : {
              "type" : "string",
              "title" : "On Exception Occurred Ref",
              "description" : "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Important: Any exception thrown from this processor will be ignored."
            },
            "onPrepareFailureRef" : {
              "type" : "string",
              "title" : "On Prepare Failure Ref",
              "description" : "Sets a reference to a processor to prepare the org.apache.camel.Exchange before handled by the failure processor / dead letter channel. This allows for example to enrich the message before sending to a dead letter queue."
            },
            "onRedeliveryRef" : {
              "type" : "string",
              "title" : "On Redelivery Ref",
              "description" : "Sets a reference to a processor that should be processed before a redelivery attempt. Can be used to change the org.apache.camel.Exchange before its being redelivered."
            },
            "redeliveryPolicy" : {
              "title" : "Redelivery Policy",
              "description" : "Sets the redelivery settings",
              "$ref" : "#/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
            },
            "redeliveryPolicyRef" : {
              "type" : "string",
              "title" : "Redelivery Policy Ref",
              "description" : "Sets a reference to a RedeliveryPolicy to be used for redelivery settings."
            },
            "retryWhileRef" : {
              "type" : "string",
              "title" : "Retry While Ref",
              "description" : "Sets a retry while predicate. Will continue retrying until the predicate evaluates to false."
            },
            "rollbackLoggingLevel" : {
              "type" : "string",
              "title" : "Rollback Logging Level",
              "description" : "Sets the logging level to use for logging transactional rollback. This option is default WARN.",
              "default" : "WARN",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "transactedPolicyRef" : {
              "type" : "string",
              "title" : "Transacted Policy Ref",
              "description" : "The transacted policy to use that is configured for either Spring or JTA based transactions. If no policy has been configured then Camel will attempt to auto-discover."
            },
            "useOriginalBody" : {
              "type" : "boolean",
              "title" : "Use Original Body",
              "description" : "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the splitted message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
            },
            "useOriginalMessage" : {
              "type" : "boolean",
              "title" : "Use Original Message",
              "description" : "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the splitted message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
            }
          }
        },
        "org.apache.camel.model.errorhandler.NoErrorHandlerDefinition" : {
          "title" : "No Error Handler",
          "description" : "To not use an error handler.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "The id of this node"
            }
          }
        },
        "org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition" : {
          "title" : "Spring Transaction Error Handler",
          "description" : "Spring based transactional error handler (requires camel-spring).",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "executorServiceRef" : {
              "type" : "string",
              "title" : "Executor Service Ref",
              "description" : "Sets a reference to a thread pool to be used by the error handler"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "The id of this node"
            },
            "level" : {
              "type" : "string",
              "title" : "Level",
              "description" : "Logging level to use by error handler",
              "default" : "ERROR",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "logName" : {
              "type" : "string",
              "title" : "Log Name",
              "description" : "Name of the logger to use by the error handler"
            },
            "loggerRef" : {
              "type" : "string",
              "title" : "Logger Ref",
              "description" : "References to a logger to use as logger for the error handler"
            },
            "onExceptionOccurredRef" : {
              "type" : "string",
              "title" : "On Exception Occurred Ref",
              "description" : "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Important: Any exception thrown from this processor will be ignored."
            },
            "onPrepareFailureRef" : {
              "type" : "string",
              "title" : "On Prepare Failure Ref",
              "description" : "Sets a reference to a processor to prepare the org.apache.camel.Exchange before handled by the failure processor / dead letter channel. This allows for example to enrich the message before sending to a dead letter queue."
            },
            "onRedeliveryRef" : {
              "type" : "string",
              "title" : "On Redelivery Ref",
              "description" : "Sets a reference to a processor that should be processed before a redelivery attempt. Can be used to change the org.apache.camel.Exchange before its being redelivered."
            },
            "redeliveryPolicy" : {
              "title" : "Redelivery Policy",
              "description" : "Sets the redelivery settings",
              "$ref" : "#/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
            },
            "redeliveryPolicyRef" : {
              "type" : "string",
              "title" : "Redelivery Policy Ref",
              "description" : "Sets a reference to a RedeliveryPolicy to be used for redelivery settings."
            },
            "retryWhileRef" : {
              "type" : "string",
              "title" : "Retry While Ref",
              "description" : "Sets a retry while predicate. Will continue retrying until the predicate evaluates to false."
            },
            "rollbackLoggingLevel" : {
              "type" : "string",
              "title" : "Rollback Logging Level",
              "description" : "Sets the logging level to use for logging transactional rollback. This option is default WARN.",
              "default" : "WARN",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "transactedPolicyRef" : {
              "type" : "string",
              "title" : "Transacted Policy Ref",
              "description" : "The transacted policy to use that is configured for either Spring or JTA based transactions. If no policy has been configured then Camel will attempt to auto-discover."
            },
            "useOriginalBody" : {
              "type" : "boolean",
              "title" : "Use Original Body",
              "description" : "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the splitted message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
            },
            "useOriginalMessage" : {
              "type" : "boolean",
              "title" : "Use Original Message",
              "description" : "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the splitted message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off."
            }
          }
        },
        "org.apache.camel.model.WhenDefinition" : {
          "title" : "When",
          "description" : "Triggers a route when the expression evaluates to true",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "steps" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
              }
            }
          },
          "$comment" : "expression"
        },
        "org.apache.camel.model.PropertyDefinition" : {
          "title" : "Property",
          "description" : "A key value pair where the value is a literal value",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "The name of the property"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "The property value."
            }
          },
          "required" : [ "key", "value" ]
        },
        "org.apache.camel.model.RedeliveryPolicyDefinition" : {
          "title" : "Redelivery Policy",
          "description" : "To configure re-delivery for error handling",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "allowRedeliveryWhileStopping" : {
              "type" : "boolean",
              "title" : "Allow Redelivery While Stopping",
              "description" : "Controls whether to allow redelivery while stopping/shutting down a route that uses error handling."
            },
            "asyncDelayedRedelivery" : {
              "type" : "boolean",
              "title" : "Async Delayed Redelivery",
              "description" : "Allow asynchronous delayed redelivery. The route, in particular the consumer's component, must support the Asynchronous Routing Engine (e.g. seda)."
            },
            "backOffMultiplier" : {
              "type" : "number",
              "title" : "Back Off Multiplier",
              "description" : "Sets the back off multiplier",
              "default" : "2.0"
            },
            "collisionAvoidanceFactor" : {
              "type" : "number",
              "title" : "Collision Avoidance Factor",
              "description" : "Sets the collision avoidance factor",
              "default" : "0.15"
            },
            "delayPattern" : {
              "type" : "string",
              "title" : "Delay Pattern",
              "description" : "Sets the delay pattern with delay intervals."
            },
            "disableRedelivery" : {
              "type" : "boolean",
              "title" : "Disable Redelivery",
              "description" : "Disables redelivery (same as setting maximum redeliveries to 0)"
            },
            "exchangeFormatterRef" : {
              "type" : "string",
              "title" : "Exchange Formatter Ref",
              "description" : "Sets the reference of the instance of org.apache.camel.spi.ExchangeFormatter to generate the log message from exchange."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "The id of this node"
            },
            "logContinued" : {
              "type" : "boolean",
              "title" : "Log Continued",
              "description" : "Sets whether continued exceptions should be logged or not. Can be used to include or reduce verbose."
            },
            "logExhausted" : {
              "type" : "boolean",
              "title" : "Log Exhausted",
              "description" : "Sets whether exhausted exceptions should be logged or not. Can be used to include or reduce verbose."
            },
            "logExhaustedMessageBody" : {
              "type" : "boolean",
              "title" : "Log Exhausted Message Body",
              "description" : "Sets whether exhausted message body should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose. Requires logExhaustedMessageHistory to be enabled."
            },
            "logExhaustedMessageHistory" : {
              "type" : "boolean",
              "title" : "Log Exhausted Message History",
              "description" : "Sets whether exhausted exceptions should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose."
            },
            "logHandled" : {
              "type" : "boolean",
              "title" : "Log Handled",
              "description" : "Sets whether handled exceptions should be logged or not. Can be used to include or reduce verbose."
            },
            "logNewException" : {
              "type" : "boolean",
              "title" : "Log New Exception",
              "description" : "Sets whether new exceptions should be logged or not. Can be used to include or reduce verbose. A new exception is an exception that was thrown while handling a previous exception."
            },
            "logRetryAttempted" : {
              "type" : "boolean",
              "title" : "Log Retry Attempted",
              "description" : "Sets whether retry attempts should be logged or not. Can be used to include or reduce verbose."
            },
            "logRetryStackTrace" : {
              "type" : "boolean",
              "title" : "Log Retry Stack Trace",
              "description" : "Sets whether stack traces should be logged when an retry attempt failed. Can be used to include or reduce verbose."
            },
            "logStackTrace" : {
              "type" : "boolean",
              "title" : "Log Stack Trace",
              "description" : "Sets whether stack traces should be logged. Can be used to include or reduce verbose."
            },
            "maximumRedeliveries" : {
              "type" : "number",
              "title" : "Maximum Redeliveries",
              "description" : "Sets the maximum redeliveries x = redeliver at most x times 0 = no redeliveries -1 = redeliver forever"
            },
            "maximumRedeliveryDelay" : {
              "type" : "string",
              "title" : "Maximum Redelivery Delay",
              "description" : "Sets the maximum delay between redelivery",
              "default" : "60000"
            },
            "redeliveryDelay" : {
              "type" : "string",
              "title" : "Redelivery Delay",
              "description" : "Sets the initial redelivery delay",
              "default" : "1000"
            },
            "retriesExhaustedLogLevel" : {
              "type" : "string",
              "title" : "Retries Exhausted Log Level",
              "description" : "Sets the logging level to use when retries have been exhausted",
              "default" : "ERROR",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "retryAttemptedLogInterval" : {
              "type" : "number",
              "title" : "Retry Attempted Log Interval",
              "description" : "Sets the interval to use for logging retry attempts",
              "default" : "1"
            },
            "retryAttemptedLogLevel" : {
              "type" : "string",
              "title" : "Retry Attempted Log Level",
              "description" : "Sets the logging level to use for logging retry attempts",
              "default" : "DEBUG",
              "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ]
            },
            "useCollisionAvoidance" : {
              "type" : "boolean",
              "title" : "Use Collision Avoidance",
              "description" : "Turn on collision avoidance."
            },
            "useExponentialBackOff" : {
              "type" : "boolean",
              "title" : "Use Exponential Back Off",
              "description" : "Turn on exponential back off"
            }
          }
        }
      }
    }
  },
  "route" : {
    "model" : {
      "kind" : "model",
      "name" : "route",
      "title" : "Route",
      "description" : "A Camel route",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.RouteDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : true,
      "output" : true
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "group" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Group",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The group that this route belongs to; could be the name of the RouteBuilder class or be explicitly configured in the XML. May be null."
      },
      "nodePrefixId" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Node Prefix Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets a prefix to use for all node ids (not route id)."
      },
      "routeConfigurationId" : {
        "index" : 4,
        "kind" : "attribute",
        "displayName" : "Route Configuration Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The route configuration id or pattern this route should use for configuration. Multiple id/pattern can be separated by comma."
      },
      "autoStartup" : {
        "index" : 5,
        "kind" : "attribute",
        "displayName" : "Auto Startup",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "true",
        "description" : "Whether to auto start this route"
      },
      "startupOrder" : {
        "index" : 6,
        "kind" : "attribute",
        "displayName" : "Startup Order",
        "label" : "advanced",
        "required" : false,
        "type" : "integer",
        "javaType" : "java.lang.Integer",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To configure the ordering of the routes being started"
      },
      "streamCaching" : {
        "index" : 7,
        "kind" : "attribute",
        "displayName" : "Stream Cache",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Whether stream caching is enabled on this route."
      },
      "trace" : {
        "index" : 8,
        "kind" : "attribute",
        "displayName" : "Trace",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Whether tracing is enabled on this route."
      },
      "messageHistory" : {
        "index" : 9,
        "kind" : "attribute",
        "displayName" : "Message History",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Whether message history is enabled on this route."
      },
      "logMask" : {
        "index" : 10,
        "kind" : "attribute",
        "displayName" : "Log Mask",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "false",
        "description" : "Whether security mask for Logging is enabled on this route."
      },
      "delayer" : {
        "index" : 11,
        "kind" : "attribute",
        "displayName" : "Delayer",
        "required" : false,
        "type" : "duration",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "advanced",
        "description" : "Whether to slow down processing messages by a given delay in msec."
      },
      "errorHandlerRef" : {
        "index" : 12,
        "kind" : "attribute",
        "displayName" : "Error Handler",
        "label" : "error",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the bean ref name of the error handler builder to use on this route"
      },
      "routePolicy" : {
        "index" : 13,
        "kind" : "attribute",
        "displayName" : "Route Policy",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Reference to custom org.apache.camel.spi.RoutePolicy to use by the route. Multiple policies can be configured by separating values using comma."
      },
      "shutdownRoute" : {
        "index" : 14,
        "kind" : "attribute",
        "displayName" : "Shutdown Route",
        "label" : "advanced",
        "required" : false,
        "type" : "enum",
        "javaType" : "org.apache.camel.ShutdownRoute",
        "enum" : [ "Default", "Defer" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To control how to shutdown the route."
      },
      "shutdownRunningTask" : {
        "index" : 15,
        "kind" : "attribute",
        "displayName" : "Shutdown Running Task",
        "label" : "advanced",
        "required" : false,
        "type" : "enum",
        "javaType" : "org.apache.camel.ShutdownRunningTask",
        "enum" : [ "CompleteCurrentTaskOnly", "CompleteAllTasks" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To control how to shut down the route."
      },
      "precondition" : {
        "index" : 16,
        "kind" : "attribute",
        "displayName" : "Precondition",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The predicate of the precondition in simple language to evaluate in order to determine if this route should be included or not."
      },
      "inputType" : {
        "index" : 17,
        "kind" : "element",
        "displayName" : "Input Type",
        "label" : "advanced",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.InputTypeDefinition",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Declare the expected data type of the input message. If the actual message type is different at runtime, camel look for a required org.apache.camel.spi.Transformer and apply if exists. The type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} ."
      },
      "outputType" : {
        "index" : 18,
        "kind" : "element",
        "displayName" : "Output Type",
        "label" : "advanced",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.OutputTypeDefinition",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Declare the expected data type of the output message. If the actual message type is different at runtime, camel look for a required org.apache.camel.spi.Transformer and apply if exists. The type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} ."
      },
      "input" : {
        "index" : 19,
        "kind" : "element",
        "displayName" : "Input",
        "required" : true,
        "type" : "object",
        "javaType" : "org.apache.camel.model.FromDefinition",
        "oneOf" : [ "from" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Input to the route."
      },
      "outputs" : {
        "index" : 20,
        "kind" : "element",
        "displayName" : "Outputs",
        "required" : true,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.ProcessorDefinition<?>>",
        "oneOf" : [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "onFallback", "otherwise", "pausable", "pipeline", "policy", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "serviceCall", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "sort", "split", "step", "stop", "threads", "throttle", "throwException", "to", "toD", "transacted", "transform", "unmarshal", "validate", "when", "whenSkipSendToEndpoint", "wireTap" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Outputs are processors that determines how messages are processed by this route."
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "group" : {
          "type" : "string",
          "title" : "Group",
          "description" : "The group that this route belongs to; could be the name of the RouteBuilder class or be explicitly configured in the XML. May be null."
        },
        "nodePrefixId" : {
          "type" : "string",
          "title" : "Node Prefix Id",
          "description" : "Sets a prefix to use for all node ids (not route id)."
        },
        "routeConfigurationId" : {
          "type" : "string",
          "title" : "Route Configuration Id",
          "description" : "The route configuration id or pattern this route should use for configuration. Multiple id/pattern can be separated by comma."
        },
        "autoStartup" : {
          "type" : "boolean",
          "title" : "Auto Startup",
          "description" : "Whether to auto start this route",
          "default" : true
        },
        "startupOrder" : {
          "type" : "number",
          "title" : "Startup Order",
          "description" : "To configure the ordering of the routes being started"
        },
        "streamCaching" : {
          "type" : "boolean",
          "title" : "Stream Cache",
          "description" : "Whether stream caching is enabled on this route."
        },
        "trace" : {
          "type" : "boolean",
          "title" : "Trace",
          "description" : "Whether tracing is enabled on this route."
        },
        "messageHistory" : {
          "type" : "boolean",
          "title" : "Message History",
          "description" : "Whether message history is enabled on this route."
        },
        "logMask" : {
          "type" : "boolean",
          "title" : "Log Mask",
          "description" : "Whether security mask for Logging is enabled on this route.",
          "default" : false
        },
        "routePolicy" : {
          "type" : "string",
          "title" : "Route Policy",
          "description" : "Reference to custom org.apache.camel.spi.RoutePolicy to use by the route. Multiple policies can be configured by separating values using comma."
        },
        "shutdownRoute" : {
          "type" : "string",
          "description" : "To control how to shutdown the route.",
          "default" : "Default",
          "enum" : [ "Default", "Defer" ],
          "title" : "Shutdown Route"
        },
        "shutdownRunningTask" : {
          "type" : "string",
          "description" : "To control how to shut down the route.",
          "default" : "CompleteCurrentTaskOnly",
          "enum" : [ "CompleteCurrentTaskOnly", "CompleteAllTasks" ],
          "title" : "Shutdown Running Task"
        },
        "precondition" : {
          "type" : "string",
          "title" : "Precondition",
          "description" : "The predicate of the precondition in simple language to evaluate in order to determine if this route should be included or not."
        },
        "inputType" : {
          "$ref" : "#/definitions/org.apache.camel.model.InputTypeDefinition"
        },
        "outputType" : {
          "$ref" : "#/definitions/org.apache.camel.model.OutputTypeDefinition"
        },
        "from" : {
          "$ref" : "#/definitions/org.apache.camel.model.FromDefinition",
          "title" : "From",
          "description" : "From"
        }
      },
      "required" : [ "from" ],
      "definitions" : {
        "org.apache.camel.model.FromDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string"
            },
            "id" : {
              "type" : "string"
            },
            "parameters" : {
              "type" : "object"
            },
            "steps" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
              }
            },
            "uri" : {
              "type" : "string"
            },
            "variableReceive" : {
              "type" : "string"
            }
          },
          "required" : [ "steps", "uri" ]
        },
        "org.apache.camel.model.InputTypeDefinition" : {
          "title" : "Input Type",
          "description" : "Set the expected data type of the input message. If the actual message type is different at runtime, camel look for a required Transformer and apply if exists. If validate attribute is true then camel applies Validator as well. Type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} . It's also possible to specify only scheme part, so that it works like a wildcard. If only 'xml' is specified, all the XML message matches. It's handy to add only one transformer/validator for all the transformation from/to XML.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "urn" : {
              "type" : "string",
              "title" : "Urn",
              "description" : "The input type URN."
            },
            "validate" : {
              "type" : "boolean",
              "title" : "Validate",
              "description" : "Whether if validation is required for this input type."
            }
          },
          "required" : [ "urn" ]
        },
        "org.apache.camel.model.OutputTypeDefinition" : {
          "title" : "Output Type",
          "description" : "Set the expected data type of the output message. If the actual message type is different at runtime, camel look for a required Transformer and apply if exists. If validate attribute is true then camel applies Validator as well. Type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} . It's also possible to specify only scheme part, so that it works like a wildcard. If only 'xml' is specified, all the XML message matches. It's handy to add only one transformer/validator for all the XML-Java transformation.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "urn" : {
              "type" : "string",
              "title" : "Urn",
              "description" : "Set output type URN."
            },
            "validate" : {
              "type" : "boolean",
              "title" : "Validate",
              "description" : "Whether if validation is required for this output type."
            }
          },
          "required" : [ "urn" ]
        }
      }
    }
  },
  "routeTemplate" : {
    "model" : {
      "kind" : "model",
      "name" : "routeTemplate",
      "title" : "Route Template",
      "description" : "Defines a route template (parameterized routes)",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.RouteTemplateDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : true
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "templateParameter" : {
        "index" : 2,
        "kind" : "element",
        "displayName" : "Template Parameter",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.RouteTemplateParameterDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Adds a template parameter the route template uses"
      },
      "beans" : {
        "index" : 3,
        "kind" : "element",
        "displayName" : "Template Bean",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.RouteTemplateBeanDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Adds a local bean the route template uses"
      },
      "route" : {
        "index" : 4,
        "kind" : "element",
        "displayName" : "Route",
        "required" : true,
        "type" : "object",
        "javaType" : "org.apache.camel.model.RouteDefinition",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To define the route in the template"
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "beans" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.RouteTemplateBeanDefinition"
          },
          "title" : "Template Bean",
          "description" : "Adds a local bean the route template uses"
        },
        "route" : {
          "$ref" : "#/definitions/org.apache.camel.model.RouteDefinition",
          "title" : "Route",
          "description" : "To define the route in the template"
        },
        "from" : {
          "$ref" : "#/definitions/org.apache.camel.model.FromDefinition",
          "title" : "From",
          "description" : "From"
        },
        "parameters" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.RouteTemplateParameterDefinition"
          },
          "title" : "Parameters",
          "description" : "URI parameters"
        }
      },
      "required" : [ "id" ],
      "definitions" : {
        "org.apache.camel.model.RouteTemplateBeanDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "name" : {
              "type" : "string"
            },
            "properties" : {
              "type" : "object"
            },
            "property" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
              }
            },
            "script" : {
              "type" : "string"
            },
            "scriptLanguage" : {
              "type" : "string"
            },
            "type" : {
              "type" : "string"
            }
          },
          "required" : [ "name", "type" ]
        },
        "org.apache.camel.model.FromDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string"
            },
            "id" : {
              "type" : "string"
            },
            "parameters" : {
              "type" : "object"
            },
            "steps" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
              }
            },
            "uri" : {
              "type" : "string"
            },
            "variableReceive" : {
              "type" : "string"
            }
          },
          "required" : [ "steps", "uri" ]
        },
        "org.apache.camel.model.RouteTemplateParameterDefinition" : {
          "title" : "Template Parameter",
          "description" : "A route template parameter",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "defaultValue" : {
              "type" : "string",
              "title" : "Default Value",
              "description" : "Default value of the parameter. If a default value is provided then the parameter is implied not to be required."
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Description of the parameter"
            },
            "name" : {
              "type" : "string",
              "title" : "Name",
              "description" : "The name of the parameter"
            },
            "required" : {
              "type" : "boolean",
              "title" : "Required",
              "description" : "Whether the parameter is required or not. A parameter is required unless this option is set to false or a default value has been configured."
            }
          },
          "required" : [ "name" ]
        },
        "org.apache.camel.model.RouteDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "group" : {
              "type" : "string",
              "title" : "Group",
              "description" : "The group that this route belongs to; could be the name of the RouteBuilder class or be explicitly configured in the XML. May be null."
            },
            "nodePrefixId" : {
              "type" : "string",
              "title" : "Node Prefix Id",
              "description" : "Sets a prefix to use for all node ids (not route id)."
            },
            "routeConfigurationId" : {
              "type" : "string",
              "title" : "Route Configuration Id",
              "description" : "The route configuration id or pattern this route should use for configuration. Multiple id/pattern can be separated by comma."
            },
            "autoStartup" : {
              "type" : "boolean",
              "title" : "Auto Startup",
              "description" : "Whether to auto start this route",
              "default" : true
            },
            "startupOrder" : {
              "type" : "number",
              "title" : "Startup Order",
              "description" : "To configure the ordering of the routes being started"
            },
            "streamCaching" : {
              "type" : "boolean",
              "title" : "Stream Cache",
              "description" : "Whether stream caching is enabled on this route."
            },
            "trace" : {
              "type" : "boolean",
              "title" : "Trace",
              "description" : "Whether tracing is enabled on this route."
            },
            "messageHistory" : {
              "type" : "boolean",
              "title" : "Message History",
              "description" : "Whether message history is enabled on this route."
            },
            "logMask" : {
              "type" : "boolean",
              "title" : "Log Mask",
              "description" : "Whether security mask for Logging is enabled on this route.",
              "default" : false
            },
            "routePolicy" : {
              "type" : "string",
              "title" : "Route Policy",
              "description" : "Reference to custom org.apache.camel.spi.RoutePolicy to use by the route. Multiple policies can be configured by separating values using comma."
            },
            "shutdownRoute" : {
              "type" : "string",
              "description" : "To control how to shutdown the route.",
              "default" : "Default",
              "enum" : [ "Default", "Defer" ],
              "title" : "Shutdown Route"
            },
            "shutdownRunningTask" : {
              "type" : "string",
              "description" : "To control how to shut down the route.",
              "default" : "CompleteCurrentTaskOnly",
              "enum" : [ "CompleteCurrentTaskOnly", "CompleteAllTasks" ],
              "title" : "Shutdown Running Task"
            },
            "precondition" : {
              "type" : "string",
              "title" : "Precondition",
              "description" : "The predicate of the precondition in simple language to evaluate in order to determine if this route should be included or not."
            },
            "inputType" : {
              "$ref" : "#/definitions/org.apache.camel.model.InputTypeDefinition"
            },
            "outputType" : {
              "$ref" : "#/definitions/org.apache.camel.model.OutputTypeDefinition"
            },
            "from" : {
              "$ref" : "#/definitions/org.apache.camel.model.FromDefinition",
              "title" : "From",
              "description" : "From"
            }
          },
          "required" : [ "from" ],
          "definitions" : {
            "org.apache.camel.model.FromDefinition" : {
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "description" : {
                  "type" : "string"
                },
                "id" : {
                  "type" : "string"
                },
                "parameters" : {
                  "type" : "object"
                },
                "steps" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/definitions/org.apache.camel.model.ProcessorDefinition"
                  }
                },
                "uri" : {
                  "type" : "string"
                },
                "variableReceive" : {
                  "type" : "string"
                }
              },
              "required" : [ "steps", "uri" ]
            },
            "org.apache.camel.model.InputTypeDefinition" : {
              "title" : "Input Type",
              "description" : "Set the expected data type of the input message. If the actual message type is different at runtime, camel look for a required Transformer and apply if exists. If validate attribute is true then camel applies Validator as well. Type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} . It's also possible to specify only scheme part, so that it works like a wildcard. If only 'xml' is specified, all the XML message matches. It's handy to add only one transformer/validator for all the transformation from/to XML.",
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "description" : {
                  "type" : "string",
                  "title" : "Description",
                  "description" : "Sets the description of this node"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "urn" : {
                  "type" : "string",
                  "title" : "Urn",
                  "description" : "The input type URN."
                },
                "validate" : {
                  "type" : "boolean",
                  "title" : "Validate",
                  "description" : "Whether if validation is required for this input type."
                }
              },
              "required" : [ "urn" ]
            },
            "org.apache.camel.model.OutputTypeDefinition" : {
              "title" : "Output Type",
              "description" : "Set the expected data type of the output message. If the actual message type is different at runtime, camel look for a required Transformer and apply if exists. If validate attribute is true then camel applies Validator as well. Type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} . It's also possible to specify only scheme part, so that it works like a wildcard. If only 'xml' is specified, all the XML message matches. It's handy to add only one transformer/validator for all the XML-Java transformation.",
              "type" : "object",
              "additionalProperties" : false,
              "properties" : {
                "description" : {
                  "type" : "string",
                  "title" : "Description",
                  "description" : "Sets the description of this node"
                },
                "id" : {
                  "type" : "string",
                  "title" : "Id",
                  "description" : "Sets the id of this node"
                },
                "urn" : {
                  "type" : "string",
                  "title" : "Urn",
                  "description" : "Set output type URN."
                },
                "validate" : {
                  "type" : "boolean",
                  "title" : "Validate",
                  "description" : "Whether if validation is required for this output type."
                }
              },
              "required" : [ "urn" ]
            }
          }
        },
        "org.apache.camel.model.PropertyDefinition" : {
          "title" : "Property",
          "description" : "A key value pair where the value is a literal value",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "The name of the property"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "The property value."
            }
          },
          "required" : [ "key", "value" ]
        },
        "org.apache.camel.model.InputTypeDefinition" : {
          "title" : "Input Type",
          "description" : "Set the expected data type of the input message. If the actual message type is different at runtime, camel look for a required Transformer and apply if exists. If validate attribute is true then camel applies Validator as well. Type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} . It's also possible to specify only scheme part, so that it works like a wildcard. If only 'xml' is specified, all the XML message matches. It's handy to add only one transformer/validator for all the transformation from/to XML.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "urn" : {
              "type" : "string",
              "title" : "Urn",
              "description" : "The input type URN."
            },
            "validate" : {
              "type" : "boolean",
              "title" : "Validate",
              "description" : "Whether if validation is required for this input type."
            }
          },
          "required" : [ "urn" ]
        },
        "org.apache.camel.model.OutputTypeDefinition" : {
          "title" : "Output Type",
          "description" : "Set the expected data type of the output message. If the actual message type is different at runtime, camel look for a required Transformer and apply if exists. If validate attribute is true then camel applies Validator as well. Type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} . It's also possible to specify only scheme part, so that it works like a wildcard. If only 'xml' is specified, all the XML message matches. It's handy to add only one transformer/validator for all the XML-Java transformation.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "urn" : {
              "type" : "string",
              "title" : "Urn",
              "description" : "Set output type URN."
            },
            "validate" : {
              "type" : "boolean",
              "title" : "Validate",
              "description" : "Whether if validation is required for this output type."
            }
          },
          "required" : [ "urn" ]
        }
      }
    }
  },
  "templatedRoute" : {
    "model" : {
      "kind" : "model",
      "name" : "templatedRoute",
      "title" : "Templated Route",
      "description" : "Defines a templated route (a route built from a route template)",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.TemplatedRouteDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "routeTemplateRef" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Route Template Ref",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of the route template to use to build the route."
      },
      "routeId" : {
        "index" : 1,
        "kind" : "attribute",
        "displayName" : "Route Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of the route built from the route template."
      },
      "prefixId" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Prefix Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets a prefix to use for all node ids (not route id)."
      },
      "parameter" : {
        "index" : 3,
        "kind" : "element",
        "displayName" : "Parameter",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.TemplatedRouteParameterDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Adds an input parameter of the template to build the route"
      },
      "beans" : {
        "index" : 4,
        "kind" : "element",
        "displayName" : "Bean",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.TemplatedRouteBeanDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Adds a local bean as input of the template to build the route"
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "routeTemplateRef" : {
          "type" : "string",
          "title" : "Route Template Ref",
          "description" : "Sets the id of the route template to use to build the route."
        },
        "routeId" : {
          "type" : "string",
          "title" : "Route Id",
          "description" : "Sets the id of the route built from the route template."
        },
        "prefixId" : {
          "type" : "string",
          "title" : "Prefix Id",
          "description" : "Sets a prefix to use for all node ids (not route id)."
        },
        "beans" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.TemplatedRouteBeanDefinition"
          },
          "title" : "Bean",
          "description" : "Adds a local bean as input of the template to build the route"
        },
        "parameters" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.TemplatedRouteParameterDefinition"
          },
          "title" : "Parameters",
          "description" : "URI parameters"
        }
      },
      "required" : [ "routeTemplateRef" ],
      "definitions" : {
        "org.apache.camel.model.TemplatedRouteBeanDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "name" : {
              "type" : "string"
            },
            "properties" : {
              "type" : "object"
            },
            "property" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
              }
            },
            "script" : {
              "type" : "string"
            },
            "scriptLanguage" : {
              "type" : "string"
            },
            "type" : {
              "type" : "string"
            }
          },
          "required" : [ "name", "type" ]
        },
        "org.apache.camel.model.TemplatedRouteParameterDefinition" : {
          "title" : "Templated Route Parameter",
          "description" : "An input parameter of a route template.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "name" : {
              "type" : "string",
              "title" : "Name",
              "description" : "The name of the parameter"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "The value of the parameter."
            }
          },
          "required" : [ "name", "value" ]
        },
        "org.apache.camel.model.PropertyDefinition" : {
          "title" : "Property",
          "description" : "A key value pair where the value is a literal value",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "The name of the property"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "The property value."
            }
          },
          "required" : [ "key", "value" ]
        }
      }
    }
  },
  "restConfiguration" : {
    "model" : {
      "kind" : "model",
      "name" : "restConfiguration",
      "title" : "Rest Configuration",
      "description" : "To configure rest",
      "deprecated" : false,
      "label" : "rest",
      "javaType" : "org.apache.camel.model.rest.RestConfigurationDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "component" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Component",
        "required" : false,
        "type" : "enum",
        "javaType" : "java.lang.String",
        "enum" : [ "platform-http", "servlet", "jetty", "undertow", "netty-http", "coap" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The Camel Rest component to use for the REST transport (consumer), such as netty-http, 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."
      },
      "apiComponent" : {
        "index" : 1,
        "kind" : "attribute",
        "displayName" : "Api Component",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "enum",
        "javaType" : "java.lang.String",
        "enum" : [ "openapi", "swagger" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The name of the Camel component to use as the REST API. If no API Component has been explicit configured, then Camel will lookup if there is a Camel component responsible for servicing and generating the REST API documentation, or if a org.apache.camel.spi.RestApiProcessorFactory is registered in the registry. If either one is found, then that is being used."
      },
      "producerComponent" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Producer Component",
        "label" : "producer,advanced",
        "required" : false,
        "type" : "enum",
        "javaType" : "java.lang.String",
        "enum" : [ "vertx-http", "http", "undertow", "netty-http" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the name of the Camel component to use as the REST producer"
      },
      "scheme" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Scheme",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The scheme to use for exposing the REST service. Usually http or https is supported. The default value is http"
      },
      "host" : {
        "index" : 4,
        "kind" : "attribute",
        "displayName" : "Host",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The hostname to use for exposing the REST service."
      },
      "port" : {
        "index" : 5,
        "kind" : "attribute",
        "displayName" : "Port",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The port number to use for exposing the REST service. Notice if you use servlet component then the port number configured here does not apply, as the port number in use is the actual port number the servlet component is using. eg if using Apache Tomcat its the tomcat http port, if using Apache Karaf its the HTTP service in Karaf that uses port 8181 by default etc. Though in those situations setting the port number here, allows tooling and JMX to know the port number, so its recommended to set the port number to the number that the servlet engine uses."
      },
      "apiHost" : {
        "index" : 6,
        "kind" : "attribute",
        "displayName" : "Api Host",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To use a specific hostname for the API documentation (such as swagger or openapi) This can be used to override the generated host with this configured hostname"
      },
      "useXForwardHeaders" : {
        "index" : 7,
        "kind" : "attribute",
        "displayName" : "Use XForward Headers",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : true,
        "description" : "Whether to use X-Forward headers for Host and related setting. The default value is true."
      },
      "producerApiDoc" : {
        "index" : 8,
        "kind" : "attribute",
        "displayName" : "Producer Api Doc",
        "label" : "producer,advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document. The location of the api document is loaded from classpath by default, but you can use file: or http: to refer to resources to load from file or http url."
      },
      "contextPath" : {
        "index" : 9,
        "kind" : "attribute",
        "displayName" : "Context Path",
        "label" : "consumer",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets a leading context-path the REST services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path. Or for components such as camel-jetty or camel-netty-http that includes a HTTP server."
      },
      "apiContextPath" : {
        "index" : 10,
        "kind" : "attribute",
        "displayName" : "Api Context Path",
        "label" : "consumer",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets a leading API context-path the REST API services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path."
      },
      "apiContextRouteId" : {
        "index" : 11,
        "kind" : "attribute",
        "displayName" : "Api Context Route Id",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the route id to use for the route that services the REST API. The route will by default use an auto assigned route id."
      },
      "apiVendorExtension" : {
        "index" : 12,
        "kind" : "attribute",
        "displayName" : "Api Vendor Extension",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as vendor extension (eg keys starting with x-) such as route ids, class names etc. Not all 3rd party API gateways and tools supports vendor-extensions when importing your API docs."
      },
      "hostNameResolver" : {
        "index" : 13,
        "kind" : "attribute",
        "displayName" : "Host Name Resolver",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "enum",
        "javaType" : "org.apache.camel.model.rest.RestHostNameResolver",
        "enum" : [ "allLocalIp", "localHostName", "localIp" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "allLocalIp",
        "description" : "If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using."
      },
      "bindingMode" : {
        "index" : 14,
        "kind" : "attribute",
        "displayName" : "Binding Mode",
        "required" : false,
        "type" : "enum",
        "javaType" : "org.apache.camel.model.rest.RestBindingMode",
        "enum" : [ "off", "auto", "json", "xml", "json_xml" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "off",
        "description" : "Sets the binding mode to use. The default value is off"
      },
      "skipBindingOnErrorCode" : {
        "index" : 15,
        "kind" : "attribute",
        "displayName" : "Skip Binding On Error Code",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do."
      },
      "clientRequestValidation" : {
        "index" : 16,
        "kind" : "attribute",
        "displayName" : "Client Request Validation",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error."
      },
      "enableCORS" : {
        "index" : 17,
        "kind" : "attribute",
        "displayName" : "Enable CORS",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to enable CORS headers in the HTTP response. The default value is false."
      },
      "enableNoContentResponse" : {
        "index" : 18,
        "kind" : "attribute",
        "displayName" : "Enable No Content Response",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false."
      },
      "inlineRoutes" : {
        "index" : 19,
        "kind" : "attribute",
        "displayName" : "Inline Routes",
        "label" : "consumer",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Inline routes in rest-dsl which are linked using direct endpoints. By default, each service in Rest DSL is an individual route, meaning that you would have at least two routes per service (rest-dsl, and the route linked from rest-dsl). Enabling this allows Camel to optimize and inline this as a single route, however this requires to use direct endpoints, which must be unique per service. This option is default false."
      },
      "jsonDataFormat" : {
        "index" : 20,
        "kind" : "attribute",
        "displayName" : "Json Data Format",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Name of specific json data format to use. By default jackson will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance."
      },
      "xmlDataFormat" : {
        "index" : 21,
        "kind" : "attribute",
        "displayName" : "Xml Data Format",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Name of specific XML data format to use. By default jaxb will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance."
      },
      "componentProperty" : {
        "index" : 22,
        "kind" : "element",
        "displayName" : "Component Property",
        "label" : "advanced",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.rest.RestPropertyDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Allows to configure as many additional properties for the rest component in use."
      },
      "endpointProperty" : {
        "index" : 23,
        "kind" : "element",
        "displayName" : "Endpoint Property",
        "label" : "advanced",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.rest.RestPropertyDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Allows to configure as many additional properties for the rest endpoint in use."
      },
      "consumerProperty" : {
        "index" : 24,
        "kind" : "element",
        "displayName" : "Consumer Property",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.rest.RestPropertyDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Allows to configure as many additional properties for the rest consumer in use."
      },
      "dataFormatProperty" : {
        "index" : 25,
        "kind" : "element",
        "displayName" : "Data Format Property",
        "label" : "advanced",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.rest.RestPropertyDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Allows to configure as many additional properties for the data formats in use. For example set property prettyPrint to true to have json outputted in pretty mode. The properties can be prefixed to denote the option is only for either JSON or XML and for either the IN or the OUT. The prefixes are: json.in. json.out. xml.in. xml.out. For example a key with value xml.out.mustBeJAXBElement is only for the XML data format for the outgoing. A key without a prefix is a common key for all situations."
      },
      "apiProperty" : {
        "index" : 26,
        "kind" : "element",
        "displayName" : "Api Property",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.rest.RestPropertyDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Allows to configure as many additional properties for the api documentation. For example set property api.title to my cool stuff"
      },
      "corsHeaders" : {
        "index" : 27,
        "kind" : "element",
        "displayName" : "Cors Headers",
        "label" : "consumer,advanced",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.rest.RestPropertyDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Allows to configure custom CORS headers."
      }
    },
    "propertiesSchema" : {
      "title" : "Rest Configuration",
      "description" : "To configure rest",
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "component" : {
          "type" : "string",
          "title" : "Component",
          "description" : "The Camel Rest component to use for the REST transport (consumer), such as netty-http, 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.",
          "enum" : [ "platform-http", "servlet", "jetty", "undertow", "netty-http", "coap" ]
        },
        "apiComponent" : {
          "type" : "string",
          "title" : "Api Component",
          "description" : "The name of the Camel component to use as the REST API. If no API Component has been explicit configured, then Camel will lookup if there is a Camel component responsible for servicing and generating the REST API documentation, or if a org.apache.camel.spi.RestApiProcessorFactory is registered in the registry. If either one is found, then that is being used.",
          "enum" : [ "openapi", "swagger" ]
        },
        "producerComponent" : {
          "type" : "string",
          "title" : "Producer Component",
          "description" : "Sets the name of the Camel component to use as the REST producer",
          "enum" : [ "vertx-http", "http", "undertow", "netty-http" ]
        },
        "scheme" : {
          "type" : "string",
          "title" : "Scheme",
          "description" : "The scheme to use for exposing the REST service. Usually http or https is supported. The default value is http"
        },
        "host" : {
          "type" : "string",
          "title" : "Host",
          "description" : "The hostname to use for exposing the REST service."
        },
        "port" : {
          "type" : "string",
          "title" : "Port",
          "description" : "The port number to use for exposing the REST service. Notice if you use servlet component then the port number configured here does not apply, as the port number in use is the actual port number the servlet component is using. eg if using Apache Tomcat its the tomcat http port, if using Apache Karaf its the HTTP service in Karaf that uses port 8181 by default etc. Though in those situations setting the port number here, allows tooling and JMX to know the port number, so its recommended to set the port number to the number that the servlet engine uses."
        },
        "apiHost" : {
          "type" : "string",
          "title" : "Api Host",
          "description" : "To use a specific hostname for the API documentation (such as swagger or openapi) This can be used to override the generated host with this configured hostname"
        },
        "useXForwardHeaders" : {
          "type" : "boolean",
          "title" : "Use XForward Headers",
          "description" : "Whether to use X-Forward headers for Host and related setting. The default value is true.",
          "default" : true
        },
        "producerApiDoc" : {
          "type" : "string",
          "title" : "Producer Api Doc",
          "description" : "Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document. The location of the api document is loaded from classpath by default, but you can use file: or http: to refer to resources to load from file or http url."
        },
        "contextPath" : {
          "type" : "string",
          "title" : "Context Path",
          "description" : "Sets a leading context-path the REST services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path. Or for components such as camel-jetty or camel-netty-http that includes a HTTP server."
        },
        "apiContextPath" : {
          "type" : "string",
          "title" : "Api Context Path",
          "description" : "Sets a leading API context-path the REST API services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path."
        },
        "apiContextRouteId" : {
          "type" : "string",
          "title" : "Api Context Route Id",
          "description" : "Sets the route id to use for the route that services the REST API. The route will by default use an auto assigned route id."
        },
        "apiVendorExtension" : {
          "type" : "boolean",
          "title" : "Api Vendor Extension",
          "description" : "Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as vendor extension (eg keys starting with x-) such as route ids, class names etc. Not all 3rd party API gateways and tools supports vendor-extensions when importing your API docs.",
          "default" : false
        },
        "hostNameResolver" : {
          "type" : "string",
          "title" : "Host Name Resolver",
          "description" : "If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using.",
          "default" : "allLocalIp",
          "enum" : [ "allLocalIp", "localHostName", "localIp" ]
        },
        "bindingMode" : {
          "type" : "string",
          "title" : "Binding Mode",
          "description" : "Sets the binding mode to use. The default value is off",
          "default" : "off",
          "enum" : [ "auto", "json", "json_xml", "off", "xml" ]
        },
        "skipBindingOnErrorCode" : {
          "type" : "boolean",
          "title" : "Skip Binding On Error Code",
          "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do.",
          "default" : false
        },
        "clientRequestValidation" : {
          "type" : "boolean",
          "title" : "Client Request Validation",
          "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error.",
          "default" : false
        },
        "enableCORS" : {
          "type" : "boolean",
          "title" : "Enable CORS",
          "description" : "Whether to enable CORS headers in the HTTP response. The default value is false.",
          "default" : false
        },
        "enableNoContentResponse" : {
          "type" : "boolean",
          "title" : "Enable No Content Response",
          "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false.",
          "default" : false
        },
        "inlineRoutes" : {
          "type" : "boolean",
          "title" : "Inline Routes",
          "description" : "Inline routes in rest-dsl which are linked using direct endpoints. By default, each service in Rest DSL is an individual route, meaning that you would have at least two routes per service (rest-dsl, and the route linked from rest-dsl). Enabling this allows Camel to optimize and inline this as a single route, however this requires to use direct endpoints, which must be unique per service. This option is default false.",
          "default" : false
        },
        "jsonDataFormat" : {
          "type" : "string",
          "title" : "Json Data Format",
          "description" : "Name of specific json data format to use. By default jackson will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance."
        },
        "xmlDataFormat" : {
          "type" : "string",
          "title" : "Xml Data Format",
          "description" : "Name of specific XML data format to use. By default jaxb will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance."
        },
        "componentProperty" : {
          "type" : "array",
          "title" : "Component Property",
          "description" : "Allows to configure as many additional properties for the rest component in use.",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
          }
        },
        "endpointProperty" : {
          "type" : "array",
          "title" : "Endpoint Property",
          "description" : "Allows to configure as many additional properties for the rest endpoint in use.",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
          }
        },
        "consumerProperty" : {
          "type" : "array",
          "title" : "Consumer Property",
          "description" : "Allows to configure as many additional properties for the rest consumer in use.",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
          }
        },
        "dataFormatProperty" : {
          "type" : "array",
          "title" : "Data Format Property",
          "description" : "Allows to configure as many additional properties for the data formats in use. For example set property prettyPrint to true to have json outputted in pretty mode. The properties can be prefixed to denote the option is only for either JSON or XML and for either the IN or the OUT. The prefixes are: json.in. json.out. xml.in. xml.out. For example a key with value xml.out.mustBeJAXBElement is only for the XML data format for the outgoing. A key without a prefix is a common key for all situations.",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
          }
        },
        "apiProperty" : {
          "type" : "array",
          "title" : "Api Property",
          "description" : "Allows to configure as many additional properties for the api documentation. For example set property api.title to my cool stuff",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
          }
        },
        "corsHeaders" : {
          "type" : "array",
          "title" : "Cors Headers",
          "description" : "Allows to configure custom CORS headers.",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
          }
        }
      },
      "definitions" : {
        "org.apache.camel.model.rest.RestPropertyDefinition" : {
          "title" : "Rest Property",
          "description" : "A key value pair",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Property key"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "Property value"
            }
          },
          "required" : [ "key", "value" ]
        }
      }
    }
  },
  "rest" : {
    "model" : {
      "kind" : "model",
      "name" : "rest",
      "title" : "Rest",
      "description" : "Defines a rest service using the rest-dsl",
      "deprecated" : false,
      "label" : "rest",
      "javaType" : "org.apache.camel.model.rest.RestDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : true
    },
    "properties" : {
      "id" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Id",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the id of this node"
      },
      "description" : {
        "index" : 1,
        "kind" : "element",
        "displayName" : "Description",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the description of this node"
      },
      "disabled" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Disabled",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime."
      },
      "path" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Path",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Path of the rest service, such as /foo"
      },
      "consumes" : {
        "index" : 4,
        "kind" : "attribute",
        "displayName" : "Consumes",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level"
      },
      "produces" : {
        "index" : 5,
        "kind" : "attribute",
        "displayName" : "Produces",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level"
      },
      "bindingMode" : {
        "index" : 6,
        "kind" : "attribute",
        "displayName" : "Binding Mode",
        "required" : false,
        "type" : "enum",
        "javaType" : "java.lang.String",
        "enum" : [ "off", "auto", "json", "xml", "json_xml" ],
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "off",
        "description" : "Sets the binding mode to use. This option will override what may be configured on a parent level The default value is auto"
      },
      "skipBindingOnErrorCode" : {
        "index" : 7,
        "kind" : "attribute",
        "displayName" : "Skip Binding On Error Code",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level"
      },
      "clientRequestValidation" : {
        "index" : 8,
        "kind" : "attribute",
        "displayName" : "Client Request Validation",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error."
      },
      "enableCORS" : {
        "index" : 9,
        "kind" : "attribute",
        "displayName" : "Enable CORS",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false."
      },
      "enableNoContentResponse" : {
        "index" : 10,
        "kind" : "attribute",
        "displayName" : "Enable No Content Response",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : false,
        "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false."
      },
      "apiDocs" : {
        "index" : 11,
        "kind" : "attribute",
        "displayName" : "Api Docs",
        "label" : "advanced",
        "required" : false,
        "type" : "boolean",
        "javaType" : "java.lang.Boolean",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : true,
        "description" : "Whether to include or exclude this rest operation in API documentation. This option will override what may be configured on a parent level. The default value is true."
      },
      "tag" : {
        "index" : 12,
        "kind" : "attribute",
        "displayName" : "Tag",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "To configure a special tag for the operations within this rest definition."
      },
      "securityDefinitions" : {
        "index" : 13,
        "kind" : "element",
        "displayName" : "Security Definitions",
        "label" : "security",
        "required" : false,
        "type" : "object",
        "javaType" : "org.apache.camel.model.rest.RestSecuritiesDefinition",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the security definitions such as Basic, OAuth2 etc."
      },
      "securityRequirements" : {
        "index" : 14,
        "kind" : "element",
        "displayName" : "Security Requirements",
        "label" : "security",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.rest.SecurityDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Sets the security requirement(s) for all endpoints."
      }
    },
    "propertiesSchema" : {
      "title" : "Rest",
      "description" : "Defines a rest service using the rest-dsl",
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "id" : {
          "type" : "string",
          "title" : "Id",
          "description" : "Sets the id of this node"
        },
        "description" : {
          "type" : "string",
          "title" : "Description",
          "description" : "Sets the description of this node"
        },
        "disabled" : {
          "type" : "boolean",
          "title" : "Disabled",
          "description" : "Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime.",
          "default" : false
        },
        "path" : {
          "type" : "string",
          "title" : "Path",
          "description" : "Path of the rest service, such as /foo"
        },
        "consumes" : {
          "type" : "string",
          "title" : "Consumes",
          "description" : "To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level"
        },
        "produces" : {
          "type" : "string",
          "title" : "Produces",
          "description" : "To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level"
        },
        "bindingMode" : {
          "type" : "string",
          "title" : "Binding Mode",
          "description" : "Sets the binding mode to use. This option will override what may be configured on a parent level The default value is auto",
          "default" : "off",
          "enum" : [ "off", "auto", "json", "xml", "json_xml" ]
        },
        "skipBindingOnErrorCode" : {
          "type" : "boolean",
          "title" : "Skip Binding On Error Code",
          "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level",
          "default" : false
        },
        "clientRequestValidation" : {
          "type" : "boolean",
          "title" : "Client Request Validation",
          "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error.",
          "default" : false
        },
        "enableCORS" : {
          "type" : "boolean",
          "title" : "Enable CORS",
          "description" : "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false.",
          "default" : false
        },
        "enableNoContentResponse" : {
          "type" : "boolean",
          "title" : "Enable No Content Response",
          "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false.",
          "default" : false
        },
        "apiDocs" : {
          "type" : "boolean",
          "title" : "Api Docs",
          "description" : "Whether to include or exclude this rest operation in API documentation. This option will override what may be configured on a parent level. The default value is true.",
          "default" : true
        },
        "tag" : {
          "type" : "string",
          "title" : "Tag",
          "description" : "To configure a special tag for the operations within this rest definition."
        },
        "securityDefinitions" : {
          "title" : "Security Definitions",
          "description" : "Sets the security definitions such as Basic, OAuth2 etc.",
          "$ref" : "#/definitions/org.apache.camel.model.rest.RestSecuritiesDefinition"
        },
        "securityRequirements" : {
          "type" : "array",
          "title" : "Security Requirements",
          "description" : "Sets the security requirement(s) for all endpoints.",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.SecurityDefinition"
          }
        },
        "delete" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.DeleteDefinition"
          }
        },
        "get" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.GetDefinition"
          }
        },
        "head" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.HeadDefinition"
          }
        },
        "patch" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.PatchDefinition"
          }
        },
        "post" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.PostDefinition"
          }
        },
        "put" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.rest.PutDefinition"
          }
        }
      },
      "definitions" : {
        "org.apache.camel.model.rest.DeleteDefinition" : {
          "title" : "Delete",
          "description" : "Rest DELETE command",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "apiDocs" : {
              "type" : "boolean",
              "title" : "Api Docs",
              "description" : "Whether to include or exclude this rest operation in API documentation. The default value is true."
            },
            "bindingMode" : {
              "type" : "string",
              "title" : "Binding Mode",
              "description" : "Sets the binding mode to use. This option will override what may be configured on a parent level The default value is off",
              "default" : "off",
              "enum" : [ "off", "auto", "json", "xml", "json_xml" ]
            },
            "clientRequestValidation" : {
              "type" : "boolean",
              "title" : "Client Request Validation",
              "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error."
            },
            "consumes" : {
              "type" : "string",
              "title" : "Consumes",
              "description" : "To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level"
            },
            "deprecated" : {
              "type" : "boolean",
              "title" : "Deprecated",
              "description" : "Marks this rest operation as deprecated in OpenApi documentation."
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime."
            },
            "enableCORS" : {
              "type" : "boolean",
              "title" : "Enable CORS",
              "description" : "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false."
            },
            "enableNoContentResponse" : {
              "type" : "boolean",
              "title" : "Enable No Content Response",
              "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "outType" : {
              "type" : "string",
              "title" : "Out Type",
              "description" : "Sets the class name to use for binding from POJO to output for the outgoing data This option will override what may be configured on a parent level The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            },
            "param" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ParamDefinition"
              }
            },
            "path" : {
              "type" : "string",
              "title" : "Path",
              "description" : "The path mapping URIs of this REST operation such as /{id}."
            },
            "produces" : {
              "type" : "string",
              "title" : "Produces",
              "description" : "To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level"
            },
            "responseMessage" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ResponseMessageDefinition"
              }
            },
            "routeId" : {
              "type" : "string",
              "title" : "Route Id",
              "description" : "Sets the id of the route"
            },
            "security" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.SecurityDefinition"
              }
            },
            "skipBindingOnErrorCode" : {
              "type" : "boolean",
              "title" : "Skip Binding On Error Code",
              "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level"
            },
            "to" : {
              "title" : "To",
              "description" : "The Camel endpoint this REST service will call, such as a direct endpoint to link to an existing route that handles this REST call.",
              "$ref" : "#/definitions/org.apache.camel.model.ToDefinition"
            },
            "type" : {
              "type" : "string",
              "title" : "Type",
              "description" : "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            }
          }
        },
        "org.apache.camel.model.rest.GetDefinition" : {
          "title" : "Get",
          "description" : "Rest GET command",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "apiDocs" : {
              "type" : "boolean",
              "title" : "Api Docs",
              "description" : "Whether to include or exclude this rest operation in API documentation. The default value is true."
            },
            "bindingMode" : {
              "type" : "string",
              "title" : "Binding Mode",
              "description" : "Sets the binding mode to use. This option will override what may be configured on a parent level The default value is off",
              "default" : "off",
              "enum" : [ "off", "auto", "json", "xml", "json_xml" ]
            },
            "clientRequestValidation" : {
              "type" : "boolean",
              "title" : "Client Request Validation",
              "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error."
            },
            "consumes" : {
              "type" : "string",
              "title" : "Consumes",
              "description" : "To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level"
            },
            "deprecated" : {
              "type" : "boolean",
              "title" : "Deprecated",
              "description" : "Marks this rest operation as deprecated in OpenApi documentation."
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime."
            },
            "enableCORS" : {
              "type" : "boolean",
              "title" : "Enable CORS",
              "description" : "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false."
            },
            "enableNoContentResponse" : {
              "type" : "boolean",
              "title" : "Enable No Content Response",
              "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "outType" : {
              "type" : "string",
              "title" : "Out Type",
              "description" : "Sets the class name to use for binding from POJO to output for the outgoing data This option will override what may be configured on a parent level The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            },
            "param" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ParamDefinition"
              }
            },
            "path" : {
              "type" : "string",
              "title" : "Path",
              "description" : "The path mapping URIs of this REST operation such as /{id}."
            },
            "produces" : {
              "type" : "string",
              "title" : "Produces",
              "description" : "To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level"
            },
            "responseMessage" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ResponseMessageDefinition"
              }
            },
            "routeId" : {
              "type" : "string",
              "title" : "Route Id",
              "description" : "Sets the id of the route"
            },
            "security" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.SecurityDefinition"
              }
            },
            "skipBindingOnErrorCode" : {
              "type" : "boolean",
              "title" : "Skip Binding On Error Code",
              "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level"
            },
            "to" : {
              "title" : "To",
              "description" : "The Camel endpoint this REST service will call, such as a direct endpoint to link to an existing route that handles this REST call.",
              "$ref" : "#/definitions/org.apache.camel.model.ToDefinition"
            },
            "type" : {
              "type" : "string",
              "title" : "Type",
              "description" : "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            }
          }
        },
        "org.apache.camel.model.rest.HeadDefinition" : {
          "title" : "Head",
          "description" : "Rest HEAD command",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "apiDocs" : {
              "type" : "boolean",
              "title" : "Api Docs",
              "description" : "Whether to include or exclude this rest operation in API documentation. The default value is true."
            },
            "bindingMode" : {
              "type" : "string",
              "title" : "Binding Mode",
              "description" : "Sets the binding mode to use. This option will override what may be configured on a parent level The default value is off",
              "default" : "off",
              "enum" : [ "off", "auto", "json", "xml", "json_xml" ]
            },
            "clientRequestValidation" : {
              "type" : "boolean",
              "title" : "Client Request Validation",
              "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error."
            },
            "consumes" : {
              "type" : "string",
              "title" : "Consumes",
              "description" : "To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level"
            },
            "deprecated" : {
              "type" : "boolean",
              "title" : "Deprecated",
              "description" : "Marks this rest operation as deprecated in OpenApi documentation."
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime."
            },
            "enableCORS" : {
              "type" : "boolean",
              "title" : "Enable CORS",
              "description" : "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false."
            },
            "enableNoContentResponse" : {
              "type" : "boolean",
              "title" : "Enable No Content Response",
              "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "outType" : {
              "type" : "string",
              "title" : "Out Type",
              "description" : "Sets the class name to use for binding from POJO to output for the outgoing data This option will override what may be configured on a parent level The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            },
            "param" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ParamDefinition"
              }
            },
            "path" : {
              "type" : "string",
              "title" : "Path",
              "description" : "The path mapping URIs of this REST operation such as /{id}."
            },
            "produces" : {
              "type" : "string",
              "title" : "Produces",
              "description" : "To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level"
            },
            "responseMessage" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ResponseMessageDefinition"
              }
            },
            "routeId" : {
              "type" : "string",
              "title" : "Route Id",
              "description" : "Sets the id of the route"
            },
            "security" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.SecurityDefinition"
              }
            },
            "skipBindingOnErrorCode" : {
              "type" : "boolean",
              "title" : "Skip Binding On Error Code",
              "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level"
            },
            "to" : {
              "title" : "To",
              "description" : "The Camel endpoint this REST service will call, such as a direct endpoint to link to an existing route that handles this REST call.",
              "$ref" : "#/definitions/org.apache.camel.model.ToDefinition"
            },
            "type" : {
              "type" : "string",
              "title" : "Type",
              "description" : "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            }
          }
        },
        "org.apache.camel.model.rest.PatchDefinition" : {
          "title" : "Patch",
          "description" : "Rest PATCH command",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "apiDocs" : {
              "type" : "boolean",
              "title" : "Api Docs",
              "description" : "Whether to include or exclude this rest operation in API documentation. The default value is true."
            },
            "bindingMode" : {
              "type" : "string",
              "title" : "Binding Mode",
              "description" : "Sets the binding mode to use. This option will override what may be configured on a parent level The default value is off",
              "default" : "off",
              "enum" : [ "off", "auto", "json", "xml", "json_xml" ]
            },
            "clientRequestValidation" : {
              "type" : "boolean",
              "title" : "Client Request Validation",
              "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error."
            },
            "consumes" : {
              "type" : "string",
              "title" : "Consumes",
              "description" : "To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level"
            },
            "deprecated" : {
              "type" : "boolean",
              "title" : "Deprecated",
              "description" : "Marks this rest operation as deprecated in OpenApi documentation."
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime."
            },
            "enableCORS" : {
              "type" : "boolean",
              "title" : "Enable CORS",
              "description" : "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false."
            },
            "enableNoContentResponse" : {
              "type" : "boolean",
              "title" : "Enable No Content Response",
              "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "outType" : {
              "type" : "string",
              "title" : "Out Type",
              "description" : "Sets the class name to use for binding from POJO to output for the outgoing data This option will override what may be configured on a parent level The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            },
            "param" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ParamDefinition"
              }
            },
            "path" : {
              "type" : "string",
              "title" : "Path",
              "description" : "The path mapping URIs of this REST operation such as /{id}."
            },
            "produces" : {
              "type" : "string",
              "title" : "Produces",
              "description" : "To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level"
            },
            "responseMessage" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ResponseMessageDefinition"
              }
            },
            "routeId" : {
              "type" : "string",
              "title" : "Route Id",
              "description" : "Sets the id of the route"
            },
            "security" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.SecurityDefinition"
              }
            },
            "skipBindingOnErrorCode" : {
              "type" : "boolean",
              "title" : "Skip Binding On Error Code",
              "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level"
            },
            "to" : {
              "title" : "To",
              "description" : "The Camel endpoint this REST service will call, such as a direct endpoint to link to an existing route that handles this REST call.",
              "$ref" : "#/definitions/org.apache.camel.model.ToDefinition"
            },
            "type" : {
              "type" : "string",
              "title" : "Type",
              "description" : "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            }
          }
        },
        "org.apache.camel.model.rest.PostDefinition" : {
          "title" : "Post",
          "description" : "Rest POST command",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "apiDocs" : {
              "type" : "boolean",
              "title" : "Api Docs",
              "description" : "Whether to include or exclude this rest operation in API documentation. The default value is true."
            },
            "bindingMode" : {
              "type" : "string",
              "title" : "Binding Mode",
              "description" : "Sets the binding mode to use. This option will override what may be configured on a parent level The default value is off",
              "default" : "off",
              "enum" : [ "off", "auto", "json", "xml", "json_xml" ]
            },
            "clientRequestValidation" : {
              "type" : "boolean",
              "title" : "Client Request Validation",
              "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error."
            },
            "consumes" : {
              "type" : "string",
              "title" : "Consumes",
              "description" : "To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level"
            },
            "deprecated" : {
              "type" : "boolean",
              "title" : "Deprecated",
              "description" : "Marks this rest operation as deprecated in OpenApi documentation."
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime."
            },
            "enableCORS" : {
              "type" : "boolean",
              "title" : "Enable CORS",
              "description" : "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false."
            },
            "enableNoContentResponse" : {
              "type" : "boolean",
              "title" : "Enable No Content Response",
              "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "outType" : {
              "type" : "string",
              "title" : "Out Type",
              "description" : "Sets the class name to use for binding from POJO to output for the outgoing data This option will override what may be configured on a parent level The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            },
            "param" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ParamDefinition"
              }
            },
            "path" : {
              "type" : "string",
              "title" : "Path",
              "description" : "The path mapping URIs of this REST operation such as /{id}."
            },
            "produces" : {
              "type" : "string",
              "title" : "Produces",
              "description" : "To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level"
            },
            "responseMessage" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ResponseMessageDefinition"
              }
            },
            "routeId" : {
              "type" : "string",
              "title" : "Route Id",
              "description" : "Sets the id of the route"
            },
            "security" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.SecurityDefinition"
              }
            },
            "skipBindingOnErrorCode" : {
              "type" : "boolean",
              "title" : "Skip Binding On Error Code",
              "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level"
            },
            "to" : {
              "title" : "To",
              "description" : "The Camel endpoint this REST service will call, such as a direct endpoint to link to an existing route that handles this REST call.",
              "$ref" : "#/definitions/org.apache.camel.model.ToDefinition"
            },
            "type" : {
              "type" : "string",
              "title" : "Type",
              "description" : "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            }
          }
        },
        "org.apache.camel.model.rest.PutDefinition" : {
          "title" : "Put",
          "description" : "Rest PUT command",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "apiDocs" : {
              "type" : "boolean",
              "title" : "Api Docs",
              "description" : "Whether to include or exclude this rest operation in API documentation. The default value is true."
            },
            "bindingMode" : {
              "type" : "string",
              "title" : "Binding Mode",
              "description" : "Sets the binding mode to use. This option will override what may be configured on a parent level The default value is off",
              "default" : "off",
              "enum" : [ "off", "auto", "json", "xml", "json_xml" ]
            },
            "clientRequestValidation" : {
              "type" : "boolean",
              "title" : "Client Request Validation",
              "description" : "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error."
            },
            "consumes" : {
              "type" : "string",
              "title" : "Consumes",
              "description" : "To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level"
            },
            "deprecated" : {
              "type" : "boolean",
              "title" : "Deprecated",
              "description" : "Marks this rest operation as deprecated in OpenApi documentation."
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime."
            },
            "enableCORS" : {
              "type" : "boolean",
              "title" : "Enable CORS",
              "description" : "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false."
            },
            "enableNoContentResponse" : {
              "type" : "boolean",
              "title" : "Enable No Content Response",
              "description" : "Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "outType" : {
              "type" : "string",
              "title" : "Out Type",
              "description" : "Sets the class name to use for binding from POJO to output for the outgoing data This option will override what may be configured on a parent level The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            },
            "param" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ParamDefinition"
              }
            },
            "path" : {
              "type" : "string",
              "title" : "Path",
              "description" : "The path mapping URIs of this REST operation such as /{id}."
            },
            "produces" : {
              "type" : "string",
              "title" : "Produces",
              "description" : "To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level"
            },
            "responseMessage" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ResponseMessageDefinition"
              }
            },
            "routeId" : {
              "type" : "string",
              "title" : "Route Id",
              "description" : "Sets the id of the route"
            },
            "security" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.SecurityDefinition"
              }
            },
            "skipBindingOnErrorCode" : {
              "type" : "boolean",
              "title" : "Skip Binding On Error Code",
              "description" : "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may be configured on a parent level"
            },
            "to" : {
              "title" : "To",
              "description" : "The Camel endpoint this REST service will call, such as a direct endpoint to link to an existing route that handles this REST call.",
              "$ref" : "#/definitions/org.apache.camel.model.ToDefinition"
            },
            "type" : {
              "type" : "string",
              "title" : "Type",
              "description" : "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type."
            }
          }
        },
        "org.apache.camel.model.rest.RestSecuritiesDefinition" : {
          "title" : "Rest Security Definitions",
          "description" : "To configure rest security definitions.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "apiKey" : {
              "$ref" : "#/definitions/org.apache.camel.model.rest.ApiKeyDefinition"
            },
            "basicAuth" : {
              "$ref" : "#/definitions/org.apache.camel.model.rest.BasicAuthDefinition"
            },
            "bearer" : {
              "$ref" : "#/definitions/org.apache.camel.model.rest.BearerTokenDefinition"
            },
            "mutualTLS" : {
              "$ref" : "#/definitions/org.apache.camel.model.rest.MutualTLSDefinition"
            },
            "oauth2" : {
              "$ref" : "#/definitions/org.apache.camel.model.rest.OAuth2Definition"
            },
            "openIdConnect" : {
              "$ref" : "#/definitions/org.apache.camel.model.rest.OpenIdConnectDefinition"
            }
          }
        },
        "org.apache.camel.model.rest.SecurityDefinition" : {
          "title" : "Rest Security",
          "description" : "Rest security definition",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Key used to refer to this security definition"
            },
            "scopes" : {
              "type" : "string",
              "title" : "Scopes",
              "description" : "The scopes to allow (separate multiple scopes by comma)"
            }
          },
          "required" : [ "key" ]
        },
        "org.apache.camel.model.rest.ParamDefinition" : {
          "title" : "Param",
          "description" : "To specify the rest operation parameters.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "allowableValues" : {
              "type" : "array",
              "title" : "Allowable Values",
              "description" : "Sets the parameter list of allowable values (enum).",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.ValueDefinition"
              }
            },
            "arrayType" : {
              "type" : "string",
              "title" : "Array Type",
              "description" : "Sets the parameter array type. Required if data type is array. Describes the type of items in the array.",
              "default" : "string"
            },
            "collectionFormat" : {
              "type" : "string",
              "title" : "Collection Format",
              "description" : "Sets the parameter collection format.",
              "default" : "csv",
              "enum" : [ "csv", "multi", "pipes", "ssv", "tsv" ]
            },
            "dataFormat" : {
              "type" : "string",
              "title" : "Data Format",
              "description" : "Sets the parameter data format."
            },
            "dataType" : {
              "type" : "string",
              "title" : "Data Type",
              "description" : "Sets the parameter data type.",
              "default" : "string"
            },
            "defaultValue" : {
              "type" : "string",
              "title" : "Default Value",
              "description" : "Sets the parameter default value."
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the parameter description."
            },
            "examples" : {
              "type" : "array",
              "title" : "Examples",
              "description" : "Sets the parameter examples.",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
              }
            },
            "name" : {
              "type" : "string",
              "title" : "Name",
              "description" : "Sets the parameter name."
            },
            "required" : {
              "type" : "boolean",
              "title" : "Required",
              "description" : "Sets the parameter required flag."
            },
            "type" : {
              "type" : "string",
              "title" : "Type",
              "description" : "Sets the parameter type.",
              "default" : "path",
              "enum" : [ "body", "formData", "header", "path", "query" ]
            }
          },
          "required" : [ "name" ]
        },
        "org.apache.camel.model.rest.ResponseMessageDefinition" : {
          "title" : "Response Message",
          "description" : "To specify the rest operation response messages.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "code" : {
              "type" : "string",
              "title" : "Code",
              "description" : "The response code such as a HTTP status code",
              "default" : "200"
            },
            "examples" : {
              "type" : "array",
              "title" : "Examples",
              "description" : "Examples of response messages",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
              }
            },
            "header" : {
              "type" : "array",
              "title" : "Header",
              "description" : "Adds a response header",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.ResponseHeaderDefinition"
              }
            },
            "message" : {
              "type" : "string",
              "title" : "Message",
              "description" : "The response message (description)"
            },
            "responseModel" : {
              "type" : "string",
              "title" : "Response Model",
              "description" : "The response model"
            }
          },
          "required" : [ "message" ]
        },
        "org.apache.camel.model.ToDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Sets the description of this node"
            },
            "disabled" : {
              "type" : "boolean",
              "title" : "Disabled",
              "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime."
            },
            "id" : {
              "type" : "string",
              "title" : "Id",
              "description" : "Sets the id of this node"
            },
            "parameters" : {
              "type" : "object"
            },
            "pattern" : {
              "type" : "string",
              "title" : "Pattern",
              "description" : "Sets the optional ExchangePattern used to invoke this endpoint",
              "enum" : [ "InOnly", "InOut" ]
            },
            "uri" : {
              "type" : "string",
              "title" : "Uri",
              "description" : "Sets the uri of the endpoint to send to."
            },
            "variableReceive" : {
              "type" : "string",
              "title" : "Variable Receive",
              "description" : "To use a variable to store the received message body (only body, not headers). This is handy for easy access to the received message body via variables. Important: When using receive variable then the received body is stored only in this variable and not on the current org.apache.camel.Message ."
            },
            "variableSend" : {
              "type" : "string",
              "title" : "Variable Send",
              "description" : "To use a variable as the source for the message body to send. This makes it handy to use variables for user data and to easily control what data to use for sending and receiving. Important: When using send variable then the message body is taken from this variable instead of the current Message , however the headers from the Message will still be used as well. In other words, the variable is used instead of the message body, but everything else is as usual."
            }
          },
          "title" : "To",
          "description" : "Sends the message to a static endpoint"
        },
        "org.apache.camel.model.rest.ApiKeyDefinition" : {
          "title" : "Api Key",
          "description" : "Rest security basic auth definition",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "A short description for security scheme."
            },
            "inCookie" : {
              "type" : "boolean",
              "title" : "In Cookie",
              "description" : "To use a cookie as the location of the API key."
            },
            "inHeader" : {
              "type" : "boolean",
              "title" : "In Header",
              "description" : "To use header as the location of the API key."
            },
            "inQuery" : {
              "type" : "boolean",
              "title" : "In Query",
              "description" : "To use query parameter as the location of the API key."
            },
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Key used to refer to this security definition"
            },
            "name" : {
              "type" : "string",
              "title" : "Name",
              "description" : "The name of the header or query parameter to be used."
            }
          },
          "required" : [ "key", "name" ]
        },
        "org.apache.camel.model.rest.BasicAuthDefinition" : {
          "title" : "Basic Auth",
          "description" : "Rest security basic auth definition",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "A short description for security scheme."
            },
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Key used to refer to this security definition"
            }
          },
          "required" : [ "key" ]
        },
        "org.apache.camel.model.rest.BearerTokenDefinition" : {
          "title" : "Bearer Token",
          "description" : "Rest security bearer token authentication definition",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "A short description for security scheme."
            },
            "format" : {
              "type" : "string",
              "title" : "Format",
              "description" : "A hint to the client to identify how the bearer token is formatted."
            },
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Key used to refer to this security definition"
            }
          },
          "required" : [ "key" ]
        },
        "org.apache.camel.model.rest.MutualTLSDefinition" : {
          "title" : "Mutual TLS",
          "description" : "Rest security mutual TLS authentication definition",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "A short description for security scheme."
            },
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Key used to refer to this security definition"
            }
          },
          "required" : [ "key" ]
        },
        "org.apache.camel.model.rest.OAuth2Definition" : {
          "title" : "Oauth2",
          "description" : "Rest security OAuth2 definition",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "authorizationUrl" : {
              "type" : "string",
              "title" : "Authorization Url",
              "description" : "The authorization URL to be used for this flow. This SHOULD be in the form of a URL. Required for implicit and access code flows"
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "A short description for security scheme."
            },
            "flow" : {
              "type" : "string",
              "title" : "Flow",
              "description" : "The flow used by the OAuth2 security scheme. Valid values are implicit, password, application or accessCode.",
              "enum" : [ "implicit", "password", "application", "clientCredentials", "accessCode", "authorizationCode" ]
            },
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Key used to refer to this security definition"
            },
            "refreshUrl" : {
              "type" : "string",
              "title" : "Refresh Url",
              "description" : "The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL."
            },
            "scopes" : {
              "type" : "array",
              "title" : "Scopes",
              "description" : "The available scopes for an OAuth2 security scheme",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.rest.RestPropertyDefinition"
              }
            },
            "tokenUrl" : {
              "type" : "string",
              "title" : "Token Url",
              "description" : "The token URL to be used for this flow. This SHOULD be in the form of a URL. Required for password, application, and access code flows."
            }
          },
          "required" : [ "key" ]
        },
        "org.apache.camel.model.rest.OpenIdConnectDefinition" : {
          "title" : "Open Id Connect",
          "description" : "Rest security OpenID Connect definition",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "A short description for security scheme."
            },
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Key used to refer to this security definition"
            },
            "url" : {
              "type" : "string",
              "title" : "Url",
              "description" : "OpenId Connect URL to discover OAuth2 configuration values."
            }
          },
          "required" : [ "key", "url" ]
        },
        "org.apache.camel.model.ValueDefinition" : {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "Property value"
            }
          },
          "title" : "Value",
          "description" : "A single value"
        },
        "org.apache.camel.model.rest.RestPropertyDefinition" : {
          "title" : "Rest Property",
          "description" : "A key value pair",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "Property key"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "Property value"
            }
          },
          "required" : [ "key", "value" ]
        },
        "org.apache.camel.model.rest.ResponseHeaderDefinition" : {
          "title" : "Response Header",
          "description" : "To specify the rest operation response headers.",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "allowableValues" : {
              "type" : "array",
              "title" : "Allowable Values",
              "description" : "Sets the parameter list of allowable values.",
              "items" : {
                "$ref" : "#/definitions/org.apache.camel.model.ValueDefinition"
              }
            },
            "arrayType" : {
              "type" : "string",
              "title" : "Array Type",
              "description" : "Sets the parameter array type. Required if data type is array. Describes the type of items in the array.",
              "default" : "string"
            },
            "collectionFormat" : {
              "type" : "string",
              "title" : "Collection Format",
              "description" : "Sets the parameter collection format.",
              "default" : "csv",
              "enum" : [ "csv", "multi", "pipes", "ssv", "tsv" ]
            },
            "dataFormat" : {
              "type" : "string",
              "title" : "Data Format",
              "description" : "Sets the parameter data format."
            },
            "dataType" : {
              "type" : "string",
              "title" : "Data Type",
              "description" : "Sets the header data type.",
              "default" : "string"
            },
            "description" : {
              "type" : "string",
              "title" : "Description",
              "description" : "Description of the parameter."
            },
            "example" : {
              "type" : "string",
              "title" : "Example",
              "description" : "Sets the example"
            },
            "name" : {
              "type" : "string",
              "title" : "Name",
              "description" : "Name of the parameter. This option is mandatory."
            }
          },
          "required" : [ "name" ]
        }
      }
    }
  },
  "bean" : {
    "model" : {
      "kind" : "model",
      "name" : "bean",
      "title" : "Bean",
      "description" : "Define custom beans that can be used in your Camel routes and in general.",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.app.RegistryBeanDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "name" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Name",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The name of the bean (bean id)"
      },
      "type" : {
        "index" : 1,
        "kind" : "attribute",
        "displayName" : "Type",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The class name (fully qualified) of the bean"
      },
      "initMethod" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Init Method",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The name of the custom initialization method to invoke after setting bean properties. The method must have no arguments, but may throw any exception."
      },
      "destroyMethod" : {
        "index" : 3,
        "kind" : "attribute",
        "displayName" : "Destroy Method",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The name of the custom destroy method to invoke on bean shutdown, such as when Camel is shutting down. The method must have no arguments, but may throw any exception."
      },
      "factoryMethod" : {
        "index" : 4,
        "kind" : "attribute",
        "displayName" : "Factory Method",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Name of method to invoke when creating the bean via a factory bean."
      },
      "factoryBean" : {
        "index" : 5,
        "kind" : "attribute",
        "displayName" : "Factory Bean",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Name of factory bean (bean id) to use for creating the bean."
      },
      "builderClass" : {
        "index" : 6,
        "kind" : "attribute",
        "displayName" : "Builder Class",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Fully qualified class name of builder class to use for creating and configuring the bean. The builder will use the properties values to configure the bean."
      },
      "builderMethod" : {
        "index" : 7,
        "kind" : "attribute",
        "displayName" : "Builder Method",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "defaultValue" : "build",
        "description" : "Name of method when using builder class. This method is invoked after configuring to create the actual bean. This method is often named build (used by default)."
      },
      "scriptLanguage" : {
        "index" : 8,
        "kind" : "attribute",
        "displayName" : "Script Language",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc."
      },
      "constructors" : {
        "index" : 9,
        "kind" : "element",
        "displayName" : "Constructors",
        "required" : false,
        "type" : "object",
        "javaType" : "java.util.Map<java.lang.Integer, java.lang.Object>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Optional constructor arguments for creating the bean. Arguments correspond to specific index of the constructor argument list, starting from zero."
      },
      "properties" : {
        "index" : 10,
        "kind" : "element",
        "displayName" : "Properties",
        "required" : false,
        "type" : "object",
        "javaType" : "java.util.Map<java.lang.String, java.lang.Object>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Optional properties to set on the created bean."
      },
      "script" : {
        "index" : 11,
        "kind" : "element",
        "displayName" : "Script",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource."
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "builderClass" : {
          "type" : "string",
          "title" : "Builder Class",
          "description" : "Fully qualified class name of builder class to use for creating and configuring the bean. The builder will use the properties values to configure the bean."
        },
        "builderMethod" : {
          "type" : "string",
          "title" : "Builder Method",
          "description" : "Name of method when using builder class. This method is invoked after configuring to create the actual bean. This method is often named build (used by default).",
          "default" : "build"
        },
        "constructors" : {
          "type" : "object",
          "title" : "Constructors",
          "description" : "Optional constructor arguments for creating the bean. Arguments correspond to specific index of the constructor argument list, starting from zero."
        },
        "destroyMethod" : {
          "type" : "string",
          "title" : "Destroy Method",
          "description" : "The name of the custom destroy method to invoke on bean shutdown, such as when Camel is shutting down. The method must have no arguments, but may throw any exception."
        },
        "factoryBean" : {
          "type" : "string",
          "title" : "Factory Bean",
          "description" : "Name of factory bean (bean id) to use for creating the bean."
        },
        "factoryMethod" : {
          "type" : "string",
          "title" : "Factory Method",
          "description" : "Name of method to invoke when creating the bean via a factory bean."
        },
        "initMethod" : {
          "type" : "string",
          "title" : "Init Method",
          "description" : "The name of the custom initialization method to invoke after setting bean properties. The method must have no arguments, but may throw any exception."
        },
        "name" : {
          "type" : "string",
          "title" : "Name",
          "description" : "The name of the bean (bean id)"
        },
        "properties" : {
          "type" : "object",
          "title" : "Properties",
          "description" : "Optional properties to set on the created bean."
        },
        "script" : {
          "type" : "string",
          "title" : "Script",
          "description" : "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource."
        },
        "scriptLanguage" : {
          "type" : "string",
          "title" : "Script Language",
          "description" : "The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc."
        },
        "type" : {
          "type" : "string",
          "title" : "Type",
          "description" : "The class name (fully qualified) of the bean"
        }
      },
      "required" : [ "name", "type" ]
    }
  },
  "routeTemplateBean" : {
    "model" : {
      "kind" : "model",
      "name" : "templateBean",
      "title" : "Template Bean",
      "description" : "A route template bean (local bean)",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.RouteTemplateBeanDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "name" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Name",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Bean name"
      },
      "type" : {
        "index" : 1,
        "kind" : "attribute",
        "displayName" : "Type",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "What type to use for creating the bean (FQN classname). Can be prefixed with: #class or #type #class or #type then the bean is created via the fully qualified classname, such as #class:com.foo.MyBean"
      },
      "scriptLanguage" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Script Language",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc."
      },
      "property" : {
        "index" : 3,
        "kind" : "element",
        "displayName" : "Property",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.PropertyDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Optional properties to set on the created local bean"
      },
      "properties" : {
        "index" : 4,
        "kind" : "element",
        "displayName" : "Properties",
        "required" : false,
        "type" : "object",
        "javaType" : "java.util.Map<java.lang.String, java.lang.Object>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Optional properties to set on the created local bean"
      },
      "script" : {
        "index" : 5,
        "kind" : "element",
        "displayName" : "Script",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource."
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "name" : {
          "type" : "string",
          "title" : "Name",
          "description" : "Bean name"
        },
        "properties" : {
          "type" : "object",
          "title" : "Properties",
          "description" : "Optional properties to set on the created local bean"
        },
        "property" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
          },
          "title" : "Property",
          "description" : "Optional properties to set on the created local bean"
        },
        "script" : {
          "type" : "string",
          "title" : "Script",
          "description" : "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource."
        },
        "scriptLanguage" : {
          "type" : "string",
          "title" : "Script Language",
          "description" : "The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc."
        },
        "type" : {
          "type" : "string",
          "title" : "Type",
          "description" : "What type to use for creating the bean (FQN classname). Can be prefixed with: #class or #type #class or #type then the bean is created via the fully qualified classname, such as #class:com.foo.MyBean"
        }
      },
      "required" : [ "name", "type" ],
      "definitions" : {
        "org.apache.camel.model.PropertyDefinition" : {
          "title" : "Property",
          "description" : "A key value pair where the value is a literal value",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "The name of the property"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "The property value."
            }
          },
          "required" : [ "key", "value" ]
        }
      }
    }
  },
  "templatedRouteBean" : {
    "model" : {
      "kind" : "model",
      "name" : "templatedRouteBean",
      "title" : "Templated Route Bean",
      "description" : "A bean as input of a route template (local bean)",
      "deprecated" : false,
      "label" : "configuration",
      "javaType" : "org.apache.camel.model.TemplatedRouteBeanDefinition",
      "supportLevel" : "Stable",
      "abstract" : false,
      "input" : false,
      "output" : false
    },
    "properties" : {
      "name" : {
        "index" : 0,
        "kind" : "attribute",
        "displayName" : "Name",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Bean name"
      },
      "type" : {
        "index" : 1,
        "kind" : "attribute",
        "displayName" : "Type",
        "required" : true,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "What type to use for creating the bean (FQN classname). Can be prefixed with: #class or #type #class or #type then the bean is created via the fully qualified classname, such as #class:com.foo.MyBean"
      },
      "scriptLanguage" : {
        "index" : 2,
        "kind" : "attribute",
        "displayName" : "Script Language",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc."
      },
      "property" : {
        "index" : 3,
        "kind" : "element",
        "displayName" : "Property",
        "required" : false,
        "type" : "array",
        "javaType" : "java.util.List<org.apache.camel.model.PropertyDefinition>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Optional properties to set on the created local bean"
      },
      "properties" : {
        "index" : 4,
        "kind" : "element",
        "displayName" : "Properties",
        "required" : false,
        "type" : "object",
        "javaType" : "java.util.Map<java.lang.String, java.lang.Object>",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "Optional properties to set on the created local bean"
      },
      "script" : {
        "index" : 5,
        "kind" : "element",
        "displayName" : "Script",
        "label" : "advanced",
        "required" : false,
        "type" : "string",
        "javaType" : "java.lang.String",
        "deprecated" : false,
        "autowired" : false,
        "secret" : false,
        "description" : "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource."
      }
    },
    "propertiesSchema" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "name" : {
          "type" : "string",
          "title" : "Name",
          "description" : "Bean name"
        },
        "properties" : {
          "type" : "object",
          "title" : "Properties",
          "description" : "Optional properties to set on the created local bean"
        },
        "property" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/org.apache.camel.model.PropertyDefinition"
          },
          "title" : "Property",
          "description" : "Optional properties to set on the created local bean"
        },
        "script" : {
          "type" : "string",
          "title" : "Script",
          "description" : "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource."
        },
        "scriptLanguage" : {
          "type" : "string",
          "title" : "Script Language",
          "description" : "The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc."
        },
        "type" : {
          "type" : "string",
          "title" : "Type",
          "description" : "What type to use for creating the bean (FQN classname). Can be prefixed with: #class or #type #class or #type then the bean is created via the fully qualified classname, such as #class:com.foo.MyBean"
        }
      },
      "required" : [ "name", "type" ],
      "definitions" : {
        "org.apache.camel.model.PropertyDefinition" : {
          "title" : "Property",
          "description" : "A key value pair where the value is a literal value",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "key" : {
              "type" : "string",
              "title" : "Key",
              "description" : "The name of the property"
            },
            "value" : {
              "type" : "string",
              "title" : "Value",
              "description" : "The property value."
            }
          },
          "required" : [ "key", "value" ]
        }
      }
    }
  },
  "KameletConfiguration" : {
    "propertiesSchema" : {
      "$schema" : "http://json-schema.org/draft-04/schema#",
      "type" : "object",
      "additionalProperties" : false,
      "description" : "Schema for Kamelet configuration",
      "properties" : {
        "name" : {
          "title" : "Name",
          "description" : "Name of the kamelet",
          "type" : "string"
        },
        "title" : {
          "title" : "Title",
          "description" : "Title of the kamelet",
          "type" : "string"
        },
        "description" : {
          "title" : "Description",
          "description" : "Formal description of the kamelet",
          "type" : "string"
        },
        "type" : {
          "title" : "Kamelet Type",
          "description" : "Select the Kamelet type from the available options",
          "type" : "string",
          "enum" : [ "source", "action", "sink" ]
        },
        "icon" : {
          "title" : "Kamelet Icon",
          "description" : "Choose icon for the kamelet",
          "type" : "string"
        },
        "supportLevel" : {
          "title" : "Support Level",
          "description" : "Support Level of the kamelet",
          "type" : "string"
        },
        "catalogVersion" : {
          "title" : "Catalog Version",
          "description" : "Catalog Version of the kamelet",
          "type" : "string"
        },
        "provider" : {
          "title" : "Provider",
          "description" : "Provider of the kamelet",
          "type" : "string"
        },
        "group" : {
          "title" : "Group",
          "description" : "Group of the kamelet",
          "type" : "string"
        },
        "namespace" : {
          "title" : "Namespace",
          "description" : "Namespace of the kamelet",
          "type" : "string"
        },
        "labels" : {
          "additionalProperties" : {
            "default" : "",
            "type" : "string"
          },
          "title" : "Additional Labels",
          "description" : "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels",
          "type" : "object"
        },
        "annotations" : {
          "additionalProperties" : {
            "default" : "",
            "type" : "string"
          },
          "title" : "Additional Annotations",
          "description" : "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations",
          "type" : "object"
        },
        "kameletProperties" : {
          "title" : "Properties",
          "type" : "array",
          "description" : "Configure properties on the Kamelet",
          "items" : {
            "type" : "object",
            "properties" : {
              "name" : {
                "title" : "Property name",
                "description" : "Name of the property",
                "type" : "string"
              },
              "title" : {
                "title" : "Title",
                "description" : "Display name of the property",
                "type" : "string"
              },
              "description" : {
                "title" : "Description",
                "description" : "Simple text description of the property",
                "type" : "string"
              },
              "type" : {
                "title" : "Property type",
                "description" : "Set the expected type for this property",
                "type" : "string",
                "enum" : [ "string", "number", "boolean" ],
                "default" : "string"
              },
              "default" : {
                "title" : "Default",
                "description" : "Default value for the property",
                "type" : "string"
              },
              "x-descriptors" : {
                "title" : "X-descriptors",
                "description" : "Specific aids for the visual tools",
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            },
            "required" : [ "name", "type" ]
          }
        }
      },
      "required" : [ "name", "type" ]
    }
  }
}