This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch openapi2
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8a5b391679c673f39714ee4e19c44885d54685a9
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Mar 25 06:40:17 2024 +0100

    CAMEL-20557: Rest DSL to use openapi spec directly
---
 .../camel/catalog/components/rest-openapi.json     |  54 ++-
 .../builder/endpoint/StaticEndpointBuilders.java   |  10 +-
 .../dsl/RestOpenApiEndpointBuilderFactory.java     | 534 ++++++++++++++++++---
 .../camel/kotlin/components/RestOpenapiUriDsl.kt   |  86 +++-
 4 files changed, 587 insertions(+), 97 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/rest-openapi.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/rest-openapi.json
index 9242b3b9735..0c3036935d0 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/rest-openapi.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/rest-openapi.json
@@ -18,35 +18,41 @@
     "async": false,
     "api": false,
     "consumerOnly": false,
-    "producerOnly": true,
+    "producerOnly": false,
     "lenientProperties": false,
     "remote": true
   },
   "componentProperties": {
-    "basePath": { "index": 0, "kind": "property", "displayName": "Base Path", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "API basePath, for example \/v2. Default is 
unset, if set overrides the value present in OpenApi specification." },
-    "host": { "index": 1, "kind": "property", "displayName": "Host", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "Scheme hostname and port to direct the HTTP 
requests to in the form of https:\/\/hostname:port. Can be configured at the 
endpoint, component or in the corresponding REST configuration in the Camel 
Context. If you give this component a nam [...]
-    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "requestValidationEnabled": { "index": 3, "kind": "property", 
"displayName": "Request Validation Enabled", "group": "producer", "label": "", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable validation of requests against the configured OpenAPI 
specification" },
-    "specificationUri": { "index": 4, "kind": "property", "displayName": 
"Specification Uri", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.net.URI", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "openapi.json", 
"description": "Path to the OpenApi specification file. The scheme, host base 
path are taken from this specification, but these can be overridden with 
properties on the component or endpoint level. If  [...]
-    "componentName": { "index": 5, "kind": "property", "displayName": 
"Component Name", "group": "producer (advanced)", "label": "producer,advanced", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Name 
of the Camel component that will perform the requests. The component must be 
present in Camel registry and it must implement RestProducerFactory service 
provider interface. If not set CLASSPATH  [...]
-    "consumes": { "index": 6, "kind": "property", "displayName": "Consumes", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "What payload type this 
component capable of consuming. Could be one type, like application\/json or 
multiple types as application\/json, application\/xml; q=0.5 according to the 
RFC7231. This equates to the val [...]
-    "produces": { "index": 7, "kind": "property", "displayName": "Produces", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "What payload type this 
component is producing. For example application\/json according to the RFC7231. 
This equates to the value of Content-Type HTTP header. If set overrides any 
value present in the OpenApi sp [...]
-    "autowiredEnabled": { "index": 8, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching t [...]
-    "requestValidationCustomizer": { "index": 9, "kind": "property", 
"displayName": "Request Validation Customizer", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer",
 "deprecated": false, "autowired": false, "secret": false, "description": "If 
request validation is enabled, this option provides the capability to customize 
the creation of OpenApiInteractionValidator us [...]
-    "sslContextParameters": { "index": 10, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Customize TLS parameters 
used by the component. If not set defaults to the TLS parameters set in the 
Camel context" },
-    "useGlobalSslContextParameters": { "index": 11, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." }
+    "requestValidationEnabled": { "index": 0, "kind": "property", 
"displayName": "Request Validation Enabled", "group": "common", "label": "", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable validation of requests against the configured OpenAPI 
specification" },
+    "bridgeErrorHandler": { "index": 1, "kind": "property", "displayName": 
"Bridge Error Handler", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Allows for bridging the consumer to the Camel routing Error Handler, which 
mean any exceptions (if possible) occurred while the Camel consumer is trying 
to pickup incoming messages, or the like [...]
+    "consumerComponentName": { "index": 2, "kind": "property", "displayName": 
"Consumer Component Name", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Name of the Camel component that will service the requests. The 
component must be present in Camel registry and it must implement 
RestOpenApiConsumerFactory service provider interfac [...]
+    "basePath": { "index": 3, "kind": "property", "displayName": "Base Path", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "API basePath, for example \/v2. Default is 
unset, if set overrides the value present in OpenApi specification." },
+    "host": { "index": 4, "kind": "property", "displayName": "Host", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "Scheme hostname and port to direct the HTTP 
requests to in the form of https:\/\/hostname:port. Can be configured at the 
endpoint, component or in the corresponding REST configuration in the Camel 
Context. If you give this component a nam [...]
+    "lazyStartProducer": { "index": 5, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
+    "specificationUri": { "index": 6, "kind": "property", "displayName": 
"Specification Uri", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.net.URI", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "openapi.json", 
"description": "Path to the OpenApi specification file. The scheme, host base 
path are taken from this specification, but these can be overridden with 
properties on the component or endpoint level. If  [...]
+    "componentName": { "index": 7, "kind": "property", "displayName": 
"Component Name", "group": "producer (advanced)", "label": "producer,advanced", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Name 
of the Camel component that will perform the requests. The component must be 
present in Camel registry and it must implement RestProducerFactory service 
provider interface. If not set CLASSPATH  [...]
+    "consumes": { "index": 8, "kind": "property", "displayName": "Consumes", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "What payload type this 
component capable of consuming. Could be one type, like application\/json or 
multiple types as application\/json, application\/xml; q=0.5 according to the 
RFC7231. This equates to the val [...]
+    "produces": { "index": 9, "kind": "property", "displayName": "Produces", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "What payload type this 
component is producing. For example application\/json according to the RFC7231. 
This equates to the value of Content-Type HTTP header. If set overrides any 
value present in the OpenApi sp [...]
+    "autowiredEnabled": { "index": 10, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
+    "requestValidationCustomizer": { "index": 11, "kind": "property", 
"displayName": "Request Validation Customizer", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer",
 "deprecated": false, "autowired": false, "secret": false, "description": "If 
request validation is enabled, this option provides the capability to customize 
the creation of OpenApiInteractionValidator u [...]
+    "sslContextParameters": { "index": 12, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Customize TLS parameters 
used by the component. If not set defaults to the TLS parameters set in the 
Camel context" },
+    "useGlobalSslContextParameters": { "index": 13, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." }
   },
   "properties": {
-    "specificationUri": { "index": 0, "kind": "path", "displayName": 
"Specification Uri", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.net.URI", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "openapi.json", 
"description": "Path to the OpenApi specification file. The scheme, host base 
path are taken from this specification, but these can be overridden with 
properties on the component or endpoint level. If not  [...]
-    "operationId": { "index": 1, "kind": "path", "displayName": "Operation 
Id", "group": "producer", "label": "producer", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "ID 
of the operation from the OpenApi specification." },
-    "basePath": { "index": 2, "kind": "parameter", "displayName": "Base Path", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "API basePath, for example \/v3. Default is 
unset, if set overrides the value present in OpenApi specification and in the 
component configuration." },
-    "consumes": { "index": 3, "kind": "parameter", "displayName": "Consumes", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "What payload type this component capable of 
consuming. Could be one type, like application\/json or multiple types as 
application\/json, application\/xml; q=0.5 according to the RFC7231. This 
equates to the value of Accept HTTP h [...]
-    "host": { "index": 4, "kind": "parameter", "displayName": "Host", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "Scheme hostname and port to direct the HTTP 
requests to in the form of https:\/\/hostname:port. Can be configured at the 
endpoint, component or in the corresponding REST configuration in the Camel 
Context. If you give this component a na [...]
-    "produces": { "index": 5, "kind": "parameter", "displayName": "Produces", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "What payload type this component is producing. 
For example application\/json according to the RFC7231. This equates to the 
value of Content-Type HTTP header. If set overrides any value present in the 
OpenApi specification. Overri [...]
-    "requestValidationEnabled": { "index": 6, "kind": "parameter", 
"displayName": "Request Validation Enabled", "group": "producer", "label": "", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable validation of requests against the configured OpenAPI 
specification" },
-    "componentName": { "index": 7, "kind": "parameter", "displayName": 
"Component Name", "group": "producer (advanced)", "label": "producer,advanced", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Name 
of the Camel component that will perform the requests. The component must be 
present in Camel registry and it must implement RestProducerFactory service 
provider interface. If not set CLASSPATH [...]
-    "lazyStartProducer": { "index": 8, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
-    "requestValidationCustomizer": { "index": 9, "kind": "parameter", 
"displayName": "Request Validation Customizer", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer",
 "deprecated": false, "autowired": false, "secret": false, "description": "If 
request validation is enabled, this option provides the capability to customize 
the creation of OpenApiInteractionValidator u [...]
-    "requestValidationLevels": { "index": 10, "kind": "parameter", 
"displayName": "Request Validation Levels", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"java.util.Map<java.lang.String, java.lang.Object>", "prefix": "validation.", 
"multiValue": true, "deprecated": false, "autowired": false, "secret": false, 
"description": "Levels for specific OpenAPI request validation options. 
Multiple options can be specified as URI options prefixed by ' [...]
+    "specificationUri": { "index": 0, "kind": "path", "displayName": 
"Specification Uri", "group": "common", "label": "common", "required": false, 
"type": "string", "javaType": "java.net.URI", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "openapi.json", "description": "Path to 
the OpenApi specification file. The scheme, host base path are taken from this 
specification, but these can be overridden with properties on the component or 
endpoint level. If not give [...]
+    "operationId": { "index": 1, "kind": "path", "displayName": "Operation 
Id", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "ID of the operation from the OpenApi 
specification. This is required when using producer" },
+    "requestValidationEnabled": { "index": 2, "kind": "parameter", 
"displayName": "Request Validation Enabled", "group": "common", "label": "", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable validation of requests against the configured OpenAPI 
specification" },
+    "bridgeErrorHandler": { "index": 3, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming  [...]
+    "consumerComponentName": { "index": 4, "kind": "parameter", "displayName": 
"Consumer Component Name", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Name of the Camel component that will service the requests. The 
component must be present in Camel registry and it must implement 
RestOpenApiConsumerFactory service provider interfa [...]
+    "exceptionHandler": { "index": 5, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By def [...]
+    "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "basePath": { "index": 7, "kind": "parameter", "displayName": "Base Path", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "API basePath, for example \/v3. Default is 
unset, if set overrides the value present in OpenApi specification and in the 
component configuration." },
+    "consumes": { "index": 8, "kind": "parameter", "displayName": "Consumes", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "What payload type this component capable of 
consuming. Could be one type, like application\/json or multiple types as 
application\/json, application\/xml; q=0.5 according to the RFC7231. This 
equates to the value of Accept HTTP h [...]
+    "host": { "index": 9, "kind": "parameter", "displayName": "Host", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "Scheme hostname and port to direct the HTTP 
requests to in the form of https:\/\/hostname:port. Can be configured at the 
endpoint, component or in the corresponding REST configuration in the Camel 
Context. If you give this component a na [...]
+    "produces": { "index": 10, "kind": "parameter", "displayName": "Produces", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "What payload type this component is producing. 
For example application\/json according to the RFC7231. This equates to the 
value of Content-Type HTTP header. If set overrides any value present in the 
OpenApi specification. Overr [...]
+    "componentName": { "index": 11, "kind": "parameter", "displayName": 
"Component Name", "group": "producer (advanced)", "label": "producer,advanced", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Name 
of the Camel component that will perform the requests. The component must be 
present in Camel registry and it must implement RestProducerFactory service 
provider interface. If not set CLASSPAT [...]
+    "lazyStartProducer": { "index": 12, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
+    "requestValidationCustomizer": { "index": 13, "kind": "parameter", 
"displayName": "Request Validation Customizer", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer",
 "deprecated": false, "autowired": false, "secret": false, "description": "If 
request validation is enabled, this option provides the capability to customize 
the creation of OpenApiInteractionValidator  [...]
+    "requestValidationLevels": { "index": 14, "kind": "parameter", 
"displayName": "Request Validation Levels", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"java.util.Map<java.lang.String, java.lang.Object>", "prefix": "validation.", 
"multiValue": true, "deprecated": false, "autowired": false, "secret": false, 
"description": "Levels for specific OpenAPI request validation options. 
Multiple options can be specified as URI options prefixed by ' [...]
   }
 }
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index fadc4fc1fdf..40b01f7e5e7 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -12751,8 +12751,9 @@ public class StaticEndpointBuilders {
      * loads openapi.json file
      * Default value: openapi.json
      * 
-     * Path parameter: operationId (required)
-     * ID of the operation from the OpenApi specification.
+     * Path parameter: operationId
+     * ID of the operation from the OpenApi specification. This is required 
when
+     * using producer
      * 
      * @param path specificationUri#operationId
      * @return the dsl builder
@@ -12788,8 +12789,9 @@ public class StaticEndpointBuilders {
      * loads openapi.json file
      * Default value: openapi.json
      * 
-     * Path parameter: operationId (required)
-     * ID of the operation from the OpenApi specification.
+     * Path parameter: operationId
+     * ID of the operation from the OpenApi specification. This is required 
when
+     * using producer
      * 
      * @param componentName to use a custom component name for the endpoint
      * instead of the default name
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/RestOpenApiEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/RestOpenApiEndpointBuilderFactory.java
index 47d90bae33f..a0454445e2a 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/RestOpenApiEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/RestOpenApiEndpointBuilderFactory.java
@@ -36,13 +36,331 @@ public interface RestOpenApiEndpointBuilderFactory {
 
 
     /**
-     * Builder for endpoint for the REST OpenApi component.
+     * Builder for endpoint consumers for the REST OpenApi component.
      */
-    public interface RestOpenApiEndpointBuilder
+    public interface RestOpenApiEndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        default AdvancedRestOpenApiEndpointConsumerBuilder advanced() {
+            return (AdvancedRestOpenApiEndpointConsumerBuilder) this;
+        }
+        /**
+         * Enable validation of requests against the configured OpenAPI
+         * specification.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param requestValidationEnabled the value to set
+         * @return the dsl builder
+         */
+        default RestOpenApiEndpointConsumerBuilder requestValidationEnabled(
+                boolean requestValidationEnabled) {
+            doSetProperty("requestValidationEnabled", 
requestValidationEnabled);
+            return this;
+        }
+        /**
+         * Enable validation of requests against the configured OpenAPI
+         * specification.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param requestValidationEnabled the value to set
+         * @return the dsl builder
+         */
+        default RestOpenApiEndpointConsumerBuilder requestValidationEnabled(
+                String requestValidationEnabled) {
+            doSetProperty("requestValidationEnabled", 
requestValidationEnabled);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint consumers for the REST OpenApi component.
+     */
+    public interface AdvancedRestOpenApiEndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        default RestOpenApiEndpointConsumerBuilder basic() {
+            return (RestOpenApiEndpointConsumerBuilder) this;
+        }
+        /**
+         * Allows for bridging the consumer to the Camel routing Error Handler,
+         * which mean any exceptions (if possible) occurred while the Camel
+         * consumer is trying to pickup incoming messages, or the likes, will
+         * now be processed as a message and handled by the routing Error
+         * Handler. Important: This is only possible if the 3rd party component
+         * allows Camel to be alerted if an exception was thrown. Some
+         * components handle this internally only, and therefore
+         * bridgeErrorHandler is not possible. In other situations we may
+         * improve the Camel component to hook into the 3rd party component and
+         * make this possible for future releases. By default the consumer will
+         * use the org.apache.camel.spi.ExceptionHandler to deal with
+         * exceptions, that will be logged at WARN or ERROR level and ignored.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param bridgeErrorHandler the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder bridgeErrorHandler(
+                boolean bridgeErrorHandler) {
+            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+        /**
+         * Allows for bridging the consumer to the Camel routing Error Handler,
+         * which mean any exceptions (if possible) occurred while the Camel
+         * consumer is trying to pickup incoming messages, or the likes, will
+         * now be processed as a message and handled by the routing Error
+         * Handler. Important: This is only possible if the 3rd party component
+         * allows Camel to be alerted if an exception was thrown. Some
+         * components handle this internally only, and therefore
+         * bridgeErrorHandler is not possible. In other situations we may
+         * improve the Camel component to hook into the 3rd party component and
+         * make this possible for future releases. By default the consumer will
+         * use the org.apache.camel.spi.ExceptionHandler to deal with
+         * exceptions, that will be logged at WARN or ERROR level and ignored.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param bridgeErrorHandler the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder bridgeErrorHandler(
+                String bridgeErrorHandler) {
+            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+        /**
+         * Name of the Camel component that will service the requests. The
+         * component must be present in Camel registry and it must implement
+         * RestOpenApiConsumerFactory service provider interface. If not set
+         * CLASSPATH is searched for single component that implements
+         * RestOpenApiConsumerFactory SPI. Overrides component configuration.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param consumerComponentName the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder 
consumerComponentName(
+                String consumerComponentName) {
+            doSetProperty("consumerComponentName", consumerComponentName);
+            return this;
+        }
+        /**
+         * To let the consumer use a custom ExceptionHandler. Notice if the
+         * option bridgeErrorHandler is enabled then this option is not in use.
+         * By default the consumer will deal with exceptions, that will be
+         * logged at WARN or ERROR level and ignored.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.spi.ExceptionHandler&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param exceptionHandler the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder exceptionHandler(
+                org.apache.camel.spi.ExceptionHandler exceptionHandler) {
+            doSetProperty("exceptionHandler", exceptionHandler);
+            return this;
+        }
+        /**
+         * To let the consumer use a custom ExceptionHandler. Notice if the
+         * option bridgeErrorHandler is enabled then this option is not in use.
+         * By default the consumer will deal with exceptions, that will be
+         * logged at WARN or ERROR level and ignored.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;org.apache.camel.spi.ExceptionHandler&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param exceptionHandler the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder exceptionHandler(
+                String exceptionHandler) {
+            doSetProperty("exceptionHandler", exceptionHandler);
+            return this;
+        }
+        /**
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.ExchangePattern&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param exchangePattern the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder exchangePattern(
+                org.apache.camel.ExchangePattern exchangePattern) {
+            doSetProperty("exchangePattern", exchangePattern);
+            return this;
+        }
+        /**
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;org.apache.camel.ExchangePattern&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param exchangePattern the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder exchangePattern(
+                String exchangePattern) {
+            doSetProperty("exchangePattern", exchangePattern);
+            return this;
+        }
+        /**
+         * If request validation is enabled, this option provides the 
capability
+         * to customize the creation of OpenApiInteractionValidator used to
+         * validate requests.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer&lt;/code&gt;
 type.
+         * 
+         * Group: advanced
+         * 
+         * @param requestValidationCustomizer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder 
requestValidationCustomizer(
+                
org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer 
requestValidationCustomizer) {
+            doSetProperty("requestValidationCustomizer", 
requestValidationCustomizer);
+            return this;
+        }
+        /**
+         * If request validation is enabled, this option provides the 
capability
+         * to customize the creation of OpenApiInteractionValidator used to
+         * validate requests.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer&lt;/code&gt;
 type.
+         * 
+         * Group: advanced
+         * 
+         * @param requestValidationCustomizer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder 
requestValidationCustomizer(
+                String requestValidationCustomizer) {
+            doSetProperty("requestValidationCustomizer", 
requestValidationCustomizer);
+            return this;
+        }
+        /**
+         * Levels for specific OpenAPI request validation options. Multiple
+         * options can be specified as URI options prefixed by 'validation.'.
+         * For example,
+         * 
validation.request.body=ERROR&amp;amp;validation.request.body.unexpected=IGNORED.
 Supported values are INFO, ERROR, WARN &amp;amp; IGNORE.
+         * 
+         * The option is a: &lt;code&gt;java.util.Map&amp;lt;java.lang.String,
+         * java.lang.Object&amp;gt;&lt;/code&gt; type.
+         * The option is multivalued, and you can use the
+         * requestValidationLevels(String, Object) method to add a value (call
+         * the method multiple times to set more values).
+         * 
+         * Group: advanced
+         * 
+         * @param key the option key
+         * @param value the option value
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder 
requestValidationLevels(
+                String key,
+                Object value) {
+            doSetMultiValueProperty("requestValidationLevels", "validation." + 
key, value);
+            return this;
+        }
+        /**
+         * Levels for specific OpenAPI request validation options. Multiple
+         * options can be specified as URI options prefixed by 'validation.'.
+         * For example,
+         * 
validation.request.body=ERROR&amp;amp;validation.request.body.unexpected=IGNORED.
 Supported values are INFO, ERROR, WARN &amp;amp; IGNORE.
+         * 
+         * The option is a: &lt;code&gt;java.util.Map&amp;lt;java.lang.String,
+         * java.lang.Object&amp;gt;&lt;/code&gt; type.
+         * The option is multivalued, and you can use the
+         * requestValidationLevels(String, Object) method to add a value (call
+         * the method multiple times to set more values).
+         * 
+         * Group: advanced
+         * 
+         * @param values the values
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointConsumerBuilder 
requestValidationLevels(
+                Map values) {
+            doSetMultiValueProperties("requestValidationLevels", 
"validation.", values);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint producers for the REST OpenApi component.
+     */
+    public interface RestOpenApiEndpointProducerBuilder
             extends
                 EndpointProducerBuilder {
-        default AdvancedRestOpenApiEndpointBuilder advanced() {
-            return (AdvancedRestOpenApiEndpointBuilder) this;
+        default AdvancedRestOpenApiEndpointProducerBuilder advanced() {
+            return (AdvancedRestOpenApiEndpointProducerBuilder) this;
+        }
+        /**
+         * Enable validation of requests against the configured OpenAPI
+         * specification.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param requestValidationEnabled the value to set
+         * @return the dsl builder
+         */
+        default RestOpenApiEndpointProducerBuilder requestValidationEnabled(
+                boolean requestValidationEnabled) {
+            doSetProperty("requestValidationEnabled", 
requestValidationEnabled);
+            return this;
+        }
+        /**
+         * Enable validation of requests against the configured OpenAPI
+         * specification.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param requestValidationEnabled the value to set
+         * @return the dsl builder
+         */
+        default RestOpenApiEndpointProducerBuilder requestValidationEnabled(
+                String requestValidationEnabled) {
+            doSetProperty("requestValidationEnabled", 
requestValidationEnabled);
+            return this;
         }
         /**
          * API basePath, for example /v3. Default is unset, if set overrides 
the
@@ -56,7 +374,7 @@ public interface RestOpenApiEndpointBuilderFactory {
          * @param basePath the value to set
          * @return the dsl builder
          */
-        default RestOpenApiEndpointBuilder basePath(String basePath) {
+        default RestOpenApiEndpointProducerBuilder basePath(String basePath) {
             doSetProperty("basePath", basePath);
             return this;
         }
@@ -74,7 +392,7 @@ public interface RestOpenApiEndpointBuilderFactory {
          * @param consumes the value to set
          * @return the dsl builder
          */
-        default RestOpenApiEndpointBuilder consumes(String consumes) {
+        default RestOpenApiEndpointProducerBuilder consumes(String consumes) {
             doSetProperty("consumes", consumes);
             return this;
         }
@@ -94,7 +412,7 @@ public interface RestOpenApiEndpointBuilderFactory {
          * @param host the value to set
          * @return the dsl builder
          */
-        default RestOpenApiEndpointBuilder host(String host) {
+        default RestOpenApiEndpointProducerBuilder host(String host) {
             doSetProperty("host", host);
             return this;
         }
@@ -111,55 +429,20 @@ public interface RestOpenApiEndpointBuilderFactory {
          * @param produces the value to set
          * @return the dsl builder
          */
-        default RestOpenApiEndpointBuilder produces(String produces) {
+        default RestOpenApiEndpointProducerBuilder produces(String produces) {
             doSetProperty("produces", produces);
             return this;
         }
-        /**
-         * Enable validation of requests against the configured OpenAPI
-         * specification.
-         * 
-         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
-         * 
-         * Default: false
-         * Group: producer
-         * 
-         * @param requestValidationEnabled the value to set
-         * @return the dsl builder
-         */
-        default RestOpenApiEndpointBuilder requestValidationEnabled(
-                boolean requestValidationEnabled) {
-            doSetProperty("requestValidationEnabled", 
requestValidationEnabled);
-            return this;
-        }
-        /**
-         * Enable validation of requests against the configured OpenAPI
-         * specification.
-         * 
-         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
-         * type.
-         * 
-         * Default: false
-         * Group: producer
-         * 
-         * @param requestValidationEnabled the value to set
-         * @return the dsl builder
-         */
-        default RestOpenApiEndpointBuilder requestValidationEnabled(
-                String requestValidationEnabled) {
-            doSetProperty("requestValidationEnabled", 
requestValidationEnabled);
-            return this;
-        }
     }
 
     /**
-     * Advanced builder for endpoint for the REST OpenApi component.
+     * Advanced builder for endpoint producers for the REST OpenApi component.
      */
-    public interface AdvancedRestOpenApiEndpointBuilder
+    public interface AdvancedRestOpenApiEndpointProducerBuilder
             extends
                 EndpointProducerBuilder {
-        default RestOpenApiEndpointBuilder basic() {
-            return (RestOpenApiEndpointBuilder) this;
+        default RestOpenApiEndpointProducerBuilder basic() {
+            return (RestOpenApiEndpointProducerBuilder) this;
         }
         /**
          * Name of the Camel component that will perform the requests. The
@@ -175,7 +458,7 @@ public interface RestOpenApiEndpointBuilderFactory {
          * @param componentName the value to set
          * @return the dsl builder
          */
-        default AdvancedRestOpenApiEndpointBuilder componentName(
+        default AdvancedRestOpenApiEndpointProducerBuilder componentName(
                 String componentName) {
             doSetProperty("componentName", componentName);
             return this;
@@ -199,7 +482,7 @@ public interface RestOpenApiEndpointBuilderFactory {
          * @param lazyStartProducer the value to set
          * @return the dsl builder
          */
-        default AdvancedRestOpenApiEndpointBuilder lazyStartProducer(
+        default AdvancedRestOpenApiEndpointProducerBuilder lazyStartProducer(
                 boolean lazyStartProducer) {
             doSetProperty("lazyStartProducer", lazyStartProducer);
             return this;
@@ -224,11 +507,152 @@ public interface RestOpenApiEndpointBuilderFactory {
          * @param lazyStartProducer the value to set
          * @return the dsl builder
          */
-        default AdvancedRestOpenApiEndpointBuilder lazyStartProducer(
+        default AdvancedRestOpenApiEndpointProducerBuilder lazyStartProducer(
                 String lazyStartProducer) {
             doSetProperty("lazyStartProducer", lazyStartProducer);
             return this;
         }
+        /**
+         * If request validation is enabled, this option provides the 
capability
+         * to customize the creation of OpenApiInteractionValidator used to
+         * validate requests.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer&lt;/code&gt;
 type.
+         * 
+         * Group: advanced
+         * 
+         * @param requestValidationCustomizer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointProducerBuilder 
requestValidationCustomizer(
+                
org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer 
requestValidationCustomizer) {
+            doSetProperty("requestValidationCustomizer", 
requestValidationCustomizer);
+            return this;
+        }
+        /**
+         * If request validation is enabled, this option provides the 
capability
+         * to customize the creation of OpenApiInteractionValidator used to
+         * validate requests.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.apache.camel.component.rest.openapi.validator.RequestValidationCustomizer&lt;/code&gt;
 type.
+         * 
+         * Group: advanced
+         * 
+         * @param requestValidationCustomizer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointProducerBuilder 
requestValidationCustomizer(
+                String requestValidationCustomizer) {
+            doSetProperty("requestValidationCustomizer", 
requestValidationCustomizer);
+            return this;
+        }
+        /**
+         * Levels for specific OpenAPI request validation options. Multiple
+         * options can be specified as URI options prefixed by 'validation.'.
+         * For example,
+         * 
validation.request.body=ERROR&amp;amp;validation.request.body.unexpected=IGNORED.
 Supported values are INFO, ERROR, WARN &amp;amp; IGNORE.
+         * 
+         * The option is a: &lt;code&gt;java.util.Map&amp;lt;java.lang.String,
+         * java.lang.Object&amp;gt;&lt;/code&gt; type.
+         * The option is multivalued, and you can use the
+         * requestValidationLevels(String, Object) method to add a value (call
+         * the method multiple times to set more values).
+         * 
+         * Group: advanced
+         * 
+         * @param key the option key
+         * @param value the option value
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointProducerBuilder 
requestValidationLevels(
+                String key,
+                Object value) {
+            doSetMultiValueProperty("requestValidationLevels", "validation." + 
key, value);
+            return this;
+        }
+        /**
+         * Levels for specific OpenAPI request validation options. Multiple
+         * options can be specified as URI options prefixed by 'validation.'.
+         * For example,
+         * 
validation.request.body=ERROR&amp;amp;validation.request.body.unexpected=IGNORED.
 Supported values are INFO, ERROR, WARN &amp;amp; IGNORE.
+         * 
+         * The option is a: &lt;code&gt;java.util.Map&amp;lt;java.lang.String,
+         * java.lang.Object&amp;gt;&lt;/code&gt; type.
+         * The option is multivalued, and you can use the
+         * requestValidationLevels(String, Object) method to add a value (call
+         * the method multiple times to set more values).
+         * 
+         * Group: advanced
+         * 
+         * @param values the values
+         * @return the dsl builder
+         */
+        default AdvancedRestOpenApiEndpointProducerBuilder 
requestValidationLevels(
+                Map values) {
+            doSetMultiValueProperties("requestValidationLevels", 
"validation.", values);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint for the REST OpenApi component.
+     */
+    public interface RestOpenApiEndpointBuilder
+            extends
+                RestOpenApiEndpointConsumerBuilder,
+                RestOpenApiEndpointProducerBuilder {
+        default AdvancedRestOpenApiEndpointBuilder advanced() {
+            return (AdvancedRestOpenApiEndpointBuilder) this;
+        }
+        /**
+         * Enable validation of requests against the configured OpenAPI
+         * specification.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param requestValidationEnabled the value to set
+         * @return the dsl builder
+         */
+        default RestOpenApiEndpointBuilder requestValidationEnabled(
+                boolean requestValidationEnabled) {
+            doSetProperty("requestValidationEnabled", 
requestValidationEnabled);
+            return this;
+        }
+        /**
+         * Enable validation of requests against the configured OpenAPI
+         * specification.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param requestValidationEnabled the value to set
+         * @return the dsl builder
+         */
+        default RestOpenApiEndpointBuilder requestValidationEnabled(
+                String requestValidationEnabled) {
+            doSetProperty("requestValidationEnabled", 
requestValidationEnabled);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the REST OpenApi component.
+     */
+    public interface AdvancedRestOpenApiEndpointBuilder
+            extends
+                AdvancedRestOpenApiEndpointConsumerBuilder,
+                AdvancedRestOpenApiEndpointProducerBuilder {
+        default RestOpenApiEndpointBuilder basic() {
+            return (RestOpenApiEndpointBuilder) this;
+        }
         /**
          * If request validation is enabled, this option provides the 
capability
          * to customize the creation of OpenApiInteractionValidator used to
@@ -341,8 +765,9 @@ public interface RestOpenApiEndpointBuilderFactory {
          * UrlHandler. Default value notice: By default loads openapi.json file
          * Default value: openapi.json
          * 
-         * Path parameter: operationId (required)
-         * ID of the operation from the OpenApi specification.
+         * Path parameter: operationId
+         * ID of the operation from the OpenApi specification. This is required
+         * when using producer
          * 
          * @param path specificationUri#operationId
          * @return the dsl builder
@@ -377,8 +802,9 @@ public interface RestOpenApiEndpointBuilderFactory {
          * UrlHandler. Default value notice: By default loads openapi.json file
          * Default value: openapi.json
          * 
-         * Path parameter: operationId (required)
-         * ID of the operation from the OpenApi specification.
+         * Path parameter: operationId
+         * ID of the operation from the OpenApi specification. This is required
+         * when using producer
          * 
          * @param componentName to use a custom component name for the endpoint
          * instead of the default name
diff --git 
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/RestOpenapiUriDsl.kt
 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/RestOpenapiUriDsl.kt
index d1bc702cc63..6f22f587c84 100644
--- 
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/RestOpenapiUriDsl.kt
+++ 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/RestOpenapiUriDsl.kt
@@ -62,13 +62,83 @@ public class RestOpenapiUriDsl(
   }
 
   /**
-   * ID of the operation from the OpenApi specification.
+   * ID of the operation from the OpenApi specification. This is required when 
using producer
    */
   public fun operationId(operationId: String) {
     this.operationId = operationId
     it.url("$specificationUri#$operationId")
   }
 
+  /**
+   * Enable validation of requests against the configured OpenAPI specification
+   */
+  public fun requestValidationEnabled(requestValidationEnabled: String) {
+    it.property("requestValidationEnabled", requestValidationEnabled)
+  }
+
+  /**
+   * Enable validation of requests against the configured OpenAPI specification
+   */
+  public fun requestValidationEnabled(requestValidationEnabled: Boolean) {
+    it.property("requestValidationEnabled", 
requestValidationEnabled.toString())
+  }
+
+  /**
+   * Allows for bridging the consumer to the Camel routing Error Handler, 
which mean any exceptions
+   * (if possible) occurred while the Camel consumer is trying to pickup 
incoming messages, or the
+   * likes, will now be processed as a message and handled by the routing 
Error Handler. Important:
+   * This is only possible if the 3rd party component allows Camel to be 
alerted if an exception was
+   * thrown. Some components handle this internally only, and therefore 
bridgeErrorHandler is not
+   * possible. In other situations we may improve the Camel component to hook 
into the 3rd party
+   * component and make this possible for future releases. By default the 
consumer will use the
+   * org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will 
be logged at WARN or
+   * ERROR level and ignored.
+   */
+  public fun bridgeErrorHandler(bridgeErrorHandler: String) {
+    it.property("bridgeErrorHandler", bridgeErrorHandler)
+  }
+
+  /**
+   * Allows for bridging the consumer to the Camel routing Error Handler, 
which mean any exceptions
+   * (if possible) occurred while the Camel consumer is trying to pickup 
incoming messages, or the
+   * likes, will now be processed as a message and handled by the routing 
Error Handler. Important:
+   * This is only possible if the 3rd party component allows Camel to be 
alerted if an exception was
+   * thrown. Some components handle this internally only, and therefore 
bridgeErrorHandler is not
+   * possible. In other situations we may improve the Camel component to hook 
into the 3rd party
+   * component and make this possible for future releases. By default the 
consumer will use the
+   * org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will 
be logged at WARN or
+   * ERROR level and ignored.
+   */
+  public fun bridgeErrorHandler(bridgeErrorHandler: Boolean) {
+    it.property("bridgeErrorHandler", bridgeErrorHandler.toString())
+  }
+
+  /**
+   * Name of the Camel component that will service the requests. The component 
must be present in
+   * Camel registry and it must implement RestOpenApiConsumerFactory service 
provider interface. If not
+   * set CLASSPATH is searched for single component that implements 
RestOpenApiConsumerFactory SPI.
+   * Overrides component configuration.
+   */
+  public fun consumerComponentName(consumerComponentName: String) {
+    it.property("consumerComponentName", consumerComponentName)
+  }
+
+  /**
+   * To let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is
+   * enabled then this option is not in use. By default the consumer will deal 
with exceptions, that
+   * will be logged at WARN or ERROR level and ignored.
+   */
+  public fun exceptionHandler(exceptionHandler: String) {
+    it.property("exceptionHandler", exceptionHandler)
+  }
+
+  /**
+   * Sets the exchange pattern when the consumer creates an exchange.
+   */
+  public fun exchangePattern(exchangePattern: String) {
+    it.property("exchangePattern", exchangePattern)
+  }
+
   /**
    * API basePath, for example /v3. Default is unset, if set overrides the 
value present in OpenApi
    * specification and in the component configuration.
@@ -107,20 +177,6 @@ public class RestOpenapiUriDsl(
     it.property("produces", produces)
   }
 
-  /**
-   * Enable validation of requests against the configured OpenAPI specification
-   */
-  public fun requestValidationEnabled(requestValidationEnabled: String) {
-    it.property("requestValidationEnabled", requestValidationEnabled)
-  }
-
-  /**
-   * Enable validation of requests against the configured OpenAPI specification
-   */
-  public fun requestValidationEnabled(requestValidationEnabled: Boolean) {
-    it.property("requestValidationEnabled", 
requestValidationEnabled.toString())
-  }
-
   /**
    * Name of the Camel component that will perform the requests. The component 
must be present in
    * Camel registry and it must implement RestProducerFactory service provider 
interface. If not set

Reply via email to