You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/09/17 19:15:22 UTC
(camel) 02/06: CAMEL-24720: camel-aws-secrets-manager - the producer operations section shows createSecret, getSecret, deleteSecret and listSecrets with the headers they take
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch fix/CAMEL-24720-doc-endpoint-examples
in repository https://gitbox.apache.org/repos/asf/camel.git
commit f9b692da2cd57ad31a7b2364f43d84ed1c7975a2
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Sep 17 20:57:44 2026 +0200
CAMEL-24720: camel-aws-secrets-manager - the producer operations section shows createSecret, getSecret, deleteSecret and listSecrets with the headers they take
The page had examples of the properties function only; the producer section listed the operations (two
were missing) without an example. It now says which header names the secret (SecretName to create, SecretId
for the rest), what the body is before and after, and shows the four common operations in Java, XML and
YAML with the default credentials provider.
Co-Authored-By: Claude Fable 5.1 <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../docs/aws-secrets-manager-component.adoc | 210 +++++++++++++++++++++
.../main/docs/aws-secrets-manager-component.adoc | 210 +++++++++++++++++++++
2 files changed, 420 insertions(+)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-secrets-manager-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-secrets-manager-component.adoc
index a0e521f61bdb..4dcea506222a 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-secrets-manager-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-secrets-manager-component.adoc
@@ -526,6 +526,216 @@ Camel-AWS-Secrets-manager component provides the following operation on the prod
- batchGetSecret
- updateSecret
- replicateSecretToRegions
+- restoreSecret
+- putSecretValue
+
+The `operation` option selects what to do (the `CamelAwsSecretsManagerOperation` header overrides it per
+message), and the secret to work on comes from a header: `CamelAwsSecretsManagerSecretName` when creating a
+secret, `CamelAwsSecretsManagerSecretId` (the name or the ARN) for the other operations. The path of the
+endpoint is a logical name for the client, not a secret. With `pojoRequest=true` the message body is the AWS
+SDK request object instead.
+
+==== Creating a secret
+
+The message body is the value of the secret, as a string (with `binaryPayload=true` it is stored as binary):
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:createSecret")
+ .setHeader(SecretsManagerConstants.SECRET_NAME, constant("database"))
+ .setBody(constant("{\"username\":\"camel\",\"password\":\"secret\"}"))
+ .to("aws-secrets-manager:secrets?operation=createSecret®ion=eu-west-1&useDefaultCredentialsProvider=true");
+----
+
+XML::
++
+[source,xml]
+----
+<camelContext>
+ <route>
+ <from uri="direct:createSecret"/>
+ <setHeader name="CamelAwsSecretsManagerSecretName">
+ <constant>database</constant>
+ </setHeader>
+ <setBody>
+ <constant>{"username":"camel","password":"secret"}</constant>
+ </setBody>
+ <to uri="aws-secrets-manager:secrets?operation=createSecret&region=eu-west-1&useDefaultCredentialsProvider=true"/>
+ </route>
+</camelContext>
+----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+ from:
+ uri: direct:createSecret
+ steps:
+ - setHeader:
+ name: CamelAwsSecretsManagerSecretName
+ expression:
+ constant:
+ expression: database
+ - setBody:
+ expression:
+ constant:
+ expression: '{"username":"camel","password":"secret"}'
+ - to:
+ uri: aws-secrets-manager:secrets?operation=createSecret®ion=eu-west-1&useDefaultCredentialsProvider=true
+----
+====
+
+==== Getting a secret
+
+The message body becomes the value of the secret, and the `CamelAwsSecretsManagerSecretVersionId` header its
+version:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:getSecret")
+ .setHeader(SecretsManagerConstants.SECRET_ID, constant("database"))
+ .to("aws-secrets-manager:secrets?operation=getSecret®ion=eu-west-1&useDefaultCredentialsProvider=true")
+ .log("The database secret is ${body}");
+----
+
+XML::
++
+[source,xml]
+----
+<camelContext>
+ <route>
+ <from uri="direct:getSecret"/>
+ <setHeader name="CamelAwsSecretsManagerSecretId">
+ <constant>database</constant>
+ </setHeader>
+ <to uri="aws-secrets-manager:secrets?operation=getSecret&region=eu-west-1&useDefaultCredentialsProvider=true"/>
+ <log message="The database secret is ${body}"/>
+ </route>
+</camelContext>
+----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+ from:
+ uri: direct:getSecret
+ steps:
+ - setHeader:
+ name: CamelAwsSecretsManagerSecretId
+ expression:
+ constant:
+ expression: database
+ - to:
+ uri: aws-secrets-manager:secrets?operation=getSecret®ion=eu-west-1&useDefaultCredentialsProvider=true
+ - log:
+ message: "The database secret is ${body}"
+----
+====
+
+==== Deleting a secret
+
+The secret is scheduled for deletion with the default recovery window; the `CamelAwsSecretsManagerSecretForceDeletion`
+header set to `true` deletes it without a retention period:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:deleteSecret")
+ .setHeader(SecretsManagerConstants.SECRET_ID, constant("database"))
+ .to("aws-secrets-manager:secrets?operation=deleteSecret®ion=eu-west-1&useDefaultCredentialsProvider=true");
+----
+
+XML::
++
+[source,xml]
+----
+<camelContext>
+ <route>
+ <from uri="direct:deleteSecret"/>
+ <setHeader name="CamelAwsSecretsManagerSecretId">
+ <constant>database</constant>
+ </setHeader>
+ <to uri="aws-secrets-manager:secrets?operation=deleteSecret&region=eu-west-1&useDefaultCredentialsProvider=true"/>
+ </route>
+</camelContext>
+----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+ from:
+ uri: direct:deleteSecret
+ steps:
+ - setHeader:
+ name: CamelAwsSecretsManagerSecretId
+ expression:
+ constant:
+ expression: database
+ - to:
+ uri: aws-secrets-manager:secrets?operation=deleteSecret®ion=eu-west-1&useDefaultCredentialsProvider=true
+----
+====
+
+==== Listing the secrets
+
+The message body becomes the `ListSecretsResponse` of the AWS SDK, with the list of the secrets in the region;
+the `CamelAwsSecretsManagerMaxResults` header limits how many are returned:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:listSecrets")
+ .to("aws-secrets-manager:secrets?operation=listSecrets®ion=eu-west-1&useDefaultCredentialsProvider=true")
+ .log("The secrets are ${body}");
+----
+
+XML::
++
+[source,xml]
+----
+<camelContext>
+ <route>
+ <from uri="direct:listSecrets"/>
+ <to uri="aws-secrets-manager:secrets?operation=listSecrets&region=eu-west-1&useDefaultCredentialsProvider=true"/>
+ <log message="The secrets are ${body}"/>
+ </route>
+</camelContext>
+----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+ from:
+ uri: direct:listSecrets
+ steps:
+ - to:
+ uri: aws-secrets-manager:secrets?operation=listSecrets®ion=eu-west-1&useDefaultCredentialsProvider=true
+ - log:
+ message: "The secrets are ${body}"
+----
+====
== Dependencies
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/docs/aws-secrets-manager-component.adoc b/components/camel-aws/camel-aws-secrets-manager/src/main/docs/aws-secrets-manager-component.adoc
index a0e521f61bdb..4dcea506222a 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/docs/aws-secrets-manager-component.adoc
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/docs/aws-secrets-manager-component.adoc
@@ -526,6 +526,216 @@ Camel-AWS-Secrets-manager component provides the following operation on the prod
- batchGetSecret
- updateSecret
- replicateSecretToRegions
+- restoreSecret
+- putSecretValue
+
+The `operation` option selects what to do (the `CamelAwsSecretsManagerOperation` header overrides it per
+message), and the secret to work on comes from a header: `CamelAwsSecretsManagerSecretName` when creating a
+secret, `CamelAwsSecretsManagerSecretId` (the name or the ARN) for the other operations. The path of the
+endpoint is a logical name for the client, not a secret. With `pojoRequest=true` the message body is the AWS
+SDK request object instead.
+
+==== Creating a secret
+
+The message body is the value of the secret, as a string (with `binaryPayload=true` it is stored as binary):
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:createSecret")
+ .setHeader(SecretsManagerConstants.SECRET_NAME, constant("database"))
+ .setBody(constant("{\"username\":\"camel\",\"password\":\"secret\"}"))
+ .to("aws-secrets-manager:secrets?operation=createSecret®ion=eu-west-1&useDefaultCredentialsProvider=true");
+----
+
+XML::
++
+[source,xml]
+----
+<camelContext>
+ <route>
+ <from uri="direct:createSecret"/>
+ <setHeader name="CamelAwsSecretsManagerSecretName">
+ <constant>database</constant>
+ </setHeader>
+ <setBody>
+ <constant>{"username":"camel","password":"secret"}</constant>
+ </setBody>
+ <to uri="aws-secrets-manager:secrets?operation=createSecret&region=eu-west-1&useDefaultCredentialsProvider=true"/>
+ </route>
+</camelContext>
+----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+ from:
+ uri: direct:createSecret
+ steps:
+ - setHeader:
+ name: CamelAwsSecretsManagerSecretName
+ expression:
+ constant:
+ expression: database
+ - setBody:
+ expression:
+ constant:
+ expression: '{"username":"camel","password":"secret"}'
+ - to:
+ uri: aws-secrets-manager:secrets?operation=createSecret®ion=eu-west-1&useDefaultCredentialsProvider=true
+----
+====
+
+==== Getting a secret
+
+The message body becomes the value of the secret, and the `CamelAwsSecretsManagerSecretVersionId` header its
+version:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:getSecret")
+ .setHeader(SecretsManagerConstants.SECRET_ID, constant("database"))
+ .to("aws-secrets-manager:secrets?operation=getSecret®ion=eu-west-1&useDefaultCredentialsProvider=true")
+ .log("The database secret is ${body}");
+----
+
+XML::
++
+[source,xml]
+----
+<camelContext>
+ <route>
+ <from uri="direct:getSecret"/>
+ <setHeader name="CamelAwsSecretsManagerSecretId">
+ <constant>database</constant>
+ </setHeader>
+ <to uri="aws-secrets-manager:secrets?operation=getSecret&region=eu-west-1&useDefaultCredentialsProvider=true"/>
+ <log message="The database secret is ${body}"/>
+ </route>
+</camelContext>
+----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+ from:
+ uri: direct:getSecret
+ steps:
+ - setHeader:
+ name: CamelAwsSecretsManagerSecretId
+ expression:
+ constant:
+ expression: database
+ - to:
+ uri: aws-secrets-manager:secrets?operation=getSecret®ion=eu-west-1&useDefaultCredentialsProvider=true
+ - log:
+ message: "The database secret is ${body}"
+----
+====
+
+==== Deleting a secret
+
+The secret is scheduled for deletion with the default recovery window; the `CamelAwsSecretsManagerSecretForceDeletion`
+header set to `true` deletes it without a retention period:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:deleteSecret")
+ .setHeader(SecretsManagerConstants.SECRET_ID, constant("database"))
+ .to("aws-secrets-manager:secrets?operation=deleteSecret®ion=eu-west-1&useDefaultCredentialsProvider=true");
+----
+
+XML::
++
+[source,xml]
+----
+<camelContext>
+ <route>
+ <from uri="direct:deleteSecret"/>
+ <setHeader name="CamelAwsSecretsManagerSecretId">
+ <constant>database</constant>
+ </setHeader>
+ <to uri="aws-secrets-manager:secrets?operation=deleteSecret&region=eu-west-1&useDefaultCredentialsProvider=true"/>
+ </route>
+</camelContext>
+----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+ from:
+ uri: direct:deleteSecret
+ steps:
+ - setHeader:
+ name: CamelAwsSecretsManagerSecretId
+ expression:
+ constant:
+ expression: database
+ - to:
+ uri: aws-secrets-manager:secrets?operation=deleteSecret®ion=eu-west-1&useDefaultCredentialsProvider=true
+----
+====
+
+==== Listing the secrets
+
+The message body becomes the `ListSecretsResponse` of the AWS SDK, with the list of the secrets in the region;
+the `CamelAwsSecretsManagerMaxResults` header limits how many are returned:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+from("direct:listSecrets")
+ .to("aws-secrets-manager:secrets?operation=listSecrets®ion=eu-west-1&useDefaultCredentialsProvider=true")
+ .log("The secrets are ${body}");
+----
+
+XML::
++
+[source,xml]
+----
+<camelContext>
+ <route>
+ <from uri="direct:listSecrets"/>
+ <to uri="aws-secrets-manager:secrets?operation=listSecrets&region=eu-west-1&useDefaultCredentialsProvider=true"/>
+ <log message="The secrets are ${body}"/>
+ </route>
+</camelContext>
+----
+
+YAML::
++
+[source,yaml]
+----
+- route:
+ from:
+ uri: direct:listSecrets
+ steps:
+ - to:
+ uri: aws-secrets-manager:secrets?operation=listSecrets®ion=eu-west-1&useDefaultCredentialsProvider=true
+ - log:
+ message: "The secrets are ${body}"
+----
+====
== Dependencies