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 <[email protected]> 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 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../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
