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

acosentino pushed a commit to branch ops-cyberark
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 438252d5a9ab049a3bcc63a33515b854f4730511
Author: Andrea Cosentino <[email protected]>
AuthorDate: Wed Nov 5 18:55:11 2025 +0100

    CAMEL-22665 - Camel-Cyberark-Vault: Support more producer operation
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../camel/catalog/components/cyberark-vault.json   | 34 ++++++++--------
 .../vault/CyberArkVaultComponentConfigurer.java    |  3 ++
 .../vault/CyberArkVaultEndpointConfigurer.java     |  3 ++
 .../vault/CyberArkVaultEndpointUriFactory.java     |  3 +-
 .../component/cyberark/vault/cyberark-vault.json   | 34 ++++++++--------
 .../cyberark/vault/CyberArkVaultConfiguration.java | 14 +++++++
 .../cyberark/vault/CyberArkVaultOperations.java    | 33 ++++++++++++++++
 .../cyberark/vault/CyberArkVaultProducer.java      | 45 +++++++++++++++++-----
 .../cyberark/vault/client/ConjurClient.java        |  8 ++++
 .../vault/client/impl/ConjurClientImpl.java        | 41 ++++++++++++++++++++
 .../camel/main/DefaultConfigurationConfigurer.java |  5 +++
 .../dsl/CyberarkVaultComponentBuilderFactory.java  | 19 +++++++++
 .../dsl/CyberArkVaultEndpointBuilderFactory.java   | 32 +++++++++++++++
 13 files changed, 231 insertions(+), 43 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cyberark-vault.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cyberark-vault.json
index 35d20a8facf5..86e62ebf0c16 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cyberark-vault.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cyberark-vault.json
@@ -29,27 +29,29 @@
     "configuration": { "index": 2, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component configuration" },
     "conjurClient": { "index": 3, "kind": "property", "displayName": "Conjur 
Client", "group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.cyberark.vault.client.ConjurClient", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Reference to a 
ConjurClient instance in the registry" },
     "lazyStartProducer": { "index": 4, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "secretId": { "index": 5, "kind": "property", "displayName": "Secret Id", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The secret ID to 
retrieve from CyberArk Conjur" },
-    "url": { "index": 6, "kind": "property", "displayName": "Url", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
instance URL" },
-    "verifySsl": { "index": 7, "kind": "property", "displayName": "Verify 
Ssl", "group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Whether to verify SSL 
certificates when connecting to CyberArk Conjur" },
-    "autowiredEnabled": { "index": 8, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching t [...]
-    "apiKey": { "index": 9, "kind": "property", "displayName": "Api Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The API key for 
authentication with CyberArk Conjur" },
-    "authToken": { "index": 10, "kind": "property", "displayName": "Auth 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Pre-authenticated token 
to use for CyberArk Conjur" },
-    "password": { "index": 11, "kind": "property", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication with CyberArk Conjur" },
-    "username": { "index": 12, "kind": "property", "displayName": "Username", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The username for 
authentication with CyberArk Conjur" }
+    "operation": { "index": 5, "kind": "property", "displayName": "Operation", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultOperations", "enum": [ 
"getSecret", "createSecret" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "getSecret", "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "d [...]
+    "secretId": { "index": 6, "kind": "property", "displayName": "Secret Id", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The secret ID to 
retrieve from CyberArk Conjur" },
+    "url": { "index": 7, "kind": "property", "displayName": "Url", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
instance URL" },
+    "verifySsl": { "index": 8, "kind": "property", "displayName": "Verify 
Ssl", "group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Whether to verify SSL 
certificates when connecting to CyberArk Conjur" },
+    "autowiredEnabled": { "index": 9, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching t [...]
+    "apiKey": { "index": 10, "kind": "property", "displayName": "Api Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The API key for 
authentication with CyberArk Conjur" },
+    "authToken": { "index": 11, "kind": "property", "displayName": "Auth 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Pre-authenticated token 
to use for CyberArk Conjur" },
+    "password": { "index": 12, "kind": "property", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication with CyberArk Conjur" },
+    "username": { "index": 13, "kind": "property", "displayName": "Username", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The username for 
authentication with CyberArk Conjur" }
   },
   "properties": {
     "label": { "index": 0, "kind": "path", "displayName": "Label", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Logical name" },
     "account": { "index": 1, "kind": "parameter", "displayName": "Account", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
account name" },
     "certificatePath": { "index": 2, "kind": "parameter", "displayName": 
"Certificate Path", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Path to the SSL 
certificate for verification" },
     "conjurClient": { "index": 3, "kind": "parameter", "displayName": "Conjur 
Client", "group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.cyberark.vault.client.ConjurClient", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Reference to a 
ConjurClient instance in the registry" },
-    "secretId": { "index": 4, "kind": "parameter", "displayName": "Secret Id", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The secret ID to 
retrieve from CyberArk Conjur" },
-    "url": { "index": 5, "kind": "parameter", "displayName": "Url", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
instance URL" },
-    "verifySsl": { "index": 6, "kind": "parameter", "displayName": "Verify 
Ssl", "group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Whether to verify SSL 
certificates when connecting to CyberArk Conjur" },
-    "lazyStartProducer": { "index": 7, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
-    "apiKey": { "index": 8, "kind": "parameter", "displayName": "Api Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The API key for 
authentication with CyberArk Conjur" },
-    "authToken": { "index": 9, "kind": "parameter", "displayName": "Auth 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Pre-authenticated token 
to use for CyberArk Conjur" },
-    "password": { "index": 10, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication with CyberArk Conjur" },
-    "username": { "index": 11, "kind": "parameter", "displayName": "Username", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The username for 
authentication with CyberArk Conjur" }
+    "operation": { "index": 4, "kind": "parameter", "displayName": 
"Operation", "group": "producer", "label": "", "required": false, "type": 
"enum", "javaType": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultOperations", "enum": [ 
"getSecret", "createSecret" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "getSecret", "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", " [...]
+    "secretId": { "index": 5, "kind": "parameter", "displayName": "Secret Id", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The secret ID to 
retrieve from CyberArk Conjur" },
+    "url": { "index": 6, "kind": "parameter", "displayName": "Url", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
instance URL" },
+    "verifySsl": { "index": 7, "kind": "parameter", "displayName": "Verify 
Ssl", "group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Whether to verify SSL 
certificates when connecting to CyberArk Conjur" },
+    "lazyStartProducer": { "index": 8, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
+    "apiKey": { "index": 9, "kind": "parameter", "displayName": "Api Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The API key for 
authentication with CyberArk Conjur" },
+    "authToken": { "index": 10, "kind": "parameter", "displayName": "Auth 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Pre-authenticated token 
to use for CyberArk Conjur" },
+    "password": { "index": 11, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication with CyberArk Conjur" },
+    "username": { "index": 12, "kind": "parameter", "displayName": "Username", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The username for 
authentication with CyberArk Conjur" }
   }
 }
diff --git 
a/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultComponentConfigurer.java
 
b/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultComponentConfigurer.java
index 2152522a502b..de7072cdf68e 100644
--- 
a/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultComponentConfigurer.java
+++ 
b/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultComponentConfigurer.java
@@ -44,6 +44,7 @@ public class CyberArkVaultComponentConfigurer extends 
PropertyConfigurerSupport
         case "conjurClient": 
getOrCreateConfiguration(target).setConjurClient(property(camelContext, 
org.apache.camel.component.cyberark.vault.client.ConjurClient.class, value)); 
return true;
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
+        case "operation": 
getOrCreateConfiguration(target).setOperation(property(camelContext, 
org.apache.camel.component.cyberark.vault.CyberArkVaultOperations.class, 
value)); return true;
         case "password": 
getOrCreateConfiguration(target).setPassword(property(camelContext, 
java.lang.String.class, value)); return true;
         case "secretid":
         case "secretId": 
getOrCreateConfiguration(target).setSecretId(property(camelContext, 
java.lang.String.class, value)); return true;
@@ -72,6 +73,7 @@ public class CyberArkVaultComponentConfigurer extends 
PropertyConfigurerSupport
         case "conjurClient": return 
org.apache.camel.component.cyberark.vault.client.ConjurClient.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
+        case "operation": return 
org.apache.camel.component.cyberark.vault.CyberArkVaultOperations.class;
         case "password": return java.lang.String.class;
         case "secretid":
         case "secretId": return java.lang.String.class;
@@ -101,6 +103,7 @@ public class CyberArkVaultComponentConfigurer extends 
PropertyConfigurerSupport
         case "conjurClient": return 
getOrCreateConfiguration(target).getConjurClient();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
+        case "operation": return 
getOrCreateConfiguration(target).getOperation();
         case "password": return getOrCreateConfiguration(target).getPassword();
         case "secretid":
         case "secretId": return getOrCreateConfiguration(target).getSecretId();
diff --git 
a/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultEndpointConfigurer.java
 
b/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultEndpointConfigurer.java
index 4ac03c22b058..bb26aa512acd 100644
--- 
a/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultEndpointConfigurer.java
+++ 
b/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultEndpointConfigurer.java
@@ -34,6 +34,7 @@ public class CyberArkVaultEndpointConfigurer extends 
PropertyConfigurerSupport i
         case "conjurClient": 
target.getConfiguration().setConjurClient(property(camelContext, 
org.apache.camel.component.cyberark.vault.client.ConjurClient.class, value)); 
return true;
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
+        case "operation": 
target.getConfiguration().setOperation(property(camelContext, 
org.apache.camel.component.cyberark.vault.CyberArkVaultOperations.class, 
value)); return true;
         case "password": 
target.getConfiguration().setPassword(property(camelContext, 
java.lang.String.class, value)); return true;
         case "secretid":
         case "secretId": 
target.getConfiguration().setSecretId(property(camelContext, 
java.lang.String.class, value)); return true;
@@ -59,6 +60,7 @@ public class CyberArkVaultEndpointConfigurer extends 
PropertyConfigurerSupport i
         case "conjurClient": return 
org.apache.camel.component.cyberark.vault.client.ConjurClient.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
+        case "operation": return 
org.apache.camel.component.cyberark.vault.CyberArkVaultOperations.class;
         case "password": return java.lang.String.class;
         case "secretid":
         case "secretId": return java.lang.String.class;
@@ -85,6 +87,7 @@ public class CyberArkVaultEndpointConfigurer extends 
PropertyConfigurerSupport i
         case "conjurClient": return 
target.getConfiguration().getConjurClient();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
+        case "operation": return target.getConfiguration().getOperation();
         case "password": return target.getConfiguration().getPassword();
         case "secretid":
         case "secretId": return target.getConfiguration().getSecretId();
diff --git 
a/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultEndpointUriFactory.java
 
b/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultEndpointUriFactory.java
index 1f2ba8d12ff3..79ca1030626c 100644
--- 
a/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultEndpointUriFactory.java
+++ 
b/components/camel-cyberark-vault/src/generated/java/org/apache/camel/component/cyberark/vault/CyberArkVaultEndpointUriFactory.java
@@ -23,7 +23,7 @@ public class CyberArkVaultEndpointUriFactory extends 
org.apache.camel.support.co
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Map<String, String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(12);
+        Set<String> props = new HashSet<>(13);
         props.add("account");
         props.add("apiKey");
         props.add("authToken");
@@ -31,6 +31,7 @@ public class CyberArkVaultEndpointUriFactory extends 
org.apache.camel.support.co
         props.add("conjurClient");
         props.add("label");
         props.add("lazyStartProducer");
+        props.add("operation");
         props.add("password");
         props.add("secretId");
         props.add("url");
diff --git 
a/components/camel-cyberark-vault/src/generated/resources/META-INF/org/apache/camel/component/cyberark/vault/cyberark-vault.json
 
b/components/camel-cyberark-vault/src/generated/resources/META-INF/org/apache/camel/component/cyberark/vault/cyberark-vault.json
index 35d20a8facf5..86e62ebf0c16 100644
--- 
a/components/camel-cyberark-vault/src/generated/resources/META-INF/org/apache/camel/component/cyberark/vault/cyberark-vault.json
+++ 
b/components/camel-cyberark-vault/src/generated/resources/META-INF/org/apache/camel/component/cyberark/vault/cyberark-vault.json
@@ -29,27 +29,29 @@
     "configuration": { "index": 2, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component configuration" },
     "conjurClient": { "index": 3, "kind": "property", "displayName": "Conjur 
Client", "group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.cyberark.vault.client.ConjurClient", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Reference to a 
ConjurClient instance in the registry" },
     "lazyStartProducer": { "index": 4, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "secretId": { "index": 5, "kind": "property", "displayName": "Secret Id", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The secret ID to 
retrieve from CyberArk Conjur" },
-    "url": { "index": 6, "kind": "property", "displayName": "Url", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
instance URL" },
-    "verifySsl": { "index": 7, "kind": "property", "displayName": "Verify 
Ssl", "group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Whether to verify SSL 
certificates when connecting to CyberArk Conjur" },
-    "autowiredEnabled": { "index": 8, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching t [...]
-    "apiKey": { "index": 9, "kind": "property", "displayName": "Api Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The API key for 
authentication with CyberArk Conjur" },
-    "authToken": { "index": 10, "kind": "property", "displayName": "Auth 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Pre-authenticated token 
to use for CyberArk Conjur" },
-    "password": { "index": 11, "kind": "property", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication with CyberArk Conjur" },
-    "username": { "index": 12, "kind": "property", "displayName": "Username", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The username for 
authentication with CyberArk Conjur" }
+    "operation": { "index": 5, "kind": "property", "displayName": "Operation", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultOperations", "enum": [ 
"getSecret", "createSecret" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "getSecret", "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "d [...]
+    "secretId": { "index": 6, "kind": "property", "displayName": "Secret Id", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The secret ID to 
retrieve from CyberArk Conjur" },
+    "url": { "index": 7, "kind": "property", "displayName": "Url", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
instance URL" },
+    "verifySsl": { "index": 8, "kind": "property", "displayName": "Verify 
Ssl", "group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Whether to verify SSL 
certificates when connecting to CyberArk Conjur" },
+    "autowiredEnabled": { "index": 9, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching t [...]
+    "apiKey": { "index": 10, "kind": "property", "displayName": "Api Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The API key for 
authentication with CyberArk Conjur" },
+    "authToken": { "index": 11, "kind": "property", "displayName": "Auth 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Pre-authenticated token 
to use for CyberArk Conjur" },
+    "password": { "index": 12, "kind": "property", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication with CyberArk Conjur" },
+    "username": { "index": 13, "kind": "property", "displayName": "Username", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The username for 
authentication with CyberArk Conjur" }
   },
   "properties": {
     "label": { "index": 0, "kind": "path", "displayName": "Label", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Logical name" },
     "account": { "index": 1, "kind": "parameter", "displayName": "Account", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
account name" },
     "certificatePath": { "index": 2, "kind": "parameter", "displayName": 
"Certificate Path", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Path to the SSL 
certificate for verification" },
     "conjurClient": { "index": 3, "kind": "parameter", "displayName": "Conjur 
Client", "group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.cyberark.vault.client.ConjurClient", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Reference to a 
ConjurClient instance in the registry" },
-    "secretId": { "index": 4, "kind": "parameter", "displayName": "Secret Id", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The secret ID to 
retrieve from CyberArk Conjur" },
-    "url": { "index": 5, "kind": "parameter", "displayName": "Url", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
instance URL" },
-    "verifySsl": { "index": 6, "kind": "parameter", "displayName": "Verify 
Ssl", "group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Whether to verify SSL 
certificates when connecting to CyberArk Conjur" },
-    "lazyStartProducer": { "index": 7, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
-    "apiKey": { "index": 8, "kind": "parameter", "displayName": "Api Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The API key for 
authentication with CyberArk Conjur" },
-    "authToken": { "index": 9, "kind": "parameter", "displayName": "Auth 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Pre-authenticated token 
to use for CyberArk Conjur" },
-    "password": { "index": 10, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication with CyberArk Conjur" },
-    "username": { "index": 11, "kind": "parameter", "displayName": "Username", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The username for 
authentication with CyberArk Conjur" }
+    "operation": { "index": 4, "kind": "parameter", "displayName": 
"Operation", "group": "producer", "label": "", "required": false, "type": 
"enum", "javaType": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultOperations", "enum": [ 
"getSecret", "createSecret" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "getSecret", "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", " [...]
+    "secretId": { "index": 5, "kind": "parameter", "displayName": "Secret Id", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The secret ID to 
retrieve from CyberArk Conjur" },
+    "url": { "index": 6, "kind": "parameter", "displayName": "Url", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The CyberArk Conjur 
instance URL" },
+    "verifySsl": { "index": 7, "kind": "parameter", "displayName": "Verify 
Ssl", "group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Whether to verify SSL 
certificates when connecting to CyberArk Conjur" },
+    "lazyStartProducer": { "index": 8, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
+    "apiKey": { "index": 9, "kind": "parameter", "displayName": "Api Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The API key for 
authentication with CyberArk Conjur" },
+    "authToken": { "index": 10, "kind": "parameter", "displayName": "Auth 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "Pre-authenticated token 
to use for CyberArk Conjur" },
+    "password": { "index": 11, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication with CyberArk Conjur" },
+    "username": { "index": 12, "kind": "parameter", "displayName": "Username", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration", 
"configurationField": "configuration", "description": "The username for 
authentication with CyberArk Conjur" }
   }
 }
diff --git 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultConfiguration.java
 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultConfiguration.java
index fc6583d455a4..d7b862b8cded 100644
--- 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultConfiguration.java
+++ 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultConfiguration.java
@@ -36,6 +36,9 @@ public class CyberArkVaultConfiguration implements Cloneable {
     @UriParam(description = "The secret ID to retrieve from CyberArk Conjur")
     private String secretId;
 
+    @UriParam(defaultValue = "getSecret")
+    private CyberArkVaultOperations operation = 
CyberArkVaultOperations.getSecret;
+
     @UriParam
     @Metadata(required = true)
     private String url;
@@ -87,6 +90,17 @@ public class CyberArkVaultConfiguration implements Cloneable 
{
         this.secretId = secretId;
     }
 
+    public CyberArkVaultOperations getOperation() {
+        return operation;
+    }
+
+    /**
+     * The operation to perform. It can be getSecret or createSecret
+     */
+    public void setOperation(CyberArkVaultOperations operation) {
+        this.operation = operation;
+    }
+
     public String getUrl() {
         return url;
     }
diff --git 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultOperations.java
 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultOperations.java
new file mode 100644
index 000000000000..16c3a1a55110
--- /dev/null
+++ 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultOperations.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cyberark.vault;
+
+/**
+ * CyberArk Conjur Vault operations
+ */
+public enum CyberArkVaultOperations {
+
+    /**
+     * Retrieve a secret value from Conjur Vault
+     */
+    getSecret,
+
+    /**
+     * Create or update a secret in Conjur Vault
+     */
+    createSecret
+}
diff --git 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultProducer.java
 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultProducer.java
index df090ab6fd42..badd6041711a 100644
--- 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultProducer.java
+++ 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/CyberArkVaultProducer.java
@@ -38,7 +38,12 @@ public class CyberArkVaultProducer extends DefaultProducer {
 
     @Override
     public void process(Exchange exchange) throws Exception {
-        String version = 
exchange.getMessage().getHeader(CyberArkVaultConstants.SECRET_VERSION, 
String.class);
+        // Determine operation: Header > URI parameter
+        CyberArkVaultOperations operation = exchange.getMessage().getHeader(
+                CyberArkVaultConstants.OPERATION, 
CyberArkVaultOperations.class);
+        if (operation == null) {
+            operation = getConfiguration().getOperation();
+        }
 
         // Priority: Header > URI parameter
         String secretId = 
exchange.getMessage().getHeader(CyberArkVaultConstants.SECRET_ID, String.class);
@@ -52,17 +57,37 @@ public class CyberArkVaultProducer extends DefaultProducer {
                                                + 
CyberArkVaultConstants.SECRET_ID + ")");
         }
 
-        LOG.trace("Retrieving secret from CyberArk Conjur with id: {}", 
secretId);
-
         ConjurClient client = getEndpoint().getConjurClient();
-        String secretValue = client.retrieveSecret(secretId, version);
-
         Message message = exchange.getMessage();
-        message.setBody(secretValue);
-        message.setHeader(CyberArkVaultConstants.SECRET_ID, secretId);
-        message.setHeader(CyberArkVaultConstants.SECRET_VALUE, secretValue);
-        if (version != null) {
-            message.setHeader(CyberArkVaultConstants.SECRET_VERSION, version);
+
+        switch (operation) {
+            case getSecret:
+                String version = 
message.getHeader(CyberArkVaultConstants.SECRET_VERSION, String.class);
+                LOG.trace("Retrieving secret from CyberArk Conjur with id: 
{}", secretId);
+                String secretValue = client.retrieveSecret(secretId, version);
+                message.setBody(secretValue);
+                message.setHeader(CyberArkVaultConstants.SECRET_ID, secretId);
+                message.setHeader(CyberArkVaultConstants.SECRET_VALUE, 
secretValue);
+                if (version != null) {
+                    message.setHeader(CyberArkVaultConstants.SECRET_VERSION, 
version);
+                }
+                break;
+            case createSecret:
+                String secretValueToCreate = 
message.getHeader(CyberArkVaultConstants.SECRET_VALUE, String.class);
+                if (ObjectHelper.isEmpty(secretValueToCreate)) {
+                    secretValueToCreate = message.getBody(String.class);
+                }
+                if (ObjectHelper.isEmpty(secretValueToCreate)) {
+                    throw new IllegalArgumentException(
+                            "Secret value must be specified either as message 
body or as a message header ("
+                                                       + 
CyberArkVaultConstants.SECRET_VALUE + ")");
+                }
+                LOG.trace("Creating/updating secret in CyberArk Conjur with 
id: {}", secretId);
+                client.createSecret(secretId, secretValueToCreate);
+                message.setHeader(CyberArkVaultConstants.SECRET_ID, secretId);
+                break;
+            default:
+                throw new IllegalArgumentException("Unsupported operation: " + 
operation);
         }
     }
 
diff --git 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/client/ConjurClient.java
 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/client/ConjurClient.java
index ccf2c36f1aac..f82222465b8c 100644
--- 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/client/ConjurClient.java
+++ 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/client/ConjurClient.java
@@ -38,6 +38,14 @@ public interface ConjurClient extends AutoCloseable {
      */
     String retrieveSecret(String secretId, String version);
 
+    /**
+     * Create or update a secret in Conjur
+     *
+     * @param secretId    the ID of the secret to create/update
+     * @param secretValue the value to store
+     */
+    void createSecret(String secretId, String secretValue);
+
     /**
      * Authenticate with Conjur and obtain an access token
      *
diff --git 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/client/impl/ConjurClientImpl.java
 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/client/impl/ConjurClientImpl.java
index 34d5b4b99b0d..339f3154e367 100644
--- 
a/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/client/impl/ConjurClientImpl.java
+++ 
b/components/camel-cyberark-vault/src/main/java/org/apache/camel/component/cyberark/vault/client/impl/ConjurClientImpl.java
@@ -155,6 +155,47 @@ public class ConjurClientImpl implements ConjurClient {
         }
     }
 
+    @Override
+    public void createSecret(String secretId, String secretValue) {
+        try {
+            // Ensure we have a valid token
+            if (authToken == null) {
+                authToken = authenticate();
+            }
+
+            // URL encode the secret ID
+            String encodedSecretId = URLEncoder.encode(secretId, 
StandardCharsets.UTF_8);
+
+            // Build the secrets endpoint URL for creating/updating
+            String secretsUrl = String.format("%s/secrets/%s/variable/%s",
+                    url, account, encodedSecretId);
+
+            HttpRequest request = HttpRequest.newBuilder()
+                    .uri(URI.create(secretsUrl))
+                    .header("Authorization", "Token token=\"" + 
Base64.getEncoder()
+                            
.encodeToString(authToken.getBytes(StandardCharsets.UTF_8)) + "\"")
+                    .header("Content-Type", "text/plain")
+                    .POST(HttpRequest.BodyPublishers.ofString(secretValue))
+                    .build();
+
+            HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
+
+            if (response.statusCode() == 201 || response.statusCode() == 200) {
+                LOG.debug("Successfully created/updated secret: {}", secretId);
+            } else if (response.statusCode() == 401) {
+                // Token expired, re-authenticate and retry
+                LOG.debug("Token expired, re-authenticating");
+                authToken = authenticate();
+                createSecret(secretId, secretValue);
+            } else {
+                throw new IOException(
+                        "Failed to create/update secret: HTTP " + 
response.statusCode() + " - " + response.body());
+            }
+        } catch (IOException | InterruptedException e) {
+            throw new RuntimeException("Error creating/updating secret in 
Conjur: " + secretId, e);
+        }
+    }
+
     @Override
     public void close() throws Exception {
         authToken = null;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
index 92420d4d765a..63bb32b3f063 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
@@ -659,6 +659,11 @@ public final class DefaultConfigurationConfigurer {
             VaultConfiguration vault = camelContext.getVaultConfiguration();
             vault.setIBMSecretsManagerVaultConfiguration(ibmSecretsManager);
         }
+        CyberArkVaultConfiguration cyberark = getSingleBeanOfType(registry, 
CyberArkVaultConfiguration.class);
+        if (cyberark != null) {
+            VaultConfiguration vault = camelContext.getVaultConfiguration();
+            vault.setCyberArkVaultConfiguration(cyberark);
+        }
         configureVaultRefresh(camelContext);
 
         // apply custom configurations if any
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CyberarkVaultComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CyberarkVaultComponentBuilderFactory.java
index 2fd7298616db..9b956fec3ab2 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CyberarkVaultComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CyberarkVaultComponentBuilderFactory.java
@@ -137,6 +137,24 @@ public interface CyberarkVaultComponentBuilderFactory {
             return this;
         }
     
+        
+        /**
+         * The operation to perform. It can be getSecret or createSecret.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.cyberark.vault.CyberArkVaultOperations&lt;/code&gt;
 type.
+         * 
+         * Default: getSecret
+         * Group: producer
+         * 
+         * @param operation the value to set
+         * @return the dsl builder
+         */
+        default CyberarkVaultComponentBuilder 
operation(org.apache.camel.component.cyberark.vault.CyberArkVaultOperations 
operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
+    
         /**
          * The secret ID to retrieve from CyberArk Conjur.
          * 
@@ -292,6 +310,7 @@ public interface CyberarkVaultComponentBuilderFactory {
             case "configuration": ((CyberArkVaultComponent) 
component).setConfiguration((org.apache.camel.component.cyberark.vault.CyberArkVaultConfiguration)
 value); return true;
             case "conjurClient": 
getOrCreateConfiguration((CyberArkVaultComponent) 
component).setConjurClient((org.apache.camel.component.cyberark.vault.client.ConjurClient)
 value); return true;
             case "lazyStartProducer": ((CyberArkVaultComponent) 
component).setLazyStartProducer((boolean) value); return true;
+            case "operation": 
getOrCreateConfiguration((CyberArkVaultComponent) 
component).setOperation((org.apache.camel.component.cyberark.vault.CyberArkVaultOperations)
 value); return true;
             case "secretId": getOrCreateConfiguration((CyberArkVaultComponent) 
component).setSecretId((java.lang.String) value); return true;
             case "url": getOrCreateConfiguration((CyberArkVaultComponent) 
component).setUrl((java.lang.String) value); return true;
             case "verifySsl": 
getOrCreateConfiguration((CyberArkVaultComponent) 
component).setVerifySsl((boolean) value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CyberArkVaultEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CyberArkVaultEndpointBuilderFactory.java
index 01866351a578..b9a35f973e9f 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CyberArkVaultEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CyberArkVaultEndpointBuilderFactory.java
@@ -103,6 +103,38 @@ public interface CyberArkVaultEndpointBuilderFactory {
             doSetProperty("conjurClient", conjurClient);
             return this;
         }
+        /**
+         * The operation to perform. It can be getSecret or createSecret.
+         * 
+         * The option is a:
+         * 
<code>org.apache.camel.component.cyberark.vault.CyberArkVaultOperations</code> 
type.
+         * 
+         * Default: getSecret
+         * Group: producer
+         * 
+         * @param operation the value to set
+         * @return the dsl builder
+         */
+        default CyberArkVaultEndpointBuilder 
operation(org.apache.camel.component.cyberark.vault.CyberArkVaultOperations 
operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
+        /**
+         * The operation to perform. It can be getSecret or createSecret.
+         * 
+         * The option will be converted to a
+         * 
<code>org.apache.camel.component.cyberark.vault.CyberArkVaultOperations</code> 
type.
+         * 
+         * Default: getSecret
+         * Group: producer
+         * 
+         * @param operation the value to set
+         * @return the dsl builder
+         */
+        default CyberArkVaultEndpointBuilder operation(String operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
         /**
          * The secret ID to retrieve from CyberArk Conjur.
          * 

Reply via email to