You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/03/15 07:32:42 UTC

[camel] branch master updated (5c18cd6 -> 7fbbb3a)

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

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 5c18cd6  CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - createSecret operation
     new d17198d  CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation
     new c212db6  CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation
     new 7fbbb3a  CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../docs/aws-secrets-manager-component.adoc        |  4 +-
 .../aws/secretsmanager/aws-secrets-manager.json    |  4 +-
 .../main/docs/aws-secrets-manager-component.adoc   |  4 +-
 .../secretsmanager/SecretsManagerConstants.java    |  1 +
 .../secretsmanager/SecretsManagerOperations.java   |  3 +-
 .../aws/secretsmanager/SecretsManagerProducer.java | 44 ++++++++++++++++++++++
 ...tsManagerGetSecretProducerIntegrationTest.java} | 14 +++----
 .../dsl/SecretsManagerEndpointBuilderFactory.java  |  3 +-
 .../ROOT/pages/aws-secrets-manager-component.adoc  |  4 +-
 9 files changed, 64 insertions(+), 17 deletions(-)
 copy components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/{SecretsManagerCreateSecretProducerIntegrationTest.java => SecretsManagerGetSecretProducerIntegrationTest.java} (82%)


[camel] 02/03: CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c212db6ac86fcdd7aa9cd0df4464b171125bb4ea
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Mar 15 08:30:48 2021 +0100

    CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation
---
 ...etsManagerGetSecretProducerIntegrationTest.java | 62 ++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerGetSecretProducerIntegrationTest.java b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerGetSecretProducerIntegrationTest.java
new file mode 100644
index 0000000..2744ef3
--- /dev/null
+++ b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerGetSecretProducerIntegrationTest.java
@@ -0,0 +1,62 @@
+/*
+ * 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.aws.secretsmanager.integration;
+
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+//@Disabled("This test must be manually started, you need to specify AWS Credentials")
+public class SecretsManagerGetSecretProducerIntegrationTest extends CamelTestSupport {
+
+    @EndpointInject("mock:result")
+    private MockEndpoint mock;
+
+    @Test
+    public void translateTextTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:listSecrets", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(SecretsManagerConstants.SECRET_ID, "test5");
+            }
+        });
+
+        String resultGet = (String) exchange.getIn().getBody();
+        assertNotNull(resultGet);
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:listSecrets")
+                        .to("aws-secrets-manager://test?accessKey=RAW(xxxx)&secretKey=RAW(yyyy)&region=eu-west-1&operation=getSecret")
+                        .to("mock:result");
+            }
+        };
+    }
+}


[camel] 03/03: CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7fbbb3a0ef9ea63abe52fb66cf6338ccc73c110b
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Mar 15 08:31:16 2021 +0100

    CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation
---
 .../integration/SecretsManagerGetSecretProducerIntegrationTest.java    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerGetSecretProducerIntegrationTest.java b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerGetSecretProducerIntegrationTest.java
index 2744ef3..e031c60 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerGetSecretProducerIntegrationTest.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerGetSecretProducerIntegrationTest.java
@@ -23,11 +23,12 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-//@Disabled("This test must be manually started, you need to specify AWS Credentials")
+@Disabled("This test must be manually started, you need to specify AWS Credentials")
 public class SecretsManagerGetSecretProducerIntegrationTest extends CamelTestSupport {
 
     @EndpointInject("mock:result")


[camel] 01/03: CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d17198d3f33212f7252bfbd90b2fb5019cfe23ca
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Mar 15 08:30:17 2021 +0100

    CAMEL-16323 - Create a Camel-AWS-Secret-Manager component - getSecret operation
---
 .../docs/aws-secrets-manager-component.adoc        |  4 +-
 .../aws/secretsmanager/aws-secrets-manager.json    |  4 +-
 .../main/docs/aws-secrets-manager-component.adoc   |  4 +-
 .../secretsmanager/SecretsManagerConstants.java    |  1 +
 .../secretsmanager/SecretsManagerOperations.java   |  3 +-
 .../aws/secretsmanager/SecretsManagerProducer.java | 44 ++++++++++++++++++++++
 .../dsl/SecretsManagerEndpointBuilderFactory.java  |  3 +-
 .../ROOT/pages/aws-secrets-manager-component.adoc  |  4 +-
 8 files changed, 57 insertions(+), 10 deletions(-)

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 bfa361d..9fcb666 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
@@ -52,7 +52,7 @@ The AWS Secrets Manager component supports 16 options, which are listed below.
 | *binaryPayload* (producer) | Set if the secret is binary or not | false | boolean
 | *configuration* (producer) | Component configuration |  | SecretsManagerConfiguration
 | *lazyStartProducer* (producer) | 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 during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: listSecrets, createSecret |  | SecretsManagerOperations
+| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: listSecrets, createSecret, getSecret |  | SecretsManagerOperations
 | *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the Secrets Manager client |  | String
@@ -98,7 +98,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *binaryPayload* (producer) | Set if the secret is binary or not | false | boolean
 | *lazyStartProducer* (producer) | 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 during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: listSecrets, createSecret |  | SecretsManagerOperations
+| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: listSecrets, createSecret, getSecret |  | SecretsManagerOperations
 | *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the Secrets Manager client |  | String
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
index bf598eb..81d65bd 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
+++ b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
@@ -25,7 +25,7 @@
     "binaryPayload": { "kind": "property", "displayName": "Binary Payload", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set if the secret is binary or not" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
     "lazyStartProducer": { "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 during star [...]
-    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations", "enum": [ "listSecrets", "createSecret" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "descri [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations", "enum": [ "listSecrets", "createSecret", "getSecret" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configurat [...]
     "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combin [...]
     "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
     "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Secrets Manager client" },
@@ -43,7 +43,7 @@
     "label": { "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.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Logical name" },
     "binaryPayload": { "kind": "parameter", "displayName": "Binary Payload", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set if the secret is binary or not" },
     "lazyStartProducer": { "kind": "parameter", "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 during sta [...]
-    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations", "enum": [ "listSecrets", "createSecret" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "descr [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations", "enum": [ "listSecrets", "createSecret", "getSecret" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configura [...]
     "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combi [...]
     "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
     "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Secrets Manager client" },
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 bfa361d..9fcb666 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
@@ -52,7 +52,7 @@ The AWS Secrets Manager component supports 16 options, which are listed below.
 | *binaryPayload* (producer) | Set if the secret is binary or not | false | boolean
 | *configuration* (producer) | Component configuration |  | SecretsManagerConfiguration
 | *lazyStartProducer* (producer) | 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 during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: listSecrets, createSecret |  | SecretsManagerOperations
+| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: listSecrets, createSecret, getSecret |  | SecretsManagerOperations
 | *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the Secrets Manager client |  | String
@@ -98,7 +98,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *binaryPayload* (producer) | Set if the secret is binary or not | false | boolean
 | *lazyStartProducer* (producer) | 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 during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: listSecrets, createSecret |  | SecretsManagerOperations
+| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: listSecrets, createSecret, getSecret |  | SecretsManagerOperations
 | *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the Secrets Manager client |  | String
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerConstants.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerConstants.java
index 2fadf94..36efd72 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerConstants.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerConstants.java
@@ -24,4 +24,5 @@ public interface SecretsManagerConstants {
     String MAX_RESULTS = "CamelAwsSecretsManagerMaxResults";
     String SECRET_NAME = "CamelAwsSecretsManagerSecretName";
     String SECRET_DESCRIPTION = "CamelAwsSecretsManagerSecretDescription";
+    String SECRET_ID = "CamelAwsSecretsManagerSecretId";
 }
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerOperations.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerOperations.java
index 2065077..78163a8 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerOperations.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerOperations.java
@@ -19,5 +19,6 @@ package org.apache.camel.component.aws.secretsmanager;
 public enum SecretsManagerOperations {
 
     listSecrets,
-    createSecret
+    createSecret,
+    getSecret
 }
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
index c805a62..ffffc3f 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
@@ -32,6 +32,8 @@ import software.amazon.awssdk.core.SdkBytes;
 import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
 import software.amazon.awssdk.services.secretsmanager.model.CreateSecretRequest;
 import software.amazon.awssdk.services.secretsmanager.model.CreateSecretResponse;
+import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
+import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
 import software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest;
 import software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest.Builder;
 import software.amazon.awssdk.services.secretsmanager.model.ListSecretsResponse;
@@ -59,6 +61,9 @@ public class SecretsManagerProducer extends DefaultProducer {
             case createSecret:
                 createSecret(getEndpoint().getSecretsManagerClient(), exchange);
                 break;
+            case getSecret:
+                getSecret(getEndpoint().getSecretsManagerClient(), exchange);
+                break;
             default:
                 throw new IllegalArgumentException("Unsupported operation");
         }
@@ -170,6 +175,45 @@ public class SecretsManagerProducer extends DefaultProducer {
         }
     }
 
+    private void getSecret(SecretsManagerClient secretsManagerClient, Exchange exchange) throws InvalidPayloadException {
+        if (getConfiguration().isPojoRequest()) {
+            Object payload = exchange.getIn().getMandatoryBody();
+            if (payload instanceof GetSecretValueRequest) {
+                GetSecretValueResponse result;
+                try {
+                    GetSecretValueRequest request = (GetSecretValueRequest) payload;
+                    result = secretsManagerClient.getSecretValue(request);
+                } catch (AwsServiceException ase) {
+                    LOG.trace("Get Secret Value command returned the error code {}", ase.awsErrorDetails().errorCode());
+                    throw ase;
+                }
+                Message message = getMessageForResponse(exchange);
+                message.setBody(result);
+            }
+        } else {
+            GetSecretValueRequest.Builder builder = GetSecretValueRequest.builder();
+            GetSecretValueResponse result;
+            try {
+                if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(SecretsManagerConstants.SECRET_ID))) {
+                    String secretId = exchange.getIn().getHeader(SecretsManagerConstants.SECRET_ID, String.class);
+                    builder.secretId(secretId);
+                } else {
+                    throw new IllegalArgumentException("Secret Id must be specified");
+                }
+                result = secretsManagerClient.getSecretValue(builder.build());
+            } catch (AwsServiceException ase) {
+                LOG.trace("Get Secret value command returned the error code {}", ase.awsErrorDetails().errorCode());
+                throw ase;
+            }
+            Message message = getMessageForResponse(exchange);
+            if (getConfiguration().isBinaryPayload()) {
+                message.setBody(new String(Base64.getDecoder().decode(result.secretBinary().asByteBuffer()).array()));
+            } else {
+                message.setBody(result.secretString());
+            }
+        }
+    }
+
     public static Message getMessageForResponse(final Exchange exchange) {
         return exchange.getMessage();
     }
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SecretsManagerEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SecretsManagerEndpointBuilderFactory.java
index ee23d6b..467d164 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SecretsManagerEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SecretsManagerEndpointBuilderFactory.java
@@ -430,7 +430,8 @@ public interface SecretsManagerEndpointBuilderFactory {
      */
     enum SecretsManagerOperations {
         listSecrets,
-        createSecret;
+        createSecret,
+        getSecret;
     }
 
     /**
diff --git a/docs/components/modules/ROOT/pages/aws-secrets-manager-component.adoc b/docs/components/modules/ROOT/pages/aws-secrets-manager-component.adoc
index 8517ee5..cdf9684 100644
--- a/docs/components/modules/ROOT/pages/aws-secrets-manager-component.adoc
+++ b/docs/components/modules/ROOT/pages/aws-secrets-manager-component.adoc
@@ -54,7 +54,7 @@ The AWS Secrets Manager component supports 16 options, which are listed below.
 | *binaryPayload* (producer) | Set if the secret is binary or not | false | boolean
 | *configuration* (producer) | Component configuration |  | SecretsManagerConfiguration
 | *lazyStartProducer* (producer) | 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 during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: listSecrets, createSecret |  | SecretsManagerOperations
+| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: listSecrets, createSecret, getSecret |  | SecretsManagerOperations
 | *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the Secrets Manager client |  | String
@@ -100,7 +100,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *binaryPayload* (producer) | Set if the secret is binary or not | false | boolean
 | *lazyStartProducer* (producer) | 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 during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: listSecrets, createSecret |  | SecretsManagerOperations
+| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: listSecrets, createSecret, getSecret |  | SecretsManagerOperations
 | *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the Secrets Manager client |  | String