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

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

commit 72085dd09ba4d2d123b1d79087bfec9c9cdfd0dd
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Oct 24 19:57:03 2026 +0200

    CAMEL-24961: Catalog body types for ten kubernetes components (#28399)
    
    Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../catalog/components/kubernetes-config-maps.json |  5 ++++
 .../catalog/components/kubernetes-cronjob.json     |  4 +++
 .../components/kubernetes-custom-resources.json    |  5 ++++
 .../catalog/components/kubernetes-deployments.json |  5 ++++
 .../catalog/components/kubernetes-events.json      |  5 ++++
 .../camel/catalog/components/kubernetes-hpa.json   |  5 ++++
 .../camel/catalog/components/kubernetes-job.json   |  4 +++
 .../catalog/components/kubernetes-namespaces.json  |  5 ++++
 .../camel/catalog/components/kubernetes-nodes.json |  5 ++++
 .../camel/catalog/components/kubernetes-pods.json  |  5 ++++
 .../config_maps/kubernetes-config-maps.json        |  5 ++++
 .../kubernetes/cronjob/kubernetes-cronjob.json     |  4 +++
 .../kubernetes-custom-resources.json               |  5 ++++
 .../deployments/kubernetes-deployments.json        |  5 ++++
 .../kubernetes/events/kubernetes-events.json       |  5 ++++
 .../component/kubernetes/hpa/kubernetes-hpa.json   |  5 ++++
 .../component/kubernetes/job/kubernetes-job.json   |  4 +++
 .../namespaces/kubernetes-namespaces.json          |  5 ++++
 .../kubernetes/nodes/kubernetes-nodes.json         |  5 ++++
 .../component/kubernetes/pods/kubernetes-pods.json |  5 ++++
 .../config_maps/KubernetesConfigMapsEndpoint.java  | 29 ++++++++++++++++++
 .../cronjob/KubernetesCronJobEndpoint.java         | 24 +++++++++++++++
 .../KubernetesCustomResourcesEndpoint.java         | 34 ++++++++++++++++++++++
 .../deployments/KubernetesDeploymentsEndpoint.java | 33 +++++++++++++++++++++
 .../events/KubernetesEventsEndpoint.java           | 25 ++++++++++++++++
 .../kubernetes/hpa/KubernetesHPAEndpoint.java      | 27 +++++++++++++++++
 .../kubernetes/job/KubernetesJobEndpoint.java      | 21 +++++++++++++
 .../namespaces/KubernetesNamespacesEndpoint.java   | 29 ++++++++++++++++++
 .../kubernetes/nodes/KubernetesNodesEndpoint.java  | 24 +++++++++++++++
 .../kubernetes/pods/KubernetesPodsEndpoint.java    | 24 +++++++++++++++
 30 files changed, 366 insertions(+)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-config-maps.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-config-maps.json
index 5c79f7d3881f..0b45118af6e8 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-config-maps.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-config-maps.json
@@ -39,6 +39,11 @@
     "CamelKubernetesEventAction": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.ConfigMap", "description": "The ConfigMap that 
changed, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the ConfigMap in 
CamelKubernetesConfigMapName and its data as a Map in 
CamelKubernetesConfigData" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listConfigMaps", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listConfigMapsByLabels", 
"carriers": [ "list" ] }, { "option": "operation", "value": "getConfigMap", 
"carriers": [ "pojo", "null" ] }, { "option": "operation", "value": 
"createConfigMap", "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.ConfigMap" }, { "option": "operation", [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
index 18409640832f..d51d3a5c8998 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
@@ -35,6 +35,10 @@
     "CamelKubernetesCronJobSpec": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a Job.", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_SPEC"
 },
     "CamelKubernetesCronJobAnnotations": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The Cron Job 
annotations.", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_ANNOTATIONS"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the CronJob in 
CamelKubernetesCronJobName and its CronJobSpec in CamelKubernetesCronJobSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "unchanged" ], 
"byOption": [ { "option": "operation", "value": "listCronJob", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listCronJobByLabels", 
"carriers": [ "list" ] }, { "option": "operation", "value": "getCronJob", 
"carriers": [ "pojo", "null" ] }, { "option": "operation", "value": 
"createCronJob", "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.batch.v1.CronJob" }, { "option": "operation" 
[...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-custom-resources.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-custom-resources.json
index d81b4cf7ecc7..029a197eaa44 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-custom-resources.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-custom-resources.json
@@ -44,6 +44,11 @@
     "CamelKubernetesCRDInstance": { "index": 11, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The manifest of the CRD resource to 
create as JSON string", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRD_INSTANCE"
 },
     "CamelKubernetesDeleteResult": { "index": 12, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The result of the delete operation", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DELETE_RESULT"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "text" ], "javaType": "java.lang.String", 
"format": "json", "description": "The custom resource that changed as JSON 
text, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesCRDEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the instance in 
CamelKubernetesCRDInstanceName and, for createCustomResource and 
updateCustomResource, the instance as JSON text in CamelKubernetesCRDInstance" 
},
+    "producerOut": { "carriers": [ "list", "map", "pojo", "unchanged" ], 
"byOption": [ { "option": "operation", "value": "listCustomResources", 
"carriers": [ "list" ], "javaType": "org.apache.camel.util.json.JsonArray" }, { 
"option": "operation", "value": "listCustomResourcesByLabels", "carriers": [ 
"list" ], "javaType": "org.apache.camel.util.json.JsonArray" }, { "option": 
"operation", "value": "getCustomResource", "carriers": [ "map" ], "javaType": 
"org.apache.camel.util.json.JsonObjec [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-deployments.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-deployments.json
index 6967cbb660d6..655d5368a161 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-deployments.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-deployments.json
@@ -40,6 +40,11 @@
     "CamelKubernetesEventAction": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 8, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.apps.Deployment", "description": "The 
Deployment that changed, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Deployment in 
CamelKubernetesDeploymentName, its DeploymentSpec in 
CamelKubernetesDeploymentSpec and the replicas of scaleDeployment in 
CamelKubernetesDeploymentReplicas" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listDeployments", "carriers": 
[ "list" ] }, { "option": "operation", "value": "listDeploymentsByLabels", 
"carriers": [ "list" ] }, { "option": "operation", "value": "getDeployment", 
"carriers": [ "pojo", "null" ] }, { "option": "operation", "value": 
"createDeployment", "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.apps.Deployment" }, { "option": "o [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-events.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-events.json
index ddee54960f36..2e387a48d8d7 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-events.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-events.json
@@ -45,6 +45,11 @@
     "CamelKubernetesEventName": { "index": 12, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The event name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_NAME"
 },
     "CamelKubernetesEventTimestamp": { "index": 14, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.events.v1.Event", "description": "The Event 
that changed, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "createEvent and 
updateEvent use an EventBuilder of fabric8 from the body, when the body is one; 
otherwise the body is not used and the Event is built from the headers, such as 
its name in CamelKubernetesEventName and its note in CamelKubernetesEventNote" 
},
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listEvents", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listEventsByLabels", "carriers": 
[ "list" ] }, { "option": "operation", "value": "getEvent", "carriers": [ 
"pojo", "null" ] }, { "option": "operation", "value": "createEvent", 
"carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.events.v1.Event" }, { "option": "operation", 
"value":  [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-hpa.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-hpa.json
index 8b26f93e42ee..6db3c55be0a2 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-hpa.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-hpa.json
@@ -38,6 +38,11 @@
     "CamelKubernetesEventAction": { "index": 5, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler", 
"description": "The HorizontalPodAutoscaler that changed, with the action 
(ADDED, MODIFIED or DELETED) in the CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the 
HorizontalPodAutoscaler in CamelKubernetesHPAName and its 
HorizontalPodAutoscalerSpec in CamelKubernetesHPASpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listHPA", "carriers": [ "list" 
] }, { "option": "operation", "value": "listHPAByLabels", "carriers": [ "list" 
] }, { "option": "operation", "value": "getHPA", "carriers": [ "pojo", "null" ] 
}, { "option": "operation", "value": "createHPA", "carriers": [ "pojo" ], 
"javaType": 
"io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler" }, { 
"option": "operatio [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-job.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-job.json
index 049e675e5827..ecc898fd2e91 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-job.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-job.json
@@ -36,6 +36,10 @@
     "CamelKubernetesJobLabels": { "index": 4, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Job labels.", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_JOB_LABELS"
 },
     "CamelKubernetesJobAnnotations": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The Job annotations.", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_JOB_ANNOTATIONS"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Job in 
CamelKubernetesJobName and its JobSpec in CamelKubernetesJobSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "unchanged" ], 
"byOption": [ { "option": "operation", "value": "listJob", "carriers": [ "list" 
] }, { "option": "operation", "value": "listJobByLabels", "carriers": [ "list" 
] }, { "option": "operation", "value": "getJob", "carriers": [ "pojo", "null" ] 
}, { "option": "operation", "value": "createJob", "carriers": [ "pojo" ], 
"javaType": "io.fabric8.kubernetes.api.model.batch.v1.Job" }, { "option": 
"operation", "value": "updateJo [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-namespaces.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-namespaces.json
index cffb66a00d59..423546531296 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-namespaces.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-namespaces.json
@@ -37,6 +37,11 @@
     "CamelKubernetesEventAction": { "index": 4, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 5, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.Namespace", "description": "The Namespace that 
changed, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Namespace in 
CamelKubernetesNamespaceName and its labels as a Map in 
CamelKubernetesNamespaceLabels" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listNamespaces", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listNamespacesByLabels", 
"carriers": [ "list" ] }, { "option": "operation", "value": "getNamespace", 
"carriers": [ "pojo", "null" ] }, { "option": "operation", "value": 
"createNamespace", "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.Namespace" }, { "option": "operation", [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-nodes.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-nodes.json
index f6ae079b2d27..3d623bc4b324 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-nodes.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-nodes.json
@@ -37,6 +37,11 @@
     "CamelKubernetesEventAction": { "index": 4, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 5, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.Node", "description": "The Node that changed, 
with the action (ADDED, MODIFIED or DELETED) in the CamelKubernetesEventAction 
header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Node in 
CamelKubernetesNodeName and its NodeSpec in CamelKubernetesNodeSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listNodes", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listNodesByLabels", "carriers": 
[ "list" ] }, { "option": "operation", "value": "getNode", "carriers": [ 
"pojo", "null" ] }, { "option": "operation", "value": "createNode", "carriers": 
[ "pojo" ], "javaType": "io.fabric8.kubernetes.api.model.Node" }, { "option": 
"operation", "value": "updateNode", " [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-pods.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-pods.json
index 12838d01b47a..704d2d8695b9 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-pods.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-pods.json
@@ -38,6 +38,11 @@
     "CamelKubernetesEventAction": { "index": 5, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.Pod", "description": "The Pod that changed, 
with the action (ADDED, MODIFIED or DELETED) in the CamelKubernetesEventAction 
header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Pod in 
CamelKubernetesPodName and its PodSpec in CamelKubernetesPodSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listPods", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listPodsByLabels", "carriers": [ 
"list" ] }, { "option": "operation", "value": "getPod", "carriers": [ "pojo", 
"null" ] }, { "option": "operation", "value": "createPod", "carriers": [ "pojo" 
], "javaType": "io.fabric8.kubernetes.api.model.Pod" }, { "option": 
"operation", "value": "updatePod", "carrie [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/config_maps/kubernetes-config-maps.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/config_maps/kubernetes-config-maps.json
index 5c79f7d3881f..0b45118af6e8 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/config_maps/kubernetes-config-maps.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/config_maps/kubernetes-config-maps.json
@@ -39,6 +39,11 @@
     "CamelKubernetesEventAction": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.ConfigMap", "description": "The ConfigMap that 
changed, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the ConfigMap in 
CamelKubernetesConfigMapName and its data as a Map in 
CamelKubernetesConfigData" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listConfigMaps", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listConfigMapsByLabels", 
"carriers": [ "list" ] }, { "option": "operation", "value": "getConfigMap", 
"carriers": [ "pojo", "null" ] }, { "option": "operation", "value": 
"createConfigMap", "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.ConfigMap" }, { "option": "operation", [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
index 18409640832f..d51d3a5c8998 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
@@ -35,6 +35,10 @@
     "CamelKubernetesCronJobSpec": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a Job.", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_SPEC"
 },
     "CamelKubernetesCronJobAnnotations": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The Cron Job 
annotations.", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_ANNOTATIONS"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the CronJob in 
CamelKubernetesCronJobName and its CronJobSpec in CamelKubernetesCronJobSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "unchanged" ], 
"byOption": [ { "option": "operation", "value": "listCronJob", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listCronJobByLabels", 
"carriers": [ "list" ] }, { "option": "operation", "value": "getCronJob", 
"carriers": [ "pojo", "null" ] }, { "option": "operation", "value": 
"createCronJob", "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.batch.v1.CronJob" }, { "option": "operation" 
[...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/customresources/kubernetes-custom-resources.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/customresources/kubernetes-custom-resources.json
index d81b4cf7ecc7..029a197eaa44 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/customresources/kubernetes-custom-resources.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/customresources/kubernetes-custom-resources.json
@@ -44,6 +44,11 @@
     "CamelKubernetesCRDInstance": { "index": 11, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The manifest of the CRD resource to 
create as JSON string", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRD_INSTANCE"
 },
     "CamelKubernetesDeleteResult": { "index": 12, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The result of the delete operation", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DELETE_RESULT"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "text" ], "javaType": "java.lang.String", 
"format": "json", "description": "The custom resource that changed as JSON 
text, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesCRDEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the instance in 
CamelKubernetesCRDInstanceName and, for createCustomResource and 
updateCustomResource, the instance as JSON text in CamelKubernetesCRDInstance" 
},
+    "producerOut": { "carriers": [ "list", "map", "pojo", "unchanged" ], 
"byOption": [ { "option": "operation", "value": "listCustomResources", 
"carriers": [ "list" ], "javaType": "org.apache.camel.util.json.JsonArray" }, { 
"option": "operation", "value": "listCustomResourcesByLabels", "carriers": [ 
"list" ], "javaType": "org.apache.camel.util.json.JsonArray" }, { "option": 
"operation", "value": "getCustomResource", "carriers": [ "map" ], "javaType": 
"org.apache.camel.util.json.JsonObjec [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
index 6967cbb660d6..655d5368a161 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
@@ -40,6 +40,11 @@
     "CamelKubernetesEventAction": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 8, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.apps.Deployment", "description": "The 
Deployment that changed, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Deployment in 
CamelKubernetesDeploymentName, its DeploymentSpec in 
CamelKubernetesDeploymentSpec and the replicas of scaleDeployment in 
CamelKubernetesDeploymentReplicas" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listDeployments", "carriers": 
[ "list" ] }, { "option": "operation", "value": "listDeploymentsByLabels", 
"carriers": [ "list" ] }, { "option": "operation", "value": "getDeployment", 
"carriers": [ "pojo", "null" ] }, { "option": "operation", "value": 
"createDeployment", "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.apps.Deployment" }, { "option": "o [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/events/kubernetes-events.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/events/kubernetes-events.json
index ddee54960f36..2e387a48d8d7 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/events/kubernetes-events.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/events/kubernetes-events.json
@@ -45,6 +45,11 @@
     "CamelKubernetesEventName": { "index": 12, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The event name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_NAME"
 },
     "CamelKubernetesEventTimestamp": { "index": 14, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.events.v1.Event", "description": "The Event 
that changed, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "createEvent and 
updateEvent use an EventBuilder of fabric8 from the body, when the body is one; 
otherwise the body is not used and the Event is built from the headers, such as 
its name in CamelKubernetesEventName and its note in CamelKubernetesEventNote" 
},
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listEvents", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listEventsByLabels", "carriers": 
[ "list" ] }, { "option": "operation", "value": "getEvent", "carriers": [ 
"pojo", "null" ] }, { "option": "operation", "value": "createEvent", 
"carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.events.v1.Event" }, { "option": "operation", 
"value":  [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/hpa/kubernetes-hpa.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/hpa/kubernetes-hpa.json
index 8b26f93e42ee..6db3c55be0a2 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/hpa/kubernetes-hpa.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/hpa/kubernetes-hpa.json
@@ -38,6 +38,11 @@
     "CamelKubernetesEventAction": { "index": 5, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler", 
"description": "The HorizontalPodAutoscaler that changed, with the action 
(ADDED, MODIFIED or DELETED) in the CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the 
HorizontalPodAutoscaler in CamelKubernetesHPAName and its 
HorizontalPodAutoscalerSpec in CamelKubernetesHPASpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listHPA", "carriers": [ "list" 
] }, { "option": "operation", "value": "listHPAByLabels", "carriers": [ "list" 
] }, { "option": "operation", "value": "getHPA", "carriers": [ "pojo", "null" ] 
}, { "option": "operation", "value": "createHPA", "carriers": [ "pojo" ], 
"javaType": 
"io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler" }, { 
"option": "operatio [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/job/kubernetes-job.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/job/kubernetes-job.json
index 049e675e5827..ecc898fd2e91 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/job/kubernetes-job.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/job/kubernetes-job.json
@@ -36,6 +36,10 @@
     "CamelKubernetesJobLabels": { "index": 4, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Job labels.", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_JOB_LABELS"
 },
     "CamelKubernetesJobAnnotations": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The Job annotations.", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_JOB_ANNOTATIONS"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Job in 
CamelKubernetesJobName and its JobSpec in CamelKubernetesJobSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "unchanged" ], 
"byOption": [ { "option": "operation", "value": "listJob", "carriers": [ "list" 
] }, { "option": "operation", "value": "listJobByLabels", "carriers": [ "list" 
] }, { "option": "operation", "value": "getJob", "carriers": [ "pojo", "null" ] 
}, { "option": "operation", "value": "createJob", "carriers": [ "pojo" ], 
"javaType": "io.fabric8.kubernetes.api.model.batch.v1.Job" }, { "option": 
"operation", "value": "updateJo [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/namespaces/kubernetes-namespaces.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/namespaces/kubernetes-namespaces.json
index cffb66a00d59..423546531296 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/namespaces/kubernetes-namespaces.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/namespaces/kubernetes-namespaces.json
@@ -37,6 +37,11 @@
     "CamelKubernetesEventAction": { "index": 4, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 5, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.Namespace", "description": "The Namespace that 
changed, with the action (ADDED, MODIFIED or DELETED) in the 
CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Namespace in 
CamelKubernetesNamespaceName and its labels as a Map in 
CamelKubernetesNamespaceLabels" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listNamespaces", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listNamespacesByLabels", 
"carriers": [ "list" ] }, { "option": "operation", "value": "getNamespace", 
"carriers": [ "pojo", "null" ] }, { "option": "operation", "value": 
"createNamespace", "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.Namespace" }, { "option": "operation", [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/nodes/kubernetes-nodes.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/nodes/kubernetes-nodes.json
index f6ae079b2d27..3d623bc4b324 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/nodes/kubernetes-nodes.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/nodes/kubernetes-nodes.json
@@ -37,6 +37,11 @@
     "CamelKubernetesEventAction": { "index": 4, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 5, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.Node", "description": "The Node that changed, 
with the action (ADDED, MODIFIED or DELETED) in the CamelKubernetesEventAction 
header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Node in 
CamelKubernetesNodeName and its NodeSpec in CamelKubernetesNodeSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listNodes", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listNodesByLabels", "carriers": 
[ "list" ] }, { "option": "operation", "value": "getNode", "carriers": [ 
"pojo", "null" ] }, { "option": "operation", "value": "createNode", "carriers": 
[ "pojo" ], "javaType": "io.fabric8.kubernetes.api.model.Node" }, { "option": 
"operation", "value": "updateNode", " [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/pods/kubernetes-pods.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/pods/kubernetes-pods.json
index 12838d01b47a..704d2d8695b9 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/pods/kubernetes-pods.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/pods/kubernetes-pods.json
@@ -38,6 +38,11 @@
     "CamelKubernetesEventAction": { "index": 5, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
     "CamelKubernetesEventTimestamp": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
+  "bodyTypes": {
+    "consumerOut": { "carriers": [ "pojo" ], "javaType": 
"io.fabric8.kubernetes.api.model.Pod", "description": "The Pod that changed, 
with the action (ADDED, MODIFIED or DELETED) in the CamelKubernetesEventAction 
header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operations take their input from headers, such as the name of the Pod in 
CamelKubernetesPodName and its PodSpec in CamelKubernetesPodSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listPods", "carriers": [ 
"list" ] }, { "option": "operation", "value": "listPodsByLabels", "carriers": [ 
"list" ] }, { "option": "operation", "value": "getPod", "carriers": [ "pojo", 
"null" ] }, { "option": "operation", "value": "createPod", "carriers": [ "pojo" 
], "javaType": "io.fabric8.kubernetes.api.model.Pod" }, { "option": 
"operation", "value": "updatePod", "carrie [...]
+  },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
     "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api 
Version", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "The Kubernetes API 
Version to use" },
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsEndpoint.java
index 500e4784a7ef..ff8b466fb3bf 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_CONFIG_MAPS;
@@ -33,6 +36,32 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_C
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_CONFIG_MAPS, title = 
"Kubernetes ConfigMap",
              syntax = "kubernetes-config-maps:masterUrl",
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.kubernetes.api.model.ConfigMap",
+                                   description = "The ConfigMap that changed, 
with the action (ADDED, MODIFIED or DELETED) in the "
+                                                 + "CamelKubernetesEventAction 
header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the "
+                                                + "ConfigMap in 
CamelKubernetesConfigMapName and its data as a Map in "
+                                                + "CamelKubernetesConfigData"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listConfigMaps",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listConfigMapsByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getConfigMap",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createConfigMap",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ConfigMap"),
+                                           @BodyType.When(option = 
"operation", value = "updateConfigMap",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ConfigMap"),
+                                           @BodyType.When(option = 
"operation", value = "deleteConfigMap",
+                                                          carriers = 
Carrier.VALUE, javaType = "java.lang.Boolean") },
+                                   description = "A List of the ConfigMaps for 
the list operations, the ConfigMap of get, create and "
+                                                 + "update (null when 
getConfigMap finds none), and a Boolean of whether deleteConfigMap "
+                                                 + "deleted it"))
 public class KubernetesConfigMapsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesConfigMapsEndpoint(String uri, 
KubernetesConfigMapsComponent component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
index eec046ad2e9e..e30102cc994d 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_CRON_JOB;
@@ -33,6 +36,27 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_C
 @UriEndpoint(firstVersion = "4.3.0", scheme = SCHEME_CRON_JOB, title = 
"Kubernetes Cronjob",
              syntax = "kubernetes-cronjob:masterUrl", producerOnly = true,
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the "
+                                                + "CronJob in 
CamelKubernetesCronJobName and its CronJobSpec in "
+                                                + 
"CamelKubernetesCronJobSpec"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.UNCHANGED },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listCronJob", carriers = Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listCronJobByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getCronJob",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createCronJob",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.batch.v1.CronJob"),
+                                           @BodyType.When(option = 
"operation", value = "updateCronJob",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.batch.v1.CronJob"),
+                                           @BodyType.When(option = 
"operation", value = "deleteCronJob",
+                                                          carriers = 
Carrier.UNCHANGED) },
+                                   description = "A List of the CronJobs for 
the list operations, the CronJob of get, create and update "
+                                                 + "(null when getCronJob 
finds none), and the body as it was after deleteCronJob"))
 public class KubernetesCronJobEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesCronJobEndpoint(String uri, KubernetesCronJobComponent 
component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesEndpoint.java
index 3ba8ec7b7889..efcee81ca56c 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_CUSTOM_RESOURCES;
@@ -33,6 +36,37 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_C
 @UriEndpoint(firstVersion = "3.7.0", scheme = SCHEME_CUSTOM_RESOURCES, title = 
"Kubernetes Custom Resources",
              syntax = "kubernetes-custom-resources:masterUrl", category = { 
Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.TEXT, javaType = 
"java.lang.String", format = "json",
+                                   description = "The custom resource that 
changed as JSON text, with the action (ADDED, MODIFIED or"
+                                                 + " DELETED) in the 
CamelKubernetesCRDEventAction header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the"
+                                                + " instance in 
CamelKubernetesCRDInstanceName and, for createCustomResource and"
+                                                + " updateCustomResource, the 
instance as JSON text in CamelKubernetesCRDInstance"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.MAP, 
Carrier.POJO, Carrier.UNCHANGED },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listCustomResources",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"org.apache.camel.util.json.JsonArray"),
+                                           @BodyType.When(option = 
"operation", value = "listCustomResourcesByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"org.apache.camel.util.json.JsonArray"),
+                                           @BodyType.When(option = 
"operation", value = "getCustomResource",
+                                                          carriers = 
Carrier.MAP,
+                                                          javaType = 
"org.apache.camel.util.json.JsonObject"),
+                                           @BodyType.When(option = 
"operation", value = "createCustomResource",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.GenericKubernetesResource"),
+                                           @BodyType.When(option = 
"operation", value = "updateCustomResource",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.GenericKubernetesResource"),
+                                           @BodyType.When(option = 
"operation", value = "deleteCustomResource",
+                                                          carriers = 
Carrier.UNCHANGED) },
+                                   description = "A JsonArray of the 
GenericKubernetesResource of the instances for the list"
+                                                 + " operations, a JsonObject 
of the instance for getCustomResource, and the"
+                                                 + " GenericKubernetesResource 
of create and update (an empty one when it already"
+                                                 + " exists). 
deleteCustomResource leaves the body as it was, with whether it deleted"
+                                                 + " the instance in the 
CamelKubernetesDeleteResult header"))
 public class KubernetesCustomResourcesEndpoint extends 
AbstractKubernetesEndpoint {
 
     public KubernetesCustomResourcesEndpoint(String uri, 
KubernetesCustomResourcesComponent component,
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsEndpoint.java
index 4dd7542bc7aa..94835ba279aa 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_DEPLOYMENTS;
@@ -33,6 +36,36 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_D
 @UriEndpoint(firstVersion = "2.20.0", scheme = SCHEME_DEPLOYMENTS, title = 
"Kubernetes Deployments",
              syntax = "kubernetes-deployments:masterUrl", category = { 
Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.kubernetes.api.model.apps.Deployment",
+                                   description = "The Deployment that changed, 
with the action (ADDED, MODIFIED or DELETED) in the "
+                                                 + "CamelKubernetesEventAction 
header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the "
+                                                + "Deployment in 
CamelKubernetesDeploymentName, its DeploymentSpec in "
+                                                + 
"CamelKubernetesDeploymentSpec and the replicas of scaleDeployment in "
+                                                + 
"CamelKubernetesDeploymentReplicas"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listDeployments",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listDeploymentsByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getDeployment",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createDeployment",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.apps.Deployment"),
+                                           @BodyType.When(option = 
"operation", value = "updateDeployment",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.apps.Deployment"),
+                                           @BodyType.When(option = 
"operation", value = "deleteDeployment",
+                                                          carriers = 
Carrier.VALUE, javaType = "java.lang.Boolean"),
+                                           @BodyType.When(option = 
"operation", value = "scaleDeployment",
+                                                          carriers = 
Carrier.VALUE, javaType = "java.lang.Integer") },
+                                   description = "A List of the Deployments 
for the list operations, the Deployment of get, create and "
+                                                 + "update (null when 
getDeployment finds none), and a Boolean of whether deleteDeployment "
+                                                 + "deleted it. 
scaleDeployment gives the number of replicas in the status of the "
+                                                 + "Deployment"))
 public class KubernetesDeploymentsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesDeploymentsEndpoint(String uri, 
KubernetesDeploymentsComponent component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsEndpoint.java
index 30ec7baf7f24..f782dbe0502b 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_EVENTS;
@@ -33,6 +36,28 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_E
 @UriEndpoint(firstVersion = "3.20.0", scheme = SCHEME_EVENTS, title = 
"Kubernetes Event",
              syntax = "kubernetes-events:masterUrl",
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.kubernetes.api.model.events.v1.Event",
+                                   description = "The Event that changed, with 
the action (ADDED, MODIFIED or DELETED) in the "
+                                                 + "CamelKubernetesEventAction 
header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "createEvent and updateEvent 
use an EventBuilder of fabric8 from the body, when the "
+                                                + "body is one; otherwise the 
body is not used and the Event is built from the headers, "
+                                                + "such as its name in 
CamelKubernetesEventName and its note in CamelKubernetesEventNote"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listEvents", carriers = Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listEventsByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getEvent",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createEvent", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.events.v1.Event"),
+                                           @BodyType.When(option = 
"operation", value = "updateEvent", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.events.v1.Event"),
+                                           @BodyType.When(option = 
"operation", value = "deleteEvent", carriers = Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of the Events for the 
list operations, the Event of get, create and update "
+                                                 + "(null when getEvent finds 
none), and a Boolean of whether deleteEvent deleted it"))
 public class KubernetesEventsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesEventsEndpoint(String uri, KubernetesEventsComponent 
component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAEndpoint.java
index 94d71ea6a306..b55e564043e7 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_HPA;
@@ -32,6 +35,30 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_H
  */
 @UriEndpoint(firstVersion = "2.23.0", scheme = SCHEME_HPA, title = "Kubernetes 
HPA", syntax = "kubernetes-hpa:masterUrl",
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO,
+                                   javaType = 
"io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler",
+                                   description = "The HorizontalPodAutoscaler 
that changed, with the action (ADDED, MODIFIED or DELETED) "
+                                                 + "in the 
CamelKubernetesEventAction header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the "
+                                                + "HorizontalPodAutoscaler in 
CamelKubernetesHPAName and its HorizontalPodAutoscalerSpec "
+                                                + "in CamelKubernetesHPASpec"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listHPA", carriers = Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listHPAByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getHPA",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createHPA", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler"),
+                                           @BodyType.When(option = 
"operation", value = "updateHPA", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler"),
+                                           @BodyType.When(option = 
"operation", value = "deleteHPA", carriers = Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of the 
HorizontalPodAutoscalers for the list operations, the "
+                                                 + "HorizontalPodAutoscaler of 
get, create and update (null when getHPA finds none), and a "
+                                                 + "Boolean of whether 
deleteHPA deleted it"))
 public class KubernetesHPAEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesHPAEndpoint(String uri, KubernetesHPAComponent component, 
KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
index 47f5d7656192..47bf07ef432b 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_JOB;
@@ -32,6 +35,24 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_J
  */
 @UriEndpoint(firstVersion = "2.23.0", scheme = SCHEME_JOB, title = "Kubernetes 
Job", syntax = "kubernetes-job:masterUrl",
              category = { Category.CONTAINER, Category.CLOUD }, producerOnly = 
true, headersClass = KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the Job in "
+                                                + "CamelKubernetesJobName and 
its JobSpec in CamelKubernetesJobSpec"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.UNCHANGED },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listJob", carriers = Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listJobByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getJob",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createJob", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.batch.v1.Job"),
+                                           @BodyType.When(option = 
"operation", value = "updateJob", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.batch.v1.Job"),
+                                           @BodyType.When(option = 
"operation", value = "deleteJob",
+                                                          carriers = 
Carrier.UNCHANGED) },
+                                   description = "A List of the Jobs for the 
list operations, the Job of get, create and update (null "
+                                                 + "when getJob finds none), 
and the body as it was after deleteJob"))
 public class KubernetesJobEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesJobEndpoint(String uri, KubernetesJobComponent component, 
KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/namespaces/KubernetesNamespacesEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/namespaces/KubernetesNamespacesEndpoint.java
index aa5c5f59805e..6c8259d5b834 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/namespaces/KubernetesNamespacesEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/namespaces/KubernetesNamespacesEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_NAMESPACES;
@@ -33,6 +36,32 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_N
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_NAMESPACES, title = 
"Kubernetes Namespaces",
              syntax = "kubernetes-namespaces:masterUrl", category = { 
Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.kubernetes.api.model.Namespace",
+                                   description = "The Namespace that changed, 
with the action (ADDED, MODIFIED or DELETED) in the "
+                                                 + "CamelKubernetesEventAction 
header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the "
+                                                + "Namespace in 
CamelKubernetesNamespaceName and its labels as a Map in "
+                                                + 
"CamelKubernetesNamespaceLabels"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listNamespaces",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listNamespacesByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getNamespace",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createNamespace",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Namespace"),
+                                           @BodyType.When(option = 
"operation", value = "updateNamespace",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Namespace"),
+                                           @BodyType.When(option = 
"operation", value = "deleteNamespace",
+                                                          carriers = 
Carrier.VALUE, javaType = "java.lang.Boolean") },
+                                   description = "A List of the Namespaces for 
the list operations, the Namespace of get, create and "
+                                                 + "update (null when 
getNamespace finds none), and a Boolean of whether deleteNamespace "
+                                                 + "deleted it"))
 public class KubernetesNamespacesEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesNamespacesEndpoint(String uri, 
KubernetesNamespacesComponent component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesEndpoint.java
index 68598f27d1ec..5b335576cb64 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_NODES;
@@ -33,6 +36,27 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_N
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_NODES, title = 
"Kubernetes Nodes",
              syntax = "kubernetes-nodes:masterUrl", category = { 
Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.kubernetes.api.model.Node",
+                                   description = "The Node that changed, with 
the action (ADDED, MODIFIED or DELETED) in the "
+                                                 + "CamelKubernetesEventAction 
header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the Node "
+                                                + "in CamelKubernetesNodeName 
and its NodeSpec in CamelKubernetesNodeSpec"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listNodes", carriers = Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listNodesByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getNode",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createNode", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Node"),
+                                           @BodyType.When(option = 
"operation", value = "updateNode", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Node"),
+                                           @BodyType.When(option = 
"operation", value = "deleteNode", carriers = Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of the Nodes for the 
list operations, the Node of get, create and update (null "
+                                                 + "when getNode finds none), 
and a Boolean of whether deleteNode deleted it"))
 public class KubernetesNodesEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesNodesEndpoint(String uri, KubernetesNodesComponent 
component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsEndpoint.java
index 2ad0397a532c..0af5e8c9d1b0 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsEndpoint.java
@@ -23,6 +23,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.BodyType;
+import org.apache.camel.spi.BodyType.Carrier;
+import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.UriEndpoint;
 
 import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_PODS;
@@ -33,6 +36,27 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_P
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_PODS, title = 
"Kubernetes Pods",
              syntax = "kubernetes-pods:masterUrl", category = { 
Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.kubernetes.api.model.Pod",
+                                   description = "The Pod that changed, with 
the action (ADDED, MODIFIED or DELETED) in the "
+                                                 + "CamelKubernetesEventAction 
header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operations take 
their input from headers, such as the name of the Pod in "
+                                                + "CamelKubernetesPodName and 
its PodSpec in CamelKubernetesPodSpec"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listPods", carriers = Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "listPodsByLabels",
+                                                          carriers = 
Carrier.LIST),
+                                           @BodyType.When(option = 
"operation", value = "getPod",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL }),
+                                           @BodyType.When(option = 
"operation", value = "createPod", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Pod"),
+                                           @BodyType.When(option = 
"operation", value = "updatePod", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Pod"),
+                                           @BodyType.When(option = 
"operation", value = "deletePod", carriers = Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of the Pods for the 
list operations, the Pod of get, create and update (null "
+                                                 + "when getPod finds none), 
and a Boolean of whether deletePod deleted it"))
 public class KubernetesPodsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesPodsEndpoint(String uri, KubernetesPodsComponent 
component, KubernetesConfiguration config) {

Reply via email to