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 12beac978bf55741ed33df488a24a91405025fc2
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Oct 24 19:57:04 2026 +0200

    CAMEL-24961: Catalog body types for seven more kubernetes components and 
the three openshift components (#28400)
    
    Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../kubernetes-persistent-volumes-claims.json      |  4 ++
 .../components/kubernetes-persistent-volumes.json  |  4 ++
 .../kubernetes-replication-controllers.json        |  5 +++
 .../components/kubernetes-resources-quota.json     |  4 ++
 .../catalog/components/kubernetes-secrets.json     |  4 ++
 .../components/kubernetes-service-accounts.json    |  4 ++
 .../catalog/components/kubernetes-services.json    |  5 +++
 .../components/openshift-build-configs.json        |  4 ++
 .../camel/catalog/components/openshift-builds.json |  4 ++
 .../components/openshift-deploymentconfigs.json    |  5 +++
 .../kubernetes-persistent-volumes.json             |  4 ++
 .../kubernetes-persistent-volumes-claims.json      |  4 ++
 .../kubernetes-replication-controllers.json        |  5 +++
 .../kubernetes-resources-quota.json                |  4 ++
 .../kubernetes/secrets/kubernetes-secrets.json     |  4 ++
 .../kubernetes-service-accounts.json               |  4 ++
 .../kubernetes/services/kubernetes-services.json   |  5 +++
 .../build_configs/openshift-build-configs.json     |  4 ++
 .../openshift/builds/openshift-builds.json         |  4 ++
 .../openshift-deploymentconfigs.json               |  5 +++
 .../KubernetesPersistentVolumesEndpoint.java       | 22 +++++++++++
 .../KubernetesPersistentVolumesClaimsEndpoint.java | 35 +++++++++++++++++
 .../KubernetesReplicationControllersEndpoint.java  | 44 +++++++++++++++++++++
 .../KubernetesResourcesQuotaEndpoint.java          | 34 ++++++++++++++++
 .../secrets/KubernetesSecretsEndpoint.java         | 29 ++++++++++++++
 .../KubernetesServiceAccountsEndpoint.java         | 34 ++++++++++++++++
 .../services/KubernetesServicesEndpoint.java       | 34 ++++++++++++++++
 .../OpenshiftBuildConfigsEndpoint.java             | 23 +++++++++++
 .../openshift/builds/OpenshiftBuildsEndpoint.java  | 21 ++++++++++
 .../OpenshiftDeploymentConfigsEndpoint.java        | 45 ++++++++++++++++++++++
 30 files changed, 407 insertions(+)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-persistent-volumes-claims.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-persistent-volumes-claims.json
index a617e37acbe0..7be0f607fca9 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-persistent-volumes-claims.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-persistent-volumes-claims.json
@@ -35,6 +35,10 @@
     "CamelKubernetesPersistentVolumeClaimName": { "index": 3, "kind": 
"header", "displayName": "", "group": "producer", "label": "producer", 
"required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
persistent volume claim name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_PERSISTENT_VOLUME_CLAIM_NAME"
 },
     "CamelKubernetesPersistentVolumeClaimSpec": { "index": 4, "kind": 
"header", "displayName": "", "group": "producer", "label": "producer", 
"required": false, "javaType": 
"io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The spec for a persistent volume claim", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_PERSISTENT_VOLUME_CLAIM_SPEC"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesPersistentVolumeClaimName, the labels in 
CamelKubernetesPersistentVolumesClaimsLabels and the PersistentVolumeClaimSpec 
in CamelKubernetesPersistentVolumeClaimSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listPersistentVolumesClaims", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolumeClaim>" }, { 
"option": "operation", "value": "listPersistentVolumesClaimsByLabels", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolumeClaim>" }, { 
"option": "operation", "value": "getPersistent [...]
+  },
   "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-persistent-volumes.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-persistent-volumes.json
index 151e8f90ab93..504609083699 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-persistent-volumes.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-persistent-volumes.json
@@ -33,6 +33,10 @@
     "CamelKubernetesPersistentVolumesLabels": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The persistent volume 
labels", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_PERSISTENT_VOLUMES_LABELS"
 },
     "CamelKubernetesPersistentVolumeName": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The persistent volume name", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_PERSISTENT_VOLUME_NAME"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the name in CamelKubernetesPersistentVolumeName 
and the labels in CamelKubernetesPersistentVolumesLabels" },
+    "producerOut": { "carriers": [ "list", "pojo", "null" ], "byOption": [ { 
"option": "operation", "value": "listPersistentVolumes", "carriers": [ "list" 
], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolume>" }, { 
"option": "operation", "value": "listPersistentVolumesByLabels", "carriers": [ 
"list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolume>" }, { 
"option": "operation", "value": "getPersistentVolume", "carriers": [ "pojo",  
[...]
+  },
   "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-replication-controllers.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-replication-controllers.json
index 1cfd606e72d9..f328bc09d4b9 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-replication-controllers.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-replication-controllers.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.ReplicationController", "description": "The 
ReplicationController that changed, one message per watch event, with the 
action (ADDED, MODIFIED, DELETED) in the CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesReplicationControllerName, the labels in 
CamelKubernetesReplicationControllersLabels, the ReplicationControllerSpec in 
CamelKubernetesReplicationControllerSpec and the replicas in 
CamelKubernetesReplicationControllerReplicas" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listReplicationControllers", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.ReplicationController>" }, { 
"option": "operation", "value": "listReplicationControllersByLabels", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.ReplicationController>" }, { 
"option": "operation", "value": "getReplicationC [...]
+  },
   "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-resources-quota.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-resources-quota.json
index 3079e02090e8..e778a278db0f 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-resources-quota.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-resources-quota.json
@@ -35,6 +35,10 @@
     "CamelKubernetesResourcesQuotaName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The resource quota name", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_RESOURCES_QUOTA_NAME"
 },
     "CamelKubernetesResourceQuotaSpec": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaSpec", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The spec for a resource quota", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_RESOURCE_QUOTA_SPEC"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesResourcesQuotaName, the labels in 
CamelKubernetesResourcesQuotaLabels and the ResourceQuotaSpec in 
CamelKubernetesResourceQuotaSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listResourcesQuota", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.ResourceQuota>" }, { "option": 
"operation", "value": "listResourcesQuotaByLabels", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.kubernetes.api.model.ResourceQuota>" }, 
{ "option": "operation", "value": "getResourceQuota", "carriers": [ "pojo", 
"null" [...]
+  },
   "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-secrets.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-secrets.json
index 84b96615d2b9..392532b546a2 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-secrets.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-secrets.json
@@ -36,6 +36,10 @@
     "CamelKubernetesSecret": { "index": 4, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"io.fabric8.kubernetes.api.model.Secret", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "A 
secret object", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_SECRET" },
     "CamelKubernetesSecretsAnnotations": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The secret annotations", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_SECRETS_ANNOTATIONS"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesSecretName, the labels in 
CamelKubernetesSecretsLabels and the Secret to create or update in 
CamelKubernetesSecret" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listSecrets", "carriers": [ 
"list" ], "javaType": "java.util.List<io.fabric8.kubernetes.api.model.Secret>" 
}, { "option": "operation", "value": "listSecretsByLabels", "carriers": [ 
"list" ], "javaType": "java.util.List<io.fabric8.kubernetes.api.model.Secret>" 
}, { "option": "operation", "value": "getSecret", "carriers": [ "pojo", "null" 
], "javaType": "io.fabric8.kuberne [...]
+  },
   "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-service-accounts.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-service-accounts.json
index ff9aff3e7834..733a79b9f281 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-service-accounts.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-service-accounts.json
@@ -35,6 +35,10 @@
     "CamelKubernetesServiceAccountName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The service account name", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_SERVICE_ACCOUNT_NAME"
 },
     "CamelKubernetesServiceAccount": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.ServiceAccount", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "A service account object", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_SERVICE_ACCOUNT"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesServiceAccountName, the labels in 
CamelKubernetesServiceAccountsLabels and the ServiceAccount to create or update 
in CamelKubernetesServiceAccount" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listServiceAccounts", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.ServiceAccount>" }, { "option": 
"operation", "value": "listServiceAccountsByLabels", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.kubernetes.api.model.ServiceAccount>" }, 
{ "option": "operation", "value": "getServiceAccount", "carriers": [ "pojo", " 
[...]
+  },
   "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-services.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-services.json
index cb9f20669925..b9aafb3b9b39 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-services.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-services.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.Service", "description": "The Service that 
changed, one message per watch event, with the action (ADDED, MODIFIED, 
DELETED) in the CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesServiceName, the labels in 
CamelKubernetesServiceLabels and the ServiceSpec in CamelKubernetesServiceSpec" 
},
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listServices", "carriers": [ 
"list" ], "javaType": "java.util.List<io.fabric8.kubernetes.api.model.Service>" 
}, { "option": "operation", "value": "listServicesByLabels", "carriers": [ 
"list" ], "javaType": "java.util.List<io.fabric8.kubernetes.api.model.Service>" 
}, { "option": "operation", "value": "getService", "carriers": [ "pojo", "null" 
], "javaType": "io.fabric8.ku [...]
+  },
   "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/openshift-build-configs.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-build-configs.json
index 322c5c7f298e..1e122503e63b 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-build-configs.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-build-configs.json
@@ -34,6 +34,10 @@
     "CamelKubernetesBuildConfigsLabels": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The OpenShift Config Build 
labels", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_BUILD_CONFIGS_LABELS"
 },
     "CamelKubernetesBuildConfigName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Openshift Config Build name", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_BUILD_CONFIG_NAME"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesBuildConfigName and the labels in 
CamelKubernetesBuildConfigsLabels. listBuildConfigs does not read the namespace 
header: it lists the build configs of all namespaces" },
+    "producerOut": { "carriers": [ "list", "pojo", "null" ], "byOption": [ { 
"option": "operation", "value": "listBuildConfigs", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.openshift.api.model.BuildConfig>" }, { 
"option": "operation", "value": "listBuildConfigsByLabels", "carriers": [ 
"list" ], "javaType": 
"java.util.List<io.fabric8.openshift.api.model.BuildConfig>" }, { "option": 
"operation", "value": "getBuildConfig", "carriers": [ "pojo", "null" ], 
"javaType": "io.f [...]
+  },
   "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/openshift-builds.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-builds.json
index c5feb32d587b..04b0baf9f398 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-builds.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-builds.json
@@ -34,6 +34,10 @@
     "CamelKubernetesBuildsLabels": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The OpenShift build 
labels", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_BUILDS_LABELS"
 },
     "CamelKubernetesBuildName": { "index": 3, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"String", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The OpenShift build name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_BUILD_NAME"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesBuildName and the labels in 
CamelKubernetesBuildsLabels. listBuilds does not read the namespace header: it 
lists the builds of all namespaces" },
+    "producerOut": { "carriers": [ "list", "pojo", "null" ], "byOption": [ { 
"option": "operation", "value": "listBuilds", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.openshift.api.model.Build>" }, { 
"option": "operation", "value": "listBuildsByLabels", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.openshift.api.model.Build>" }, { 
"option": "operation", "value": "getBuild", "carriers": [ "pojo", "null" ], 
"javaType": "io.fabric8.openshift.api.model.Bui [...]
+  },
   "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/openshift-deploymentconfigs.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-deploymentconfigs.json
index 013c1722b4d6..3867981619cf 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-deploymentconfigs.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-deploymentconfigs.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.openshift.api.model.DeploymentConfig", "description": "The 
DeploymentConfig that changed, one message per watch event, with the action 
(ADDED, MODIFIED, DELETED) in the CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesDeploymentName, the labels in 
CamelKubernetesDeploymentsLabels, the DeploymentConfigSpec in 
CamelKubernetesDeploymentConfigSpec and the replicas in 
CamelKubernetesDeploymentReplicas. The list and get operations do not read the 
namespace  [...]
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listDeploymentConfigs", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.openshift.api.model.DeploymentConfig>" }, { 
"option": "operation", "value": "listDeploymentConfigsByLabels", "carriers": [ 
"list" ], "javaType": 
"java.util.List<io.fabric8.openshift.api.model.DeploymentConfig>" }, { 
"option": "operation", "value": "getDeploymentConfig", "carriers": [ " [...]
+  },
   "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/persistent_volumes/kubernetes-persistent-volumes.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/persistent_volumes/kubernetes-persistent-volumes.json
index 151e8f90ab93..504609083699 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/persistent_volumes/kubernetes-persistent-volumes.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/persistent_volumes/kubernetes-persistent-volumes.json
@@ -33,6 +33,10 @@
     "CamelKubernetesPersistentVolumesLabels": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The persistent volume 
labels", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_PERSISTENT_VOLUMES_LABELS"
 },
     "CamelKubernetesPersistentVolumeName": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The persistent volume name", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_PERSISTENT_VOLUME_NAME"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the name in CamelKubernetesPersistentVolumeName 
and the labels in CamelKubernetesPersistentVolumesLabels" },
+    "producerOut": { "carriers": [ "list", "pojo", "null" ], "byOption": [ { 
"option": "operation", "value": "listPersistentVolumes", "carriers": [ "list" 
], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolume>" }, { 
"option": "operation", "value": "listPersistentVolumesByLabels", "carriers": [ 
"list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolume>" }, { 
"option": "operation", "value": "getPersistentVolume", "carriers": [ "pojo",  
[...]
+  },
   "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/persistent_volumes_claims/kubernetes-persistent-volumes-claims.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/persistent_volumes_claims/kubernetes-persistent-volumes-claims.json
index a617e37acbe0..7be0f607fca9 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/persistent_volumes_claims/kubernetes-persistent-volumes-claims.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/persistent_volumes_claims/kubernetes-persistent-volumes-claims.json
@@ -35,6 +35,10 @@
     "CamelKubernetesPersistentVolumeClaimName": { "index": 3, "kind": 
"header", "displayName": "", "group": "producer", "label": "producer", 
"required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
persistent volume claim name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_PERSISTENT_VOLUME_CLAIM_NAME"
 },
     "CamelKubernetesPersistentVolumeClaimSpec": { "index": 4, "kind": 
"header", "displayName": "", "group": "producer", "label": "producer", 
"required": false, "javaType": 
"io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The spec for a persistent volume claim", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_PERSISTENT_VOLUME_CLAIM_SPEC"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesPersistentVolumeClaimName, the labels in 
CamelKubernetesPersistentVolumesClaimsLabels and the PersistentVolumeClaimSpec 
in CamelKubernetesPersistentVolumeClaimSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listPersistentVolumesClaims", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolumeClaim>" }, { 
"option": "operation", "value": "listPersistentVolumesClaimsByLabels", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolumeClaim>" }, { 
"option": "operation", "value": "getPersistent [...]
+  },
   "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/replication_controllers/kubernetes-replication-controllers.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/replication_controllers/kubernetes-replication-controllers.json
index 1cfd606e72d9..f328bc09d4b9 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/replication_controllers/kubernetes-replication-controllers.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/replication_controllers/kubernetes-replication-controllers.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.ReplicationController", "description": "The 
ReplicationController that changed, one message per watch event, with the 
action (ADDED, MODIFIED, DELETED) in the CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesReplicationControllerName, the labels in 
CamelKubernetesReplicationControllersLabels, the ReplicationControllerSpec in 
CamelKubernetesReplicationControllerSpec and the replicas in 
CamelKubernetesReplicationControllerReplicas" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listReplicationControllers", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.ReplicationController>" }, { 
"option": "operation", "value": "listReplicationControllersByLabels", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.ReplicationController>" }, { 
"option": "operation", "value": "getReplicationC [...]
+  },
   "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/resources_quota/kubernetes-resources-quota.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/resources_quota/kubernetes-resources-quota.json
index 3079e02090e8..e778a278db0f 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/resources_quota/kubernetes-resources-quota.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/resources_quota/kubernetes-resources-quota.json
@@ -35,6 +35,10 @@
     "CamelKubernetesResourcesQuotaName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The resource quota name", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_RESOURCES_QUOTA_NAME"
 },
     "CamelKubernetesResourceQuotaSpec": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaSpec", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The spec for a resource quota", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_RESOURCE_QUOTA_SPEC"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesResourcesQuotaName, the labels in 
CamelKubernetesResourcesQuotaLabels and the ResourceQuotaSpec in 
CamelKubernetesResourceQuotaSpec" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listResourcesQuota", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.ResourceQuota>" }, { "option": 
"operation", "value": "listResourcesQuotaByLabels", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.kubernetes.api.model.ResourceQuota>" }, 
{ "option": "operation", "value": "getResourceQuota", "carriers": [ "pojo", 
"null" [...]
+  },
   "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/secrets/kubernetes-secrets.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/secrets/kubernetes-secrets.json
index 84b96615d2b9..392532b546a2 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/secrets/kubernetes-secrets.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/secrets/kubernetes-secrets.json
@@ -36,6 +36,10 @@
     "CamelKubernetesSecret": { "index": 4, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"io.fabric8.kubernetes.api.model.Secret", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "A 
secret object", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_SECRET" },
     "CamelKubernetesSecretsAnnotations": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The secret annotations", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_SECRETS_ANNOTATIONS"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesSecretName, the labels in 
CamelKubernetesSecretsLabels and the Secret to create or update in 
CamelKubernetesSecret" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listSecrets", "carriers": [ 
"list" ], "javaType": "java.util.List<io.fabric8.kubernetes.api.model.Secret>" 
}, { "option": "operation", "value": "listSecretsByLabels", "carriers": [ 
"list" ], "javaType": "java.util.List<io.fabric8.kubernetes.api.model.Secret>" 
}, { "option": "operation", "value": "getSecret", "carriers": [ "pojo", "null" 
], "javaType": "io.fabric8.kuberne [...]
+  },
   "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/service_accounts/kubernetes-service-accounts.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/service_accounts/kubernetes-service-accounts.json
index ff9aff3e7834..733a79b9f281 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/service_accounts/kubernetes-service-accounts.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/service_accounts/kubernetes-service-accounts.json
@@ -35,6 +35,10 @@
     "CamelKubernetesServiceAccountName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The service account name", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_SERVICE_ACCOUNT_NAME"
 },
     "CamelKubernetesServiceAccount": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.ServiceAccount", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "A service account object", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_SERVICE_ACCOUNT"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesServiceAccountName, the labels in 
CamelKubernetesServiceAccountsLabels and the ServiceAccount to create or update 
in CamelKubernetesServiceAccount" },
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listServiceAccounts", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.kubernetes.api.model.ServiceAccount>" }, { "option": 
"operation", "value": "listServiceAccountsByLabels", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.kubernetes.api.model.ServiceAccount>" }, 
{ "option": "operation", "value": "getServiceAccount", "carriers": [ "pojo", " 
[...]
+  },
   "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/services/kubernetes-services.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/services/kubernetes-services.json
index cb9f20669925..b9aafb3b9b39 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/services/kubernetes-services.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/services/kubernetes-services.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.Service", "description": "The Service that 
changed, one message per watch event, with the action (ADDED, MODIFIED, 
DELETED) in the CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesServiceName, the labels in 
CamelKubernetesServiceLabels and the ServiceSpec in CamelKubernetesServiceSpec" 
},
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listServices", "carriers": [ 
"list" ], "javaType": "java.util.List<io.fabric8.kubernetes.api.model.Service>" 
}, { "option": "operation", "value": "listServicesByLabels", "carriers": [ 
"list" ], "javaType": "java.util.List<io.fabric8.kubernetes.api.model.Service>" 
}, { "option": "operation", "value": "getService", "carriers": [ "pojo", "null" 
], "javaType": "io.fabric8.ku [...]
+  },
   "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/openshift/build_configs/openshift-build-configs.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/build_configs/openshift-build-configs.json
index 322c5c7f298e..1e122503e63b 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/build_configs/openshift-build-configs.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/build_configs/openshift-build-configs.json
@@ -34,6 +34,10 @@
     "CamelKubernetesBuildConfigsLabels": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The OpenShift Config Build 
labels", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_BUILD_CONFIGS_LABELS"
 },
     "CamelKubernetesBuildConfigName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Openshift Config Build name", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_BUILD_CONFIG_NAME"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesBuildConfigName and the labels in 
CamelKubernetesBuildConfigsLabels. listBuildConfigs does not read the namespace 
header: it lists the build configs of all namespaces" },
+    "producerOut": { "carriers": [ "list", "pojo", "null" ], "byOption": [ { 
"option": "operation", "value": "listBuildConfigs", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.openshift.api.model.BuildConfig>" }, { 
"option": "operation", "value": "listBuildConfigsByLabels", "carriers": [ 
"list" ], "javaType": 
"java.util.List<io.fabric8.openshift.api.model.BuildConfig>" }, { "option": 
"operation", "value": "getBuildConfig", "carriers": [ "pojo", "null" ], 
"javaType": "io.f [...]
+  },
   "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/openshift/builds/openshift-builds.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/builds/openshift-builds.json
index c5feb32d587b..04b0baf9f398 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/builds/openshift-builds.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/builds/openshift-builds.json
@@ -34,6 +34,10 @@
     "CamelKubernetesBuildsLabels": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The OpenShift build 
labels", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_BUILDS_LABELS"
 },
     "CamelKubernetesBuildName": { "index": 3, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"String", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The OpenShift build name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_BUILD_NAME"
 }
   },
+  "bodyTypes": {
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesBuildName and the labels in 
CamelKubernetesBuildsLabels. listBuilds does not read the namespace header: it 
lists the builds of all namespaces" },
+    "producerOut": { "carriers": [ "list", "pojo", "null" ], "byOption": [ { 
"option": "operation", "value": "listBuilds", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.openshift.api.model.Build>" }, { 
"option": "operation", "value": "listBuildsByLabels", "carriers": [ "list" ], 
"javaType": "java.util.List<io.fabric8.openshift.api.model.Build>" }, { 
"option": "operation", "value": "getBuild", "carriers": [ "pojo", "null" ], 
"javaType": "io.fabric8.openshift.api.model.Bui [...]
+  },
   "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/openshift/deploymentconfigs/openshift-deploymentconfigs.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/deploymentconfigs/openshift-deploymentconfigs.json
index 013c1722b4d6..3867981619cf 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/deploymentconfigs/openshift-deploymentconfigs.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/deploymentconfigs/openshift-deploymentconfigs.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.openshift.api.model.DeploymentConfig", "description": "The 
DeploymentConfig that changed, one message per watch event, with the action 
(ADDED, MODIFIED, DELETED) in the CamelKubernetesEventAction header" },
+    "producerIn": { "carriers": [ "any" ], "description": "Not used: the 
operation (the operation option, or else the CamelKubernetesOperation header) 
takes its input from headers: the namespace in CamelKubernetesNamespaceName, 
the name in CamelKubernetesDeploymentName, the labels in 
CamelKubernetesDeploymentsLabels, the DeploymentConfigSpec in 
CamelKubernetesDeploymentConfigSpec and the replicas in 
CamelKubernetesDeploymentReplicas. The list and get operations do not read the 
namespace  [...]
+    "producerOut": { "carriers": [ "list", "pojo", "null", "value" ], 
"byOption": [ { "option": "operation", "value": "listDeploymentConfigs", 
"carriers": [ "list" ], "javaType": 
"java.util.List<io.fabric8.openshift.api.model.DeploymentConfig>" }, { 
"option": "operation", "value": "listDeploymentConfigsByLabels", "carriers": [ 
"list" ], "javaType": 
"java.util.List<io.fabric8.openshift.api.model.DeploymentConfig>" }, { 
"option": "operation", "value": "getDeploymentConfig", "carriers": [ " [...]
+  },
   "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/persistent_volumes/KubernetesPersistentVolumesEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes/KubernetesPersistentVolumesEndpoint.java
index da6feff04575..3f67c28cb59e 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes/KubernetesPersistentVolumesEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes/KubernetesPersistentVolumesEndpoint.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_PERSISTENT_VOLUMES;
@@ -34,6 +37,25 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_P
              syntax = "kubernetes-persistent-volumes:masterUrl",
              producerOnly = true, category = { Category.CONTAINER, 
Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the name"
+                                                + " in 
CamelKubernetesPersistentVolumeName and the labels in"
+                                                + " 
CamelKubernetesPersistentVolumesLabels"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listPersistentVolumes",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolume>"),
+                                           @BodyType.When(option = 
"operation", value = "listPersistentVolumesByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolume>"),
+                                           @BodyType.When(option = 
"operation", value = "getPersistentVolume",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.PersistentVolume") },
+                                   description = "A List of PersistentVolume 
for listPersistentVolumes and"
+                                                 + " 
listPersistentVolumesByLabels; the PersistentVolume for"
+                                                 + " getPersistentVolume (null 
when not found)"))
 public class KubernetesPersistentVolumesEndpoint extends 
AbstractKubernetesEndpoint {
 
     public KubernetesPersistentVolumesEndpoint(String uri, 
KubernetesPersistentVolumesComponent component,
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsEndpoint.java
index d57f061f3925..aef2935c147f 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsEndpoint.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_PERSISTENT_VOLUMES_CLAIMS;
@@ -34,6 +37,38 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_P
              title = "Kubernetes Persistent Volume Claim",
              syntax = "kubernetes-persistent-volumes-claims:masterUrl", 
producerOnly = true,
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " 
CamelKubernetesPersistentVolumeClaimName, the labels in"
+                                                + " 
CamelKubernetesPersistentVolumesClaimsLabels and the"
+                                                + " PersistentVolumeClaimSpec 
in CamelKubernetesPersistentVolumeClaimSpec"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listPersistentVolumesClaims",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolumeClaim>"),
+                                           @BodyType.When(option = 
"operation", value = "listPersistentVolumesClaimsByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.PersistentVolumeClaim>"),
+                                           @BodyType.When(option = 
"operation", value = "getPersistentVolumeClaim",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.PersistentVolumeClaim"),
+                                           @BodyType.When(option = 
"operation", value = "createPersistentVolumeClaim",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.PersistentVolumeClaim"),
+                                           @BodyType.When(option = 
"operation", value = "updatePersistentVolumeClaim",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.PersistentVolumeClaim"),
+                                           @BodyType.When(option = 
"operation", value = "deletePersistentVolumeClaim",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of 
PersistentVolumeClaim for listPersistentVolumesClaims and"
+                                                 + " 
listPersistentVolumesClaimsByLabels; the PersistentVolumeClaim for"
+                                                 + " getPersistentVolumeClaim 
(null when not found),"
+                                                 + " 
createPersistentVolumeClaim and updatePersistentVolumeClaim; a Boolean"
+                                                 + " for 
deletePersistentVolumeClaim, false when not found"))
 public class KubernetesPersistentVolumesClaimsEndpoint extends 
AbstractKubernetesEndpoint {
 
     public KubernetesPersistentVolumesClaimsEndpoint(
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersEndpoint.java
index f1d2b2455585..83a2170553de 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersEndpoint.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_REPLICATION_CONTROLLERS;
@@ -33,6 +36,47 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_R
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_REPLICATION_CONTROLLERS,
              title = "Kubernetes Replication Controller", syntax = 
"kubernetes-replication-controllers:masterUrl",
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.kubernetes.api.model.ReplicationController",
+                                   description = "The ReplicationController 
that changed, one message per watch event, with"
+                                                 + " the action (ADDED, 
MODIFIED, DELETED) in the CamelKubernetesEventAction"
+                                                 + " header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " 
CamelKubernetesReplicationControllerName, the labels in"
+                                                + " 
CamelKubernetesReplicationControllersLabels, the"
+                                                + " ReplicationControllerSpec 
in CamelKubernetesReplicationControllerSpec and"
+                                                + " the replicas in 
CamelKubernetesReplicationControllerReplicas"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listReplicationControllers",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.ReplicationController>"),
+                                           @BodyType.When(option = 
"operation", value = "listReplicationControllersByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.ReplicationController>"),
+                                           @BodyType.When(option = 
"operation", value = "getReplicationController",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ReplicationController"),
+                                           @BodyType.When(option = 
"operation", value = "createReplicationController",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ReplicationController"),
+                                           @BodyType.When(option = 
"operation", value = "updateReplicationController",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ReplicationController"),
+                                           @BodyType.When(option = 
"operation", value = "deleteReplicationController",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean"),
+                                           @BodyType.When(option = 
"operation", value = "scaleReplicationController",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Integer") },
+                                   description = "A List of 
ReplicationController for listReplicationControllers and"
+                                                 + " 
listReplicationControllersByLabels; the ReplicationController for"
+                                                 + " getReplicationController 
(null when not found),"
+                                                 + " 
createReplicationController and updateReplicationController; a Boolean"
+                                                 + " for 
deleteReplicationController, false when not found; for"
+                                                 + " 
scaleReplicationController the replicas of its status, as an Integer"))
 public class KubernetesReplicationControllersEndpoint extends 
AbstractKubernetesEndpoint {
 
     public KubernetesReplicationControllersEndpoint(String uri, 
KubernetesReplicationControllersComponent component,
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaEndpoint.java
index a2fe04e92bf6..7a6bdc1687ca 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaEndpoint.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_RESOURCES_QUOTA;
@@ -33,6 +36,37 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_R
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_RESOURCES_QUOTA, title = 
"Kubernetes Resources Quota",
              syntax = "kubernetes-resources-quota:masterUrl", producerOnly = 
true,
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " 
CamelKubernetesResourcesQuotaName, the labels in"
+                                                + " 
CamelKubernetesResourcesQuotaLabels and the ResourceQuotaSpec in"
+                                                + " 
CamelKubernetesResourceQuotaSpec"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listResourcesQuota",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.ResourceQuota>"),
+                                           @BodyType.When(option = 
"operation", value = "listResourcesQuotaByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.ResourceQuota>"),
+                                           @BodyType.When(option = 
"operation", value = "getResourceQuota",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ResourceQuota"),
+                                           @BodyType.When(option = 
"operation", value = "createResourceQuota",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ResourceQuota"),
+                                           @BodyType.When(option = 
"operation", value = "updateResourceQuota",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ResourceQuota"),
+                                           @BodyType.When(option = 
"operation", value = "deleteResourceQuota",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of ResourceQuota for 
listResourcesQuota and"
+                                                 + " 
listResourcesQuotaByLabels; the ResourceQuota for getResourceQuota (null"
+                                                 + " when not found), 
createResourceQuota and updateResourceQuota; a Boolean"
+                                                 + " for deleteResourceQuota, 
false when not found"))
 public class KubernetesResourcesQuotaEndpoint extends 
AbstractKubernetesEndpoint {
 
     public KubernetesResourcesQuotaEndpoint(String uri, 
KubernetesResourcesQuotaComponent component,
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsEndpoint.java
index a423bb60ad24..c89cec474e20 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsEndpoint.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_SECRETS;
@@ -33,6 +36,32 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_S
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_SECRETS, title = 
"Kubernetes Secrets",
              syntax = "kubernetes-secrets:masterUrl", producerOnly = true,
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " CamelKubernetesSecretName, 
the labels in CamelKubernetesSecretsLabels and"
+                                                + " the Secret to create or 
update in CamelKubernetesSecret"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listSecrets", carriers = Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.Secret>"),
+                                           @BodyType.When(option = 
"operation", value = "listSecretsByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.Secret>"),
+                                           @BodyType.When(option = 
"operation", value = "getSecret",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Secret"),
+                                           @BodyType.When(option = 
"operation", value = "createSecret", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Secret"),
+                                           @BodyType.When(option = 
"operation", value = "updateSecret", carriers = Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Secret"),
+                                           @BodyType.When(option = 
"operation", value = "deleteSecret",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of Secret for 
listSecrets and listSecretsByLabels; the Secret for"
+                                                 + " getSecret (null when not 
found), createSecret and updateSecret; a"
+                                                 + " Boolean for deleteSecret, 
false when not found"))
 public class KubernetesSecretsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesSecretsEndpoint(String uri, KubernetesSecretsComponent 
component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsEndpoint.java
index ea53b56f4abc..0f859e279a22 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsEndpoint.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_SERVICE_ACCOUNTS;
@@ -33,6 +36,37 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_S
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_SERVICE_ACCOUNTS, title 
= "Kubernetes Service Account",
              syntax = "kubernetes-service-accounts:masterUrl", producerOnly = 
true,
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = 
KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " 
CamelKubernetesServiceAccountName, the labels in"
+                                                + " 
CamelKubernetesServiceAccountsLabels and the ServiceAccount to create or"
+                                                + " update in 
CamelKubernetesServiceAccount"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listServiceAccounts",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.ServiceAccount>"),
+                                           @BodyType.When(option = 
"operation", value = "listServiceAccountsByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.ServiceAccount>"),
+                                           @BodyType.When(option = 
"operation", value = "getServiceAccount",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ServiceAccount"),
+                                           @BodyType.When(option = 
"operation", value = "createServiceAccount",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ServiceAccount"),
+                                           @BodyType.When(option = 
"operation", value = "updateServiceAccount",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.ServiceAccount"),
+                                           @BodyType.When(option = 
"operation", value = "deleteServiceAccount",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of ServiceAccount for 
listServiceAccounts and"
+                                                 + " 
listServiceAccountsByLabels; the ServiceAccount for getServiceAccount"
+                                                 + " (null when not found), 
createServiceAccount and updateServiceAccount; a"
+                                                 + " Boolean for 
deleteServiceAccount, false when not found"))
 public class KubernetesServiceAccountsEndpoint extends 
AbstractKubernetesEndpoint {
 
     public KubernetesServiceAccountsEndpoint(String uri, 
KubernetesServiceAccountsComponent component,
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesEndpoint.java
index 8ca60ded94d9..0cfa75d4d5df 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesEndpoint.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_SERVICES;
@@ -33,6 +36,37 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_S
 @UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_SERVICES, title = 
"Kubernetes Services",
              syntax = "kubernetes-services:masterUrl", category = { 
Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.kubernetes.api.model.Service",
+                                   description = "The Service that changed, 
one message per watch event, with the action"
+                                                 + " (ADDED, MODIFIED, 
DELETED) in the CamelKubernetesEventAction header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " 
CamelKubernetesServiceName, the labels in CamelKubernetesServiceLabels"
+                                                + " and the ServiceSpec in 
CamelKubernetesServiceSpec"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listServices", carriers = Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.Service>"),
+                                           @BodyType.When(option = 
"operation", value = "listServicesByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.kubernetes.api.model.Service>"),
+                                           @BodyType.When(option = 
"operation", value = "getService",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Service"),
+                                           @BodyType.When(option = 
"operation", value = "createService",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Service"),
+                                           @BodyType.When(option = 
"operation", value = "updateService",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.kubernetes.api.model.Service"),
+                                           @BodyType.When(option = 
"operation", value = "deleteService",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean") },
+                                   description = "A List of Service for 
listServices and listServicesByLabels; the Service"
+                                                 + " for getService (null when 
not found), createService and updateService; a"
+                                                 + " Boolean for 
deleteService, false when not found"))
 public class KubernetesServicesEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesServicesEndpoint(String uri, KubernetesServicesComponent 
component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/build_configs/OpenshiftBuildConfigsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/build_configs/OpenshiftBuildConfigsEndpoint.java
index e7467fada1d6..7be032e4843f 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/build_configs/OpenshiftBuildConfigsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/build_configs/OpenshiftBuildConfigsEndpoint.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_BUILD_CONFIG;
@@ -34,6 +37,26 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_B
              syntax = "openshift-build-configs:masterUrl", producerOnly = true,
              category = { Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " 
CamelKubernetesBuildConfigName and the labels in"
+                                                + " 
CamelKubernetesBuildConfigsLabels. listBuildConfigs does not read the"
+                                                + " namespace header: it lists 
the build configs of all namespaces"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listBuildConfigs",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.openshift.api.model.BuildConfig>"),
+                                           @BodyType.When(option = 
"operation", value = "listBuildConfigsByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.openshift.api.model.BuildConfig>"),
+                                           @BodyType.When(option = 
"operation", value = "getBuildConfig",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.openshift.api.model.BuildConfig") },
+                                   description = "A List of BuildConfig for 
listBuildConfigs and listBuildConfigsByLabels;"
+                                                 + " the BuildConfig for 
getBuildConfig (null when not found)"))
 public class OpenshiftBuildConfigsEndpoint extends AbstractKubernetesEndpoint {
 
     public OpenshiftBuildConfigsEndpoint(String uri, 
OpenshiftBuildConfigsComponent component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/builds/OpenshiftBuildsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/builds/OpenshiftBuildsEndpoint.java
index c4f3a95b08cc..6ca7f6290ebf 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/builds/OpenshiftBuildsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/builds/OpenshiftBuildsEndpoint.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_BUILDS;
@@ -34,6 +37,24 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_B
              syntax = "openshift-builds:masterUrl", producerOnly = true,
              category = { Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " CamelKubernetesBuildName 
and the labels in CamelKubernetesBuildsLabels. listBuilds does not"
+                                                + " read the namespace header: 
it lists the builds of all namespaces"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listBuilds", carriers = Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.openshift.api.model.Build>"),
+                                           @BodyType.When(option = 
"operation", value = "listBuildsByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.openshift.api.model.Build>"),
+                                           @BodyType.When(option = 
"operation", value = "getBuild",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.openshift.api.model.Build") },
+                                   description = "A List of Build for 
listBuilds and listBuildsByLabels; the Build for"
+                                                 + " getBuild (null when not 
found)"))
 public class OpenshiftBuildsEndpoint extends AbstractKubernetesEndpoint {
 
     public OpenshiftBuildsEndpoint(String uri, OpenshiftBuildsComponent 
component, KubernetesConfiguration config) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/deploymentconfigs/OpenshiftDeploymentConfigsEndpoint.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/deploymentconfigs/OpenshiftDeploymentConfigsEndpoint.java
index c2a696dd54e0..61dc7ce73a66 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/deploymentconfigs/OpenshiftDeploymentConfigsEndpoint.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/deploymentconfigs/OpenshiftDeploymentConfigsEndpoint.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_DEPLOYMENT_CONFIGS;
@@ -33,6 +36,48 @@ import static 
org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_D
 @UriEndpoint(firstVersion = "3.18.0", scheme = SCHEME_DEPLOYMENT_CONFIGS, 
title = "OpenShift Deployment Configs",
              syntax = "openshift-deploymentconfigs:masterUrl", category = { 
Category.CONTAINER, Category.CLOUD },
              headersClass = KubernetesConstants.class)
+@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, javaType = 
"io.fabric8.openshift.api.model.DeploymentConfig",
+                                   description = "The DeploymentConfig that 
changed, one message per watch event, with the"
+                                                 + " action (ADDED, MODIFIED, 
DELETED) in the CamelKubernetesEventAction"
+                                                 + " header"),
+           producerIn = @BodyType(value = Carrier.ANY,
+                                  description = "Not used: the operation (the 
operation option, or else the"
+                                                + " CamelKubernetesOperation 
header) takes its input from headers: the"
+                                                + " namespace in 
CamelKubernetesNamespaceName, the name in"
+                                                + " 
CamelKubernetesDeploymentName, the labels in"
+                                                + " 
CamelKubernetesDeploymentsLabels, the DeploymentConfigSpec in"
+                                                + " 
CamelKubernetesDeploymentConfigSpec and the replicas in"
+                                                + " 
CamelKubernetesDeploymentReplicas. The list and get operations do not read the 
namespace"
+                                                + " header: they use the 
namespace of the client"),
+           producerOut = @BodyType(value = { Carrier.LIST, Carrier.POJO, 
Carrier.NULL, Carrier.VALUE },
+                                   byOption = {
+                                           @BodyType.When(option = 
"operation", value = "listDeploymentConfigs",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.openshift.api.model.DeploymentConfig>"),
+                                           @BodyType.When(option = 
"operation", value = "listDeploymentConfigsByLabels",
+                                                          carriers = 
Carrier.LIST,
+                                                          javaType = 
"java.util.List<io.fabric8.openshift.api.model.DeploymentConfig>"),
+                                           @BodyType.When(option = 
"operation", value = "getDeploymentConfig",
+                                                          carriers = { 
Carrier.POJO, Carrier.NULL },
+                                                          javaType = 
"io.fabric8.openshift.api.model.DeploymentConfig"),
+                                           @BodyType.When(option = 
"operation", value = "createDeploymentConfig",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.openshift.api.model.DeploymentConfig"),
+                                           @BodyType.When(option = 
"operation", value = "updateDeploymentConfig",
+                                                          carriers = 
Carrier.POJO,
+                                                          javaType = 
"io.fabric8.openshift.api.model.DeploymentConfig"),
+                                           @BodyType.When(option = 
"operation", value = "deleteDeploymentConfig",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Boolean"),
+                                           @BodyType.When(option = 
"operation", value = "scaleDeploymentConfig",
+                                                          carriers = 
Carrier.VALUE,
+                                                          javaType = 
"java.lang.Integer") },
+                                   description = "A List of DeploymentConfig 
for listDeploymentConfigs and"
+                                                 + " 
listDeploymentConfigsByLabels; the DeploymentConfig for"
+                                                 + " getDeploymentConfig (null 
when not found), createDeploymentConfig and"
+                                                 + " updateDeploymentConfig; a 
Boolean for deleteDeploymentConfig, false when"
+                                                 + " not found; for 
scaleDeploymentConfig the replicas of its status, as an"
+                                                 + " Integer"))
 public class OpenshiftDeploymentConfigsEndpoint extends 
AbstractKubernetesEndpoint {
 
     public OpenshiftDeploymentConfigsEndpoint(String uri, 
OpenshiftDeploymentConfigsComponent component,

Reply via email to