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 2026/01/13 10:12:38 UTC

(camel) branch main updated: CAMEL-22805 - Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - Remaining components (#20795)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 14963cc1b9d1 CAMEL-22805 - Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - Remaining components (#20795)
14963cc1b9d1 is described below

commit 14963cc1b9d1762263a5116d3e36f2d7fc4c222f
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Jan 13 11:12:31 2026 +0100

    CAMEL-22805 - Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - Remaining components (#20795)
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../apache/camel/catalog/components/aws2-kms.json  |   7 +-
 .../camel/catalog/components/aws2-lambda.json      |   9 +-
 .../apache/camel/catalog/components/aws2-mq.json   |   6 +-
 .../apache/camel/catalog/components/aws2-msk.json  |   6 +-
 .../apache/camel/catalog/components/aws2-sns.json  |   5 +-
 .../apache/camel/catalog/components/aws2-sqs.json  |   8 +-
 .../apache/camel/catalog/components/aws2-sts.json  |   7 +-
 .../apache/camel/component/aws2/kms/aws2-kms.json  |   7 +-
 .../camel/component/aws2/kms/KMS2Constants.java    |  19 ++
 .../camel/component/aws2/kms/KMS2Producer.java     | 338 ++++++++++-----------
 .../camel/component/aws2/lambda/aws2-lambda.json   |   9 +-
 .../component/aws2/lambda/Lambda2Constants.java    |  25 ++
 .../component/aws2/lambda/Lambda2Producer.java     |  47 ++-
 .../apache/camel/component/aws2/mq/aws2-mq.json    |   6 +-
 .../camel/component/aws2/mq/MQ2Constants.java      |  16 +
 .../camel/component/aws2/mq/MQ2Producer.java       |  25 +-
 .../apache/camel/component/aws2/msk/aws2-msk.json  |   6 +-
 .../camel/component/aws2/msk/MSK2Constants.java    |  16 +
 .../camel/component/aws2/msk/MSK2Producer.java     |  31 +-
 .../apache/camel/component/aws2/sns/aws2-sns.json  |   5 +-
 .../camel/component/aws2/sns/Sns2Constants.java    |  13 +
 .../camel/component/aws2/sns/Sns2Producer.java     |   5 +
 .../apache/camel/component/aws2/sqs/aws2-sqs.json  |   8 +-
 .../camel/component/aws2/sqs/Sqs2Constants.java    |  24 ++
 .../camel/component/aws2/sqs/Sqs2Producer.java     |  28 +-
 .../SqsProducerSendByteArrayLocalstackIT.java      |   3 +-
 .../SqsProducerSendLocalstackMaxAttributesIT.java  |   3 +-
 .../apache/camel/component/aws2/sts/aws2-sts.json  |   7 +-
 .../camel/component/aws2/sts/STS2Constants.java    |  13 +
 .../camel/component/aws2/sts/STS2Producer.java     |  21 ++
 .../endpoint/dsl/KMS2EndpointBuilderFactory.java   |  60 ++++
 .../dsl/Lambda2EndpointBuilderFactory.java         |  86 ++++++
 .../endpoint/dsl/MQ2EndpointBuilderFactory.java    |  48 +++
 .../endpoint/dsl/MSK2EndpointBuilderFactory.java   |  48 +++
 .../endpoint/dsl/STS2EndpointBuilderFactory.java   |  60 ++++
 .../endpoint/dsl/Sns2EndpointBuilderFactory.java   |  36 +++
 .../endpoint/dsl/Sqs2EndpointBuilderFactory.java   |  72 +++++
 37 files changed, 929 insertions(+), 204 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-kms.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-kms.json
index d98eca3ad8f2..0ef0019a2cc9 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-kms.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-kms.json
@@ -50,7 +50,12 @@
     "CamelAwsKMSLimit": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The limit number of keys to return while performing a listKeys operation", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#LIMIT" },
     "CamelAwsKMSDescription": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A key description to use while performing a createKey operation", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#DESCRIPTION" },
     "CamelAwsKMSKeyId": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key Id", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#KEY_ID" },
-    "CamelAwsKMSPendingWindowInDays": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The waiting period, specified in number of days.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#PENDING_WINDOW_IN_DAYS" }
+    "CamelAwsKMSPendingWindowInDays": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The waiting period, specified in number of days.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#PENDING_WINDOW_IN_DAYS" },
+    "CamelAwsKMSMarker": { "index": 5, "kind": "header", "displayName": "", "group": "listKeys", "label": "listKeys", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The marker for the next set of results.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#MARKER" },
+    "CamelAwsKMSTruncated": { "index": 6, "kind": "header", "displayName": "", "group": "listKeys", "label": "listKeys", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#IS_TRUNCATED" },
+    "CamelAwsKMSKeyArn": { "index": 7, "kind": "header", "displayName": "", "group": "createKey describeKey", "label": "createKey describeKey", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the key.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#KEY_ARN" },
+    "CamelAwsKMSKeyState": { "index": 8, "kind": "header", "displayName": "", "group": "createKey describeKey", "label": "createKey describeKey", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The state of the key.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#KEY_STATE" },
+    "CamelAwsKMSDeletionDate": { "index": 9, "kind": "header", "displayName": "", "group": "scheduleKeyDeletion", "label": "scheduleKeyDeletion", "required": false, "javaType": "java.time.Instant", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The date and time after which AWS KMS deletes the key.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#DELETION_DATE" }
   },
   "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.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-lambda.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-lambda.json
index 2ea88d47eb3e..75e1f190a83b 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-lambda.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-lambda.json
@@ -77,7 +77,14 @@
     "CamelAwsLambdaVersionRevisionId": { "index": 26, "kind": "header", "displayName": "", "group": "publishVersion", "label": "publishVersion", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Only update the function if the revision ID matches the ID that's specified.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#VERSION_REVISION_ID" },
     "CamelAwsLambdaFunctionVersion": { "index": 27, "kind": "header", "displayName": "", "group": "createAlias listAliases", "label": "createAlias listAliases", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The function version to set in the alias", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_VERSION" },
     "CamelAwsLambdaAliasFunctionName": { "index": 28, "kind": "header", "displayName": "", "group": "createAlias deleteAlias getAlias", "label": "createAlias deleteAlias getAlias", "required": true, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The function name of the alias", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_ALIAS_NAME" },
-    "CamelAwsLambdaAliasFunctionDescription": { "index": 29, "kind": "header", "displayName": "", "group": "createAlias", "label": "createAlias", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The function description to set in the alias", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_ALIAS_DESCRIPTION" }
+    "CamelAwsLambdaAliasFunctionDescription": { "index": 29, "kind": "header", "displayName": "", "group": "createAlias", "label": "createAlias", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The function description to set in the alias", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_ALIAS_DESCRIPTION" },
+    "CamelAwsLambdaMarker": { "index": 30, "kind": "header", "displayName": "", "group": "listFunctions listVersions listAliases listEventSourceMapping listTags", "label": "listFunctions listVersions listAliases listEventSourceMapping listTags", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The marker for the next set of results.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Con [...]
+    "CamelAwsLambdaMaxItems": { "index": 31, "kind": "header", "displayName": "", "group": "listFunctions listVersions listAliases listEventSourceMapping", "label": "listFunctions listVersions listAliases listEventSourceMapping", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of results to return.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#MAX_ITEMS" },
+    "CamelAwsLambdaIsTruncated": { "index": 32, "kind": "header", "displayName": "", "group": "listFunctions listVersions listAliases listEventSourceMapping", "label": "listFunctions listVersions listAliases listEventSourceMapping", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2C [...]
+    "CamelAwsLambdaFunctionArn": { "index": 33, "kind": "header", "displayName": "", "group": "createFunction getFunction publishVersion createAlias getAlias", "label": "createFunction getFunction publishVersion createAlias getAlias", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the function.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Consta [...]
+    "CamelAwsLambdaStatusCode": { "index": 34, "kind": "header", "displayName": "", "group": "invokeFunction", "label": "invokeFunction", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP status code of the function invocation.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#STATUS_CODE" },
+    "CamelAwsLambdaFunctionError": { "index": 35, "kind": "header", "displayName": "", "group": "invokeFunction", "label": "invokeFunction", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If present, indicates that an error occurred during function execution.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_ERROR" },
+    "CamelAwsLambdaLogResult": { "index": 36, "kind": "header", "displayName": "", "group": "invokeFunction", "label": "invokeFunction", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The last 4 KB of the execution log.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#LOG_RESULT" }
   },
   "properties": {
     "function": { "index": 0, "kind": "path", "displayName": "Function", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the Lambda function." },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-mq.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-mq.json
index d49fc6b38e0c..3f3c248cc56a 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-mq.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-mq.json
@@ -58,7 +58,11 @@
     "CamelAwsMQBrokerDeploymentMode": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The deployment mode for the broker in the createBroker operation", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_DEPLOYMENT_MODE" },
     "CamelAwsMQBrokerInstanceType": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The instance type for the MQ machine in the createBroker operation", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_INSTANCE_TYPE" },
     "CamelAwsMQBrokerUsers": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "List<User>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The list of users for MQ", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_USERS" },
-    "CamelAwsMQBrokerPubliclyAccessible": { "index": 10, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "false", "description": "If the MQ instance must be publicly available or not.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_PUBLICLY_ACCESSIBLE" }
+    "CamelAwsMQBrokerPubliclyAccessible": { "index": 10, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "false", "description": "If the MQ instance must be publicly available or not.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_PUBLICLY_ACCESSIBLE" },
+    "CamelAwsMQNextToken": { "index": 11, "kind": "header", "displayName": "", "group": "listBrokers", "label": "listBrokers", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The token for the next set of results.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#NEXT_TOKEN" },
+    "CamelAwsMQIsTruncated": { "index": 12, "kind": "header", "displayName": "", "group": "listBrokers", "label": "listBrokers", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#IS_TRUNCATED" },
+    "CamelAwsMQBrokerArn": { "index": 13, "kind": "header", "displayName": "", "group": "createBroker", "label": "createBroker", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the broker.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_ARN" },
+    "CamelAwsMQBrokerState": { "index": 14, "kind": "header", "displayName": "", "group": "describeBroker", "label": "describeBroker", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The state of the broker.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_STATE" }
   },
   "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.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-msk.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-msk.json
index 9f4e88bf827f..867e18245d2c 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-msk.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-msk.json
@@ -54,7 +54,11 @@
     "CamelAwsMSKClusterArn": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The cluster arn for delete operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#CLUSTER_ARN" },
     "CamelAwsMSKClusterKafkaVersion": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Kafka for the cluster during create operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#CLUSTER_KAFKA_VERSION" },
     "CamelAwsMSKBrokerNodesNumber": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of nodes for the cluster during create operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#BROKER_NODES_NUMBER" },
-    "CamelAwsMSKBrokerNodesGroupInfo": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "software.amazon.awssdk.services.kafka.model.BrokerNodeGroupInfo", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Broker nodes group info to provide during the create operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#BROKER_NODES_GROUP_INFO" }
+    "CamelAwsMSKBrokerNodesGroupInfo": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "software.amazon.awssdk.services.kafka.model.BrokerNodeGroupInfo", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Broker nodes group info to provide during the create operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#BROKER_NODES_GROUP_INFO" },
+    "CamelAwsMSKNextToken": { "index": 7, "kind": "header", "displayName": "", "group": "listClusters", "label": "listClusters", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The token for the next set of results.", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#NEXT_TOKEN" },
+    "CamelAwsMSKMaxResults": { "index": 8, "kind": "header", "displayName": "", "group": "listClusters", "label": "listClusters", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of results to return.", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#MAX_RESULTS" },
+    "CamelAwsMSKIsTruncated": { "index": 9, "kind": "header", "displayName": "", "group": "listClusters", "label": "listClusters", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#IS_TRUNCATED" },
+    "CamelAwsMSKClusterState": { "index": 10, "kind": "header", "displayName": "", "group": "createCluster describeCluster", "label": "createCluster describeCluster", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The state of the cluster.", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#CLUSTER_STATE" }
   },
   "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.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sns.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sns.json
index ad028d0acf1b..dd46f96611e1 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sns.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sns.json
@@ -59,7 +59,10 @@
   "headers": {
     "CamelAwsSnsMessageId": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon SNS message ID.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#MESSAGE_ID" },
     "CamelAwsSnsSubject": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon SNS message subject. If not set, the subject from the SnsConfiguration is used.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#SUBJECT" },
-    "CamelAwsSnsMessageStructure": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message structure to use such as json.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#MESSAGE_STRUCTURE" }
+    "CamelAwsSnsMessageStructure": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message structure to use such as json.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#MESSAGE_STRUCTURE" },
+    "CamelAwsSnsSequenceNumber": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The sequence number for FIFO topics.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#SEQUENCE_NUMBER" },
+    "CamelAwsSnsFailedMessageCount": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of failed messages in a batch publish operation.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#FAILED_MESSAGE_COUNT" },
+    "CamelAwsSnsSuccessfulMessageCount": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of successful messages in a batch publish operation.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#SUCCESSFUL_MESSAGE_COUNT" }
   },
   "properties": {
     "topicNameOrArn": { "index": 0, "kind": "path", "displayName": "Topic Name Or Arn", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Topic name or ARN" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sqs.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sqs.json
index ca36257c6475..6759e71ffd08 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sqs.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sqs.json
@@ -85,7 +85,13 @@
     "CamelAwsSqsReceiptHandle": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon SQS message receipt handle.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#RECEIPT_HANDLE" },
     "CamelAwsSqsDelaySeconds": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The delay seconds that the Amazon SQS message can be see by others.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#DELAY_HEADER" },
     "CamelAwsSqsPrefix": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A string to use for filtering the list results.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SQS_QUEUE_PREFIX" },
-    "CamelAwsSqsOperation": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SQS_OPERATION" }
+    "CamelAwsSqsOperation": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SQS_OPERATION" },
+    "CamelAwsSqsNextToken": { "index": 8, "kind": "header", "displayName": "", "group": "listQueues", "label": "listQueues", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The token for the next set of results.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#NEXT_TOKEN" },
+    "CamelAwsSqsMaxResults": { "index": 9, "kind": "header", "displayName": "", "group": "listQueues", "label": "listQueues", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of results to return.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#MAX_RESULTS" },
+    "CamelAwsSqsIsTruncated": { "index": 10, "kind": "header", "displayName": "", "group": "listQueues", "label": "listQueues", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#IS_TRUNCATED" },
+    "CamelAwsSqsSequenceNumber": { "index": 11, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The sequence number for FIFO queues.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SEQUENCE_NUMBER" },
+    "CamelAwsSqsFailedMessageCount": { "index": 12, "kind": "header", "displayName": "", "group": "sendBatchMessage", "label": "sendBatchMessage", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of failed messages in a batch send operation.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#FAILED_MESSAGE_COUNT" },
+    "CamelAwsSqsSuccessfulMessageCount": { "index": 13, "kind": "header", "displayName": "", "group": "sendBatchMessage", "label": "sendBatchMessage", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of successful messages in a batch send operation.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SUCCESSFUL_MESSAGE_COUNT" }
   },
   "properties": {
     "queueNameOrArn": { "index": 0, "kind": "path", "displayName": "Queue Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Queue name or ARN" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sts.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sts.json
index a1508908131c..5231ee6611cc 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sts.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sts.json
@@ -48,7 +48,12 @@
     "CamelAwsStsRoleArn": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the role to assume.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ROLE_ARN" },
     "CamelAwsStsRoleSessionName": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "An identifier for the assumed role session.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ROLE_SESSION_NAME" },
     "CamelAwsStsFederatedName": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the federated user.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#FEDERATED_NAME" },
-    "CamelAwsStsAssumeRoleDurationSeconds": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The duration, in seconds, of the role session. It could go from 900 seconds, to 1 to 12 hours (dependent on administrator settings. The default if not specified is 3600 seconds.", "constantName": "org.apache.camel.component. [...]
+    "CamelAwsStsAssumeRoleDurationSeconds": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The duration, in seconds, of the role session. It could go from 900 seconds, to 1 to 12 hours (dependent on administrator settings. The default if not specified is 3600 seconds.", "constantName": "org.apache.camel.component. [...]
+    "CamelAwsStsAccessKeyId": { "index": 5, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary access key ID.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ACCESS_KEY_ID" },
+    "CamelAwsStsSecretKey": { "index": 6, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary secret access key.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#SECRET_KEY_ID" },
+    "CamelAwsStsSessionToken": { "index": 7, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary session token.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#SESSION_TOKEN" },
+    "CamelAwsStsExpiration": { "index": 8, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "java.time.Instant", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration date and time of the credentials.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#EXPIRATION" },
+    "CamelAwsStsAssumedRoleArn": { "index": 9, "kind": "header", "displayName": "", "group": "assumeRole", "label": "assumeRole", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the assumed role.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ASSUMED_ROLE_ARN" }
   },
   "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.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/components/camel-aws/camel-aws2-kms/src/generated/resources/META-INF/org/apache/camel/component/aws2/kms/aws2-kms.json b/components/camel-aws/camel-aws2-kms/src/generated/resources/META-INF/org/apache/camel/component/aws2/kms/aws2-kms.json
index d98eca3ad8f2..0ef0019a2cc9 100644
--- a/components/camel-aws/camel-aws2-kms/src/generated/resources/META-INF/org/apache/camel/component/aws2/kms/aws2-kms.json
+++ b/components/camel-aws/camel-aws2-kms/src/generated/resources/META-INF/org/apache/camel/component/aws2/kms/aws2-kms.json
@@ -50,7 +50,12 @@
     "CamelAwsKMSLimit": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The limit number of keys to return while performing a listKeys operation", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#LIMIT" },
     "CamelAwsKMSDescription": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A key description to use while performing a createKey operation", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#DESCRIPTION" },
     "CamelAwsKMSKeyId": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key Id", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#KEY_ID" },
-    "CamelAwsKMSPendingWindowInDays": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The waiting period, specified in number of days.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#PENDING_WINDOW_IN_DAYS" }
+    "CamelAwsKMSPendingWindowInDays": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The waiting period, specified in number of days.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#PENDING_WINDOW_IN_DAYS" },
+    "CamelAwsKMSMarker": { "index": 5, "kind": "header", "displayName": "", "group": "listKeys", "label": "listKeys", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The marker for the next set of results.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#MARKER" },
+    "CamelAwsKMSTruncated": { "index": 6, "kind": "header", "displayName": "", "group": "listKeys", "label": "listKeys", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#IS_TRUNCATED" },
+    "CamelAwsKMSKeyArn": { "index": 7, "kind": "header", "displayName": "", "group": "createKey describeKey", "label": "createKey describeKey", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the key.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#KEY_ARN" },
+    "CamelAwsKMSKeyState": { "index": 8, "kind": "header", "displayName": "", "group": "createKey describeKey", "label": "createKey describeKey", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The state of the key.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#KEY_STATE" },
+    "CamelAwsKMSDeletionDate": { "index": 9, "kind": "header", "displayName": "", "group": "scheduleKeyDeletion", "label": "scheduleKeyDeletion", "required": false, "javaType": "java.time.Instant", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The date and time after which AWS KMS deletes the key.", "constantName": "org.apache.camel.component.aws2.kms.KMS2Constants#DELETION_DATE" }
   },
   "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.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/components/camel-aws/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2Constants.java b/components/camel-aws/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2Constants.java
index 425997ccc546..68803d3afd96 100644
--- a/components/camel-aws/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2Constants.java
+++ b/components/camel-aws/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2Constants.java
@@ -32,4 +32,23 @@ public interface KMS2Constants {
     String KEY_ID = "CamelAwsKMSKeyId";
     @Metadata(description = "The waiting period, specified in number of days.", javaType = "Integer")
     String PENDING_WINDOW_IN_DAYS = "CamelAwsKMSPendingWindowInDays";
+
+    // Pagination constants
+    @Metadata(label = "listKeys",
+              description = "The marker for the next set of results.", javaType = "String")
+    String MARKER = "CamelAwsKMSMarker";
+    @Metadata(label = "listKeys",
+              description = "Whether the response has more results (is truncated).", javaType = "Boolean")
+    String IS_TRUNCATED = "CamelAwsKMSTruncated";
+
+    // Response metadata
+    @Metadata(label = "createKey describeKey",
+              description = "The Amazon Resource Name (ARN) of the key.", javaType = "String")
+    String KEY_ARN = "CamelAwsKMSKeyArn";
+    @Metadata(label = "createKey describeKey",
+              description = "The state of the key.", javaType = "String")
+    String KEY_STATE = "CamelAwsKMSKeyState";
+    @Metadata(label = "scheduleKeyDeletion",
+              description = "The date and time after which AWS KMS deletes the key.", javaType = "java.time.Instant")
+    String DELETION_DATE = "CamelAwsKMSDeletionDate";
 }
diff --git a/components/camel-aws/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2Producer.java b/components/camel-aws/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2Producer.java
index 10f9bd1b6dde..dcbc8c92ace3 100644
--- a/components/camel-aws/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2Producer.java
+++ b/components/camel-aws/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2Producer.java
@@ -16,6 +16,10 @@
  */
 package org.apache.camel.component.aws2.kms;
 
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+import java.util.function.Supplier;
+
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.InvalidPayloadException;
@@ -32,9 +36,7 @@ import software.amazon.awssdk.services.kms.model.CreateKeyResponse;
 import software.amazon.awssdk.services.kms.model.DescribeKeyRequest;
 import software.amazon.awssdk.services.kms.model.DescribeKeyResponse;
 import software.amazon.awssdk.services.kms.model.DisableKeyRequest;
-import software.amazon.awssdk.services.kms.model.DisableKeyResponse;
 import software.amazon.awssdk.services.kms.model.EnableKeyRequest;
-import software.amazon.awssdk.services.kms.model.EnableKeyResponse;
 import software.amazon.awssdk.services.kms.model.ListKeysRequest;
 import software.amazon.awssdk.services.kms.model.ListKeysResponse;
 import software.amazon.awssdk.services.kms.model.ScheduleKeyDeletionRequest;
@@ -110,210 +112,192 @@ public class KMS2Producer extends DefaultProducer {
     }
 
     private void listKeys(KmsClient kmsClient, Exchange exchange) throws InvalidPayloadException {
-        if (getConfiguration().isPojoRequest()) {
-            Object payload = exchange.getIn().getMandatoryBody();
-            if (payload instanceof ListKeysRequest) {
-                ListKeysResponse result;
-                try {
-                    result = kmsClient.listKeys((ListKeysRequest) payload);
-                } catch (AwsServiceException ase) {
-                    LOG.trace("List Keys command returned the error code {}", ase.awsErrorDetails().errorCode());
-                    throw ase;
-                }
-                Message message = getMessageForResponse(exchange);
-                message.setBody(result);
-            }
-        } else {
-            ListKeysRequest.Builder builder = ListKeysRequest.builder();
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(KMS2Constants.LIMIT))) {
-                int limit = exchange.getIn().getHeader(KMS2Constants.LIMIT, Integer.class);
-                builder.limit(limit);
-            }
-            ListKeysResponse result;
-            try {
-                result = kmsClient.listKeys(builder.build());
-            } catch (AwsServiceException ase) {
-                LOG.trace("List Keys command returned the error code {}", ase.awsErrorDetails().errorCode());
-                throw ase;
-            }
-            Message message = getMessageForResponse(exchange);
-            message.setBody(result);
-        }
+        executeOperation(
+                exchange,
+                ListKeysRequest.class,
+                kmsClient::listKeys,
+                () -> {
+                    ListKeysRequest.Builder builder = ListKeysRequest.builder();
+                    Integer limit = getOptionalHeader(exchange, KMS2Constants.LIMIT, Integer.class);
+                    if (limit != null) {
+                        builder.limit(limit);
+                    }
+                    String marker = getOptionalHeader(exchange, KMS2Constants.MARKER, String.class);
+                    if (marker != null) {
+                        builder.marker(marker);
+                    }
+                    return kmsClient.listKeys(builder.build());
+                },
+                "List Keys",
+                (ListKeysResponse response, Message message) -> {
+                    message.setHeader(KMS2Constants.MARKER, response.nextMarker());
+                    message.setHeader(KMS2Constants.IS_TRUNCATED, response.truncated());
+                });
     }
 
     private void createKey(KmsClient kmsClient, Exchange exchange) throws InvalidPayloadException {
-        if (getConfiguration().isPojoRequest()) {
-            Object payload = exchange.getIn().getMandatoryBody();
-            if (payload instanceof CreateKeyRequest) {
-                CreateKeyResponse result;
-                try {
-                    result = kmsClient.createKey((CreateKeyRequest) payload);
-                } catch (AwsServiceException ase) {
-                    LOG.trace("Create Key command returned the error code {}", ase.awsErrorDetails().errorCode());
-                    throw ase;
-                }
-                Message message = getMessageForResponse(exchange);
-                message.setBody(result);
-            }
-        } else {
-            CreateKeyRequest.Builder builder = CreateKeyRequest.builder();
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(KMS2Constants.DESCRIPTION))) {
-                String description = exchange.getIn().getHeader(KMS2Constants.DESCRIPTION, String.class);
-                builder.description(description);
-            }
-            CreateKeyResponse result;
-            try {
-                result = kmsClient.createKey(builder.build());
-            } catch (AwsServiceException ase) {
-                LOG.trace("Create Key command returned the error code {}", ase.awsErrorDetails().errorCode());
-                throw ase;
-            }
-            Message message = getMessageForResponse(exchange);
-            message.setBody(result);
-        }
+        executeOperation(
+                exchange,
+                CreateKeyRequest.class,
+                kmsClient::createKey,
+                () -> {
+                    CreateKeyRequest.Builder builder = CreateKeyRequest.builder();
+                    String description = getOptionalHeader(exchange, KMS2Constants.DESCRIPTION, String.class);
+                    if (description != null) {
+                        builder.description(description);
+                    }
+                    return kmsClient.createKey(builder.build());
+                },
+                "Create Key",
+                (CreateKeyResponse response, Message message) -> {
+                    if (response.keyMetadata() != null) {
+                        message.setHeader(KMS2Constants.KEY_ID, response.keyMetadata().keyId());
+                        message.setHeader(KMS2Constants.KEY_ARN, response.keyMetadata().arn());
+                        message.setHeader(KMS2Constants.KEY_STATE, response.keyMetadata().keyStateAsString());
+                    }
+                });
     }
 
     private void disableKey(KmsClient kmsClient, Exchange exchange) throws InvalidPayloadException {
-        if (getConfiguration().isPojoRequest()) {
-            Object payload = exchange.getIn().getMandatoryBody();
-            if (payload instanceof DisableKeyRequest) {
-                DisableKeyResponse result;
-                try {
-                    result = kmsClient.disableKey((DisableKeyRequest) payload);
-                } catch (AwsServiceException ase) {
-                    LOG.trace("Disable Key command returned the error code {}", ase.awsErrorDetails().errorCode());
-                    throw ase;
-                }
-                Message message = getMessageForResponse(exchange);
-                message.setBody(result);
-            }
-        } else {
-            DisableKeyRequest.Builder builder = DisableKeyRequest.builder();
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(KMS2Constants.KEY_ID))) {
-                String keyId = exchange.getIn().getHeader(KMS2Constants.KEY_ID, String.class);
-                builder.keyId(keyId);
-            } else {
-                throw new IllegalArgumentException(MISSING_KEY_ID);
-            }
-            DisableKeyResponse result;
-            try {
-                result = kmsClient.disableKey(builder.build());
-            } catch (AwsServiceException ase) {
-                LOG.trace("Disable Key command returned the error code {}", ase.awsErrorDetails().errorCode());
-                throw ase;
-            }
-            Message message = getMessageForResponse(exchange);
-            message.setBody(result);
-        }
+        executeOperation(
+                exchange,
+                DisableKeyRequest.class,
+                kmsClient::disableKey,
+                () -> {
+                    String keyId = getRequiredHeader(exchange, KMS2Constants.KEY_ID, String.class, MISSING_KEY_ID);
+                    return kmsClient.disableKey(DisableKeyRequest.builder().keyId(keyId).build());
+                },
+                "Disable Key");
     }
 
     private void scheduleKeyDeletion(KmsClient kmsClient, Exchange exchange) throws InvalidPayloadException {
-        if (getConfiguration().isPojoRequest()) {
-            Object payload = exchange.getIn().getMandatoryBody();
-            if (payload instanceof ScheduleKeyDeletionRequest) {
-                ScheduleKeyDeletionResponse result;
-                try {
-                    result = kmsClient.scheduleKeyDeletion((ScheduleKeyDeletionRequest) payload);
-                } catch (AwsServiceException ase) {
-                    LOG.trace("Schedule Key Deletion command returned the error code {}", ase.awsErrorDetails().errorCode());
-                    throw ase;
-                }
-                Message message = getMessageForResponse(exchange);
-                message.setBody(result);
-            }
-        } else {
-            ScheduleKeyDeletionRequest.Builder builder = ScheduleKeyDeletionRequest.builder();
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(KMS2Constants.KEY_ID))) {
-                String keyId = exchange.getIn().getHeader(KMS2Constants.KEY_ID, String.class);
-                builder.keyId(keyId);
-            } else {
-                throw new IllegalArgumentException(MISSING_KEY_ID);
-            }
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(KMS2Constants.PENDING_WINDOW_IN_DAYS))) {
-                int pendingWindows = exchange.getIn().getHeader(KMS2Constants.PENDING_WINDOW_IN_DAYS, Integer.class);
-                builder.pendingWindowInDays(pendingWindows);
-            }
-            ScheduleKeyDeletionResponse result;
-            try {
-                result = kmsClient.scheduleKeyDeletion(builder.build());
-            } catch (AwsServiceException ase) {
-                LOG.trace("Schedule Key Deletion command returned the error code {}", ase.awsErrorDetails().errorCode());
-                throw ase;
-            }
-            Message message = getMessageForResponse(exchange);
-            message.setBody(result);
-        }
+        executeOperation(
+                exchange,
+                ScheduleKeyDeletionRequest.class,
+                kmsClient::scheduleKeyDeletion,
+                () -> {
+                    ScheduleKeyDeletionRequest.Builder builder = ScheduleKeyDeletionRequest.builder();
+                    String keyId = getRequiredHeader(exchange, KMS2Constants.KEY_ID, String.class, MISSING_KEY_ID);
+                    builder.keyId(keyId);
+                    Integer pendingWindows = getOptionalHeader(exchange, KMS2Constants.PENDING_WINDOW_IN_DAYS, Integer.class);
+                    if (pendingWindows != null) {
+                        builder.pendingWindowInDays(pendingWindows);
+                    }
+                    return kmsClient.scheduleKeyDeletion(builder.build());
+                },
+                "Schedule Key Deletion",
+                (ScheduleKeyDeletionResponse response, Message message) -> {
+                    message.setHeader(KMS2Constants.KEY_ID, response.keyId());
+                    message.setHeader(KMS2Constants.DELETION_DATE, response.deletionDate());
+                });
     }
 
     private void describeKey(KmsClient kmsClient, Exchange exchange) throws InvalidPayloadException {
-        if (getConfiguration().isPojoRequest()) {
-            Object payload = exchange.getIn().getMandatoryBody();
-            if (payload instanceof DescribeKeyRequest) {
-                DescribeKeyResponse result;
-                try {
-                    result = kmsClient.describeKey((DescribeKeyRequest) payload);
-                } catch (AwsServiceException ase) {
-                    LOG.trace("Describe Key command returned the error code {}", ase.awsErrorDetails().errorCode());
-                    throw ase;
-                }
-                Message message = getMessageForResponse(exchange);
-                message.setBody(result);
-            }
-        } else {
-            DescribeKeyRequest.Builder builder = DescribeKeyRequest.builder();
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(KMS2Constants.KEY_ID))) {
-                String keyId = exchange.getIn().getHeader(KMS2Constants.KEY_ID, String.class);
-                builder.keyId(keyId);
-            } else {
-                throw new IllegalArgumentException(MISSING_KEY_ID);
-            }
-            DescribeKeyResponse result;
-            try {
-                result = kmsClient.describeKey(builder.build());
-            } catch (AwsServiceException ase) {
-                LOG.trace("Describe Key command returned the error code {}", ase.awsErrorDetails().errorCode());
-                throw ase;
-            }
-            Message message = getMessageForResponse(exchange);
-            message.setBody(result);
-        }
+        executeOperation(
+                exchange,
+                DescribeKeyRequest.class,
+                kmsClient::describeKey,
+                () -> {
+                    String keyId = getRequiredHeader(exchange, KMS2Constants.KEY_ID, String.class, MISSING_KEY_ID);
+                    return kmsClient.describeKey(DescribeKeyRequest.builder().keyId(keyId).build());
+                },
+                "Describe Key",
+                (DescribeKeyResponse response, Message message) -> {
+                    if (response.keyMetadata() != null) {
+                        message.setHeader(KMS2Constants.KEY_ID, response.keyMetadata().keyId());
+                        message.setHeader(KMS2Constants.KEY_ARN, response.keyMetadata().arn());
+                        message.setHeader(KMS2Constants.KEY_STATE, response.keyMetadata().keyStateAsString());
+                    }
+                });
     }
 
     private void enableKey(KmsClient kmsClient, Exchange exchange) throws InvalidPayloadException {
+        executeOperation(
+                exchange,
+                EnableKeyRequest.class,
+                kmsClient::enableKey,
+                () -> {
+                    String keyId = getRequiredHeader(exchange, KMS2Constants.KEY_ID, String.class, MISSING_KEY_ID);
+                    return kmsClient.enableKey(EnableKeyRequest.builder().keyId(keyId).build());
+                },
+                "Enable Key");
+    }
+
+    public static Message getMessageForResponse(final Exchange exchange) {
+        return exchange.getMessage();
+    }
+
+    /**
+     * Executes a KMS operation with POJO request support.
+     */
+    private <REQ, RES> void executeOperation(
+            Exchange exchange,
+            Class<REQ> requestClass,
+            Function<REQ, RES> pojoExecutor,
+            Supplier<RES> headerExecutor,
+            String operationName)
+            throws InvalidPayloadException {
+        executeOperation(exchange, requestClass, pojoExecutor, headerExecutor, operationName, null);
+    }
+
+    /**
+     * Executes a KMS operation with POJO request support and optional response post-processing.
+     */
+    private <REQ, RES> void executeOperation(
+            Exchange exchange,
+            Class<REQ> requestClass,
+            Function<REQ, RES> pojoExecutor,
+            Supplier<RES> headerExecutor,
+            String operationName,
+            BiConsumer<RES, Message> responseProcessor)
+            throws InvalidPayloadException {
+
+        RES result;
         if (getConfiguration().isPojoRequest()) {
             Object payload = exchange.getIn().getMandatoryBody();
-            if (payload instanceof EnableKeyRequest) {
-                EnableKeyResponse result;
+            if (requestClass.isInstance(payload)) {
                 try {
-                    result = kmsClient.enableKey((EnableKeyRequest) payload);
+                    result = pojoExecutor.apply(requestClass.cast(payload));
                 } catch (AwsServiceException ase) {
-                    LOG.trace("Enable Key command returned the error code {}", ase.awsErrorDetails().errorCode());
+                    LOG.trace("{} command returned the error code {}", operationName, ase.awsErrorDetails().errorCode());
                     throw ase;
                 }
-                Message message = getMessageForResponse(exchange);
-                message.setBody(result);
-            }
-        } else {
-            EnableKeyRequest.Builder builder = EnableKeyRequest.builder();
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(KMS2Constants.KEY_ID))) {
-                String keyId = exchange.getIn().getHeader(KMS2Constants.KEY_ID, String.class);
-                builder.keyId(keyId);
             } else {
-                throw new IllegalArgumentException(MISSING_KEY_ID);
+                throw new IllegalArgumentException(
+                        String.format("Expected body of type %s but was %s",
+                                requestClass.getName(),
+                                payload != null ? payload.getClass().getName() : "null"));
             }
-            EnableKeyResponse result;
+        } else {
             try {
-                result = kmsClient.enableKey(builder.build());
+                result = headerExecutor.get();
             } catch (AwsServiceException ase) {
-                LOG.trace("Enable Key command returned the error code {}", ase.awsErrorDetails().errorCode());
+                LOG.trace("{} command returned the error code {}", operationName, ase.awsErrorDetails().errorCode());
                 throw ase;
             }
-            Message message = getMessageForResponse(exchange);
-            message.setBody(result);
+        }
+        Message message = getMessageForResponse(exchange);
+        message.setBody(result);
+        if (responseProcessor != null) {
+            responseProcessor.accept(result, message);
         }
     }
 
-    public static Message getMessageForResponse(final Exchange exchange) {
-        return exchange.getMessage();
+    /**
+     * Gets a required header value or throws an IllegalArgumentException.
+     */
+    private <T> T getRequiredHeader(Exchange exchange, String headerName, Class<T> headerType, String errorMessage) {
+        T value = exchange.getIn().getHeader(headerName, headerType);
+        if (ObjectHelper.isEmpty(value)) {
+            throw new IllegalArgumentException(errorMessage);
+        }
+        return value;
+    }
+
+    /**
+     * Gets an optional header value.
+     */
+    private <T> T getOptionalHeader(Exchange exchange, String headerName, Class<T> headerType) {
+        return exchange.getIn().getHeader(headerName, headerType);
     }
 }
diff --git a/components/camel-aws/camel-aws2-lambda/src/generated/resources/META-INF/org/apache/camel/component/aws2/lambda/aws2-lambda.json b/components/camel-aws/camel-aws2-lambda/src/generated/resources/META-INF/org/apache/camel/component/aws2/lambda/aws2-lambda.json
index 2ea88d47eb3e..75e1f190a83b 100644
--- a/components/camel-aws/camel-aws2-lambda/src/generated/resources/META-INF/org/apache/camel/component/aws2/lambda/aws2-lambda.json
+++ b/components/camel-aws/camel-aws2-lambda/src/generated/resources/META-INF/org/apache/camel/component/aws2/lambda/aws2-lambda.json
@@ -77,7 +77,14 @@
     "CamelAwsLambdaVersionRevisionId": { "index": 26, "kind": "header", "displayName": "", "group": "publishVersion", "label": "publishVersion", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Only update the function if the revision ID matches the ID that's specified.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#VERSION_REVISION_ID" },
     "CamelAwsLambdaFunctionVersion": { "index": 27, "kind": "header", "displayName": "", "group": "createAlias listAliases", "label": "createAlias listAliases", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The function version to set in the alias", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_VERSION" },
     "CamelAwsLambdaAliasFunctionName": { "index": 28, "kind": "header", "displayName": "", "group": "createAlias deleteAlias getAlias", "label": "createAlias deleteAlias getAlias", "required": true, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The function name of the alias", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_ALIAS_NAME" },
-    "CamelAwsLambdaAliasFunctionDescription": { "index": 29, "kind": "header", "displayName": "", "group": "createAlias", "label": "createAlias", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The function description to set in the alias", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_ALIAS_DESCRIPTION" }
+    "CamelAwsLambdaAliasFunctionDescription": { "index": 29, "kind": "header", "displayName": "", "group": "createAlias", "label": "createAlias", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The function description to set in the alias", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_ALIAS_DESCRIPTION" },
+    "CamelAwsLambdaMarker": { "index": 30, "kind": "header", "displayName": "", "group": "listFunctions listVersions listAliases listEventSourceMapping listTags", "label": "listFunctions listVersions listAliases listEventSourceMapping listTags", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The marker for the next set of results.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Con [...]
+    "CamelAwsLambdaMaxItems": { "index": 31, "kind": "header", "displayName": "", "group": "listFunctions listVersions listAliases listEventSourceMapping", "label": "listFunctions listVersions listAliases listEventSourceMapping", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of results to return.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#MAX_ITEMS" },
+    "CamelAwsLambdaIsTruncated": { "index": 32, "kind": "header", "displayName": "", "group": "listFunctions listVersions listAliases listEventSourceMapping", "label": "listFunctions listVersions listAliases listEventSourceMapping", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2C [...]
+    "CamelAwsLambdaFunctionArn": { "index": 33, "kind": "header", "displayName": "", "group": "createFunction getFunction publishVersion createAlias getAlias", "label": "createFunction getFunction publishVersion createAlias getAlias", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the function.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Consta [...]
+    "CamelAwsLambdaStatusCode": { "index": 34, "kind": "header", "displayName": "", "group": "invokeFunction", "label": "invokeFunction", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP status code of the function invocation.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#STATUS_CODE" },
+    "CamelAwsLambdaFunctionError": { "index": 35, "kind": "header", "displayName": "", "group": "invokeFunction", "label": "invokeFunction", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If present, indicates that an error occurred during function execution.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#FUNCTION_ERROR" },
+    "CamelAwsLambdaLogResult": { "index": 36, "kind": "header", "displayName": "", "group": "invokeFunction", "label": "invokeFunction", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The last 4 KB of the execution log.", "constantName": "org.apache.camel.component.aws2.lambda.Lambda2Constants#LOG_RESULT" }
   },
   "properties": {
     "function": { "index": 0, "kind": "path", "displayName": "Function", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the Lambda function." },
diff --git a/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Constants.java b/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Constants.java
index 5310d30c7b60..f09516d670b3 100644
--- a/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Constants.java
+++ b/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Constants.java
@@ -132,4 +132,29 @@ public interface Lambda2Constants {
     String FUNCTION_ALIAS_NAME = "CamelAwsLambdaAliasFunctionName";
     @Metadata(label = "createAlias", description = "The function description to set in the alias", javaType = "String")
     String FUNCTION_ALIAS_DESCRIPTION = "CamelAwsLambdaAliasFunctionDescription";
+
+    // Pagination constants
+    @Metadata(label = "listFunctions listVersions listAliases listEventSourceMapping listTags",
+              description = "The marker for the next set of results.", javaType = "String")
+    String MARKER = "CamelAwsLambdaMarker";
+    @Metadata(label = "listFunctions listVersions listAliases listEventSourceMapping",
+              description = "The maximum number of results to return.", javaType = "Integer")
+    String MAX_ITEMS = "CamelAwsLambdaMaxItems";
+    @Metadata(label = "listFunctions listVersions listAliases listEventSourceMapping",
+              description = "Whether the response has more results (is truncated).", javaType = "Boolean")
+    String IS_TRUNCATED = "CamelAwsLambdaIsTruncated";
+
+    // Response metadata
+    @Metadata(label = "createFunction getFunction publishVersion createAlias getAlias",
+              description = "The Amazon Resource Name (ARN) of the function.", javaType = "String")
+    String FUNCTION_ARN = "CamelAwsLambdaFunctionArn";
+    @Metadata(label = "invokeFunction",
+              description = "The HTTP status code of the function invocation.", javaType = "Integer")
+    String STATUS_CODE = "CamelAwsLambdaStatusCode";
+    @Metadata(label = "invokeFunction",
+              description = "If present, indicates that an error occurred during function execution.", javaType = "String")
+    String FUNCTION_ERROR = "CamelAwsLambdaFunctionError";
+    @Metadata(label = "invokeFunction",
+              description = "The last 4 KB of the execution log.", javaType = "String")
+    String LOG_RESULT = "CamelAwsLambdaLogResult";
 }
diff --git a/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Producer.java b/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Producer.java
index d3e6d0d54da9..acee09d80187 100644
--- a/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Producer.java
+++ b/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Producer.java
@@ -207,6 +207,14 @@ public class Lambda2Producer extends DefaultProducer {
             request = exchange.getIn().getMandatoryBody(ListFunctionsRequest.class);
         } else {
             ListFunctionsRequest.Builder builder = ListFunctionsRequest.builder();
+            String marker = getOptionalHeader(exchange, Lambda2Constants.MARKER, String.class);
+            if (marker != null) {
+                builder.marker(marker);
+            }
+            Integer maxItems = getOptionalHeader(exchange, Lambda2Constants.MAX_ITEMS, Integer.class);
+            if (maxItems != null) {
+                builder.maxItems(maxItems);
+            }
             request = builder.build();
         }
         try {
@@ -217,6 +225,8 @@ public class Lambda2Producer extends DefaultProducer {
         }
         Message message = getMessageForResponse(exchange);
         message.setBody(result);
+        message.setHeader(Lambda2Constants.MARKER, result.nextMarker());
+        message.setHeader(Lambda2Constants.IS_TRUNCATED, result.nextMarker() != null);
     }
 
     private void invokeFunction(LambdaClient lambdaClient, Exchange exchange) throws InvalidPayloadException {
@@ -237,6 +247,9 @@ public class Lambda2Producer extends DefaultProducer {
         }
         Message message = getMessageForResponse(exchange);
         message.setBody(result.payload().asUtf8String());
+        message.setHeader(Lambda2Constants.STATUS_CODE, result.statusCode());
+        message.setHeader(Lambda2Constants.FUNCTION_ERROR, result.functionError());
+        message.setHeader(Lambda2Constants.LOG_RESULT, result.logResult());
     }
 
     @SuppressWarnings("unchecked")
@@ -374,6 +387,7 @@ public class Lambda2Producer extends DefaultProducer {
 
         Message message = getMessageForResponse(exchange);
         message.setBody(result);
+        message.setHeader(Lambda2Constants.FUNCTION_ARN, result.functionArn());
     }
 
     private void updateFunction(LambdaClient lambdaClient, Exchange exchange) throws Exception {
@@ -609,16 +623,26 @@ public class Lambda2Producer extends DefaultProducer {
         } else {
             ListVersionsByFunctionRequest.Builder builder = ListVersionsByFunctionRequest.builder();
             builder.functionName(getEndpoint().getFunction());
+            String marker = getOptionalHeader(exchange, Lambda2Constants.MARKER, String.class);
+            if (marker != null) {
+                builder.marker(marker);
+            }
+            Integer maxItems = getOptionalHeader(exchange, Lambda2Constants.MAX_ITEMS, Integer.class);
+            if (maxItems != null) {
+                builder.maxItems(maxItems);
+            }
             request = builder.build();
         }
         try {
             result = lambdaClient.listVersionsByFunction(request);
         } catch (AwsServiceException ase) {
-            LOG.trace("publishVersion command returned the error code {}", ase.awsErrorDetails().errorCode());
+            LOG.trace("listVersions command returned the error code {}", ase.awsErrorDetails().errorCode());
             throw ase;
         }
         Message message = getMessageForResponse(exchange);
         message.setBody(result);
+        message.setHeader(Lambda2Constants.MARKER, result.nextMarker());
+        message.setHeader(Lambda2Constants.IS_TRUNCATED, result.nextMarker() != null);
     }
 
     private void createAlias(LambdaClient lambdaClient, Exchange exchange) throws InvalidPayloadException {
@@ -711,10 +735,18 @@ public class Lambda2Producer extends DefaultProducer {
         } else {
             ListAliasesRequest.Builder builder = ListAliasesRequest.builder();
             builder.functionName(getEndpoint().getFunction());
-            String version = exchange.getIn().getHeader(Lambda2Constants.FUNCTION_VERSION, String.class);
-            if (!ObjectHelper.isEmpty(version)) {
+            String version = getOptionalHeader(exchange, Lambda2Constants.FUNCTION_VERSION, String.class);
+            if (version != null) {
                 builder.functionVersion(version);
             }
+            String marker = getOptionalHeader(exchange, Lambda2Constants.MARKER, String.class);
+            if (marker != null) {
+                builder.marker(marker);
+            }
+            Integer maxItems = getOptionalHeader(exchange, Lambda2Constants.MAX_ITEMS, Integer.class);
+            if (maxItems != null) {
+                builder.maxItems(maxItems);
+            }
             request = builder.build();
         }
         try {
@@ -725,6 +757,8 @@ public class Lambda2Producer extends DefaultProducer {
         }
         Message message = getMessageForResponse(exchange);
         message.setBody(result);
+        message.setHeader(Lambda2Constants.MARKER, result.nextMarker());
+        message.setHeader(Lambda2Constants.IS_TRUNCATED, result.nextMarker() != null);
     }
 
     private Lambda2Operations determineOperation(Exchange exchange) {
@@ -749,6 +783,13 @@ public class Lambda2Producer extends DefaultProducer {
         return exchange.getMessage();
     }
 
+    /**
+     * Gets an optional header value.
+     */
+    private <T> T getOptionalHeader(Exchange exchange, String headerName, Class<T> headerType) {
+        return exchange.getIn().getHeader(headerName, headerType);
+    }
+
     @Override
     protected void doStart() throws Exception {
         // health-check is optional so discover and resolve
diff --git a/components/camel-aws/camel-aws2-mq/src/generated/resources/META-INF/org/apache/camel/component/aws2/mq/aws2-mq.json b/components/camel-aws/camel-aws2-mq/src/generated/resources/META-INF/org/apache/camel/component/aws2/mq/aws2-mq.json
index d49fc6b38e0c..3f3c248cc56a 100644
--- a/components/camel-aws/camel-aws2-mq/src/generated/resources/META-INF/org/apache/camel/component/aws2/mq/aws2-mq.json
+++ b/components/camel-aws/camel-aws2-mq/src/generated/resources/META-INF/org/apache/camel/component/aws2/mq/aws2-mq.json
@@ -58,7 +58,11 @@
     "CamelAwsMQBrokerDeploymentMode": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The deployment mode for the broker in the createBroker operation", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_DEPLOYMENT_MODE" },
     "CamelAwsMQBrokerInstanceType": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The instance type for the MQ machine in the createBroker operation", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_INSTANCE_TYPE" },
     "CamelAwsMQBrokerUsers": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "List<User>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The list of users for MQ", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_USERS" },
-    "CamelAwsMQBrokerPubliclyAccessible": { "index": 10, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "false", "description": "If the MQ instance must be publicly available or not.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_PUBLICLY_ACCESSIBLE" }
+    "CamelAwsMQBrokerPubliclyAccessible": { "index": 10, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "false", "description": "If the MQ instance must be publicly available or not.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_PUBLICLY_ACCESSIBLE" },
+    "CamelAwsMQNextToken": { "index": 11, "kind": "header", "displayName": "", "group": "listBrokers", "label": "listBrokers", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The token for the next set of results.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#NEXT_TOKEN" },
+    "CamelAwsMQIsTruncated": { "index": 12, "kind": "header", "displayName": "", "group": "listBrokers", "label": "listBrokers", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#IS_TRUNCATED" },
+    "CamelAwsMQBrokerArn": { "index": 13, "kind": "header", "displayName": "", "group": "createBroker", "label": "createBroker", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the broker.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_ARN" },
+    "CamelAwsMQBrokerState": { "index": 14, "kind": "header", "displayName": "", "group": "describeBroker", "label": "describeBroker", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The state of the broker.", "constantName": "org.apache.camel.component.aws2.mq.MQ2Constants#BROKER_STATE" }
   },
   "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.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2Constants.java b/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2Constants.java
index b668819475bc..642213d7acb8 100644
--- a/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2Constants.java
+++ b/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2Constants.java
@@ -47,4 +47,20 @@ public interface MQ2Constants {
     @Metadata(description = "If the MQ instance must be publicly available or not.", javaType = "Boolean",
               defaultValue = "false")
     String BROKER_PUBLICLY_ACCESSIBLE = "CamelAwsMQBrokerPubliclyAccessible";
+
+    // Pagination constants
+    @Metadata(label = "listBrokers",
+              description = "The token for the next set of results.", javaType = "String")
+    String NEXT_TOKEN = "CamelAwsMQNextToken";
+    @Metadata(label = "listBrokers",
+              description = "Whether the response has more results (is truncated).", javaType = "Boolean")
+    String IS_TRUNCATED = "CamelAwsMQIsTruncated";
+
+    // Response metadata
+    @Metadata(label = "createBroker",
+              description = "The Amazon Resource Name (ARN) of the broker.", javaType = "String")
+    String BROKER_ARN = "CamelAwsMQBrokerArn";
+    @Metadata(label = "describeBroker",
+              description = "The state of the broker.", javaType = "String")
+    String BROKER_STATE = "CamelAwsMQBrokerState";
 }
diff --git a/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2Producer.java b/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2Producer.java
index 21f26bea667f..36c657739c2a 100644
--- a/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2Producer.java
+++ b/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2Producer.java
@@ -129,13 +129,19 @@ public class MQ2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+                message.setHeader(MQ2Constants.NEXT_TOKEN, result.nextToken());
+                message.setHeader(MQ2Constants.IS_TRUNCATED, result.nextToken() != null);
             }
         } else {
             ListBrokersRequest.Builder builder = ListBrokersRequest.builder();
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQ2Constants.MAX_RESULTS))) {
-                int maxResults = exchange.getIn().getHeader(MQ2Constants.MAX_RESULTS, Integer.class);
+            Integer maxResults = getOptionalHeader(exchange, MQ2Constants.MAX_RESULTS, Integer.class);
+            if (maxResults != null) {
                 builder.maxResults(maxResults);
             }
+            String nextToken = getOptionalHeader(exchange, MQ2Constants.NEXT_TOKEN, String.class);
+            if (nextToken != null) {
+                builder.nextToken(nextToken);
+            }
             ListBrokersResponse result;
             try {
                 result = mqClient.listBrokers(builder.build());
@@ -145,6 +151,8 @@ public class MQ2Producer extends DefaultProducer {
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            message.setHeader(MQ2Constants.NEXT_TOKEN, result.nextToken());
+            message.setHeader(MQ2Constants.IS_TRUNCATED, result.nextToken() != null);
         }
     }
 
@@ -223,6 +231,8 @@ public class MQ2Producer extends DefaultProducer {
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            message.setHeader(MQ2Constants.BROKER_ID, result.brokerId());
+            message.setHeader(MQ2Constants.BROKER_ARN, result.brokerArn());
         }
     }
 
@@ -365,11 +375,13 @@ public class MQ2Producer extends DefaultProducer {
             try {
                 result = mqClient.describeBroker(builder.build());
             } catch (AwsServiceException ase) {
-                LOG.trace("Reboot Broker command returned the error code {}", ase.awsErrorDetails().errorCode());
+                LOG.trace("Describe Broker command returned the error code {}", ase.awsErrorDetails().errorCode());
                 throw ase;
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            message.setHeader(MQ2Constants.BROKER_ARN, result.brokerArn());
+            message.setHeader(MQ2Constants.BROKER_STATE, result.brokerStateAsString());
         }
     }
 
@@ -377,6 +389,13 @@ public class MQ2Producer extends DefaultProducer {
         return exchange.getMessage();
     }
 
+    /**
+     * Gets an optional header value.
+     */
+    private <T> T getOptionalHeader(Exchange exchange, String headerName, Class<T> headerType) {
+        return exchange.getIn().getHeader(headerName, headerType);
+    }
+
     @Override
     protected void doStart() throws Exception {
         // health-check is optional so discover and resolve
diff --git a/components/camel-aws/camel-aws2-msk/src/generated/resources/META-INF/org/apache/camel/component/aws2/msk/aws2-msk.json b/components/camel-aws/camel-aws2-msk/src/generated/resources/META-INF/org/apache/camel/component/aws2/msk/aws2-msk.json
index 9f4e88bf827f..867e18245d2c 100644
--- a/components/camel-aws/camel-aws2-msk/src/generated/resources/META-INF/org/apache/camel/component/aws2/msk/aws2-msk.json
+++ b/components/camel-aws/camel-aws2-msk/src/generated/resources/META-INF/org/apache/camel/component/aws2/msk/aws2-msk.json
@@ -54,7 +54,11 @@
     "CamelAwsMSKClusterArn": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The cluster arn for delete operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#CLUSTER_ARN" },
     "CamelAwsMSKClusterKafkaVersion": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Kafka for the cluster during create operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#CLUSTER_KAFKA_VERSION" },
     "CamelAwsMSKBrokerNodesNumber": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of nodes for the cluster during create operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#BROKER_NODES_NUMBER" },
-    "CamelAwsMSKBrokerNodesGroupInfo": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "software.amazon.awssdk.services.kafka.model.BrokerNodeGroupInfo", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Broker nodes group info to provide during the create operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#BROKER_NODES_GROUP_INFO" }
+    "CamelAwsMSKBrokerNodesGroupInfo": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "software.amazon.awssdk.services.kafka.model.BrokerNodeGroupInfo", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Broker nodes group info to provide during the create operation", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#BROKER_NODES_GROUP_INFO" },
+    "CamelAwsMSKNextToken": { "index": 7, "kind": "header", "displayName": "", "group": "listClusters", "label": "listClusters", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The token for the next set of results.", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#NEXT_TOKEN" },
+    "CamelAwsMSKMaxResults": { "index": 8, "kind": "header", "displayName": "", "group": "listClusters", "label": "listClusters", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of results to return.", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#MAX_RESULTS" },
+    "CamelAwsMSKIsTruncated": { "index": 9, "kind": "header", "displayName": "", "group": "listClusters", "label": "listClusters", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#IS_TRUNCATED" },
+    "CamelAwsMSKClusterState": { "index": 10, "kind": "header", "displayName": "", "group": "createCluster describeCluster", "label": "createCluster describeCluster", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The state of the cluster.", "constantName": "org.apache.camel.component.aws2.msk.MSK2Constants#CLUSTER_STATE" }
   },
   "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.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/components/camel-aws/camel-aws2-msk/src/main/java/org/apache/camel/component/aws2/msk/MSK2Constants.java b/components/camel-aws/camel-aws2-msk/src/main/java/org/apache/camel/component/aws2/msk/MSK2Constants.java
index ba72ec621877..5a7288c25e64 100644
--- a/components/camel-aws/camel-aws2-msk/src/main/java/org/apache/camel/component/aws2/msk/MSK2Constants.java
+++ b/components/camel-aws/camel-aws2-msk/src/main/java/org/apache/camel/component/aws2/msk/MSK2Constants.java
@@ -37,4 +37,20 @@ public interface MSK2Constants {
     @Metadata(description = "The Broker nodes group info to provide during the create operation",
               javaType = "software.amazon.awssdk.services.kafka.model.BrokerNodeGroupInfo")
     String BROKER_NODES_GROUP_INFO = "CamelAwsMSKBrokerNodesGroupInfo";
+
+    // Pagination constants
+    @Metadata(label = "listClusters",
+              description = "The token for the next set of results.", javaType = "String")
+    String NEXT_TOKEN = "CamelAwsMSKNextToken";
+    @Metadata(label = "listClusters",
+              description = "The maximum number of results to return.", javaType = "Integer")
+    String MAX_RESULTS = "CamelAwsMSKMaxResults";
+    @Metadata(label = "listClusters",
+              description = "Whether the response has more results (is truncated).", javaType = "Boolean")
+    String IS_TRUNCATED = "CamelAwsMSKIsTruncated";
+
+    // Response metadata
+    @Metadata(label = "createCluster describeCluster",
+              description = "The state of the cluster.", javaType = "String")
+    String CLUSTER_STATE = "CamelAwsMSKClusterState";
 }
diff --git a/components/camel-aws/camel-aws2-msk/src/main/java/org/apache/camel/component/aws2/msk/MSK2Producer.java b/components/camel-aws/camel-aws2-msk/src/main/java/org/apache/camel/component/aws2/msk/MSK2Producer.java
index df261491a5b9..40f2d6ef72bd 100644
--- a/components/camel-aws/camel-aws2-msk/src/main/java/org/apache/camel/component/aws2/msk/MSK2Producer.java
+++ b/components/camel-aws/camel-aws2-msk/src/main/java/org/apache/camel/component/aws2/msk/MSK2Producer.java
@@ -113,13 +113,23 @@ public class MSK2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+                message.setHeader(MSK2Constants.NEXT_TOKEN, result.nextToken());
+                message.setHeader(MSK2Constants.IS_TRUNCATED, result.nextToken() != null);
             }
         } else {
             ListClustersRequest.Builder builder = ListClustersRequest.builder();
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MSK2Constants.CLUSTERS_FILTER))) {
-                String filter = exchange.getIn().getHeader(MSK2Constants.CLUSTERS_FILTER, String.class);
+            String filter = getOptionalHeader(exchange, MSK2Constants.CLUSTERS_FILTER, String.class);
+            if (filter != null) {
                 builder.clusterNameFilter(filter);
             }
+            String nextToken = getOptionalHeader(exchange, MSK2Constants.NEXT_TOKEN, String.class);
+            if (nextToken != null) {
+                builder.nextToken(nextToken);
+            }
+            Integer maxResults = getOptionalHeader(exchange, MSK2Constants.MAX_RESULTS, Integer.class);
+            if (maxResults != null) {
+                builder.maxResults(maxResults);
+            }
             ListClustersResponse result;
             try {
                 result = mskClient.listClusters(builder.build());
@@ -129,6 +139,8 @@ public class MSK2Producer extends DefaultProducer {
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            message.setHeader(MSK2Constants.NEXT_TOKEN, result.nextToken());
+            message.setHeader(MSK2Constants.IS_TRUNCATED, result.nextToken() != null);
         }
     }
 
@@ -182,6 +194,8 @@ public class MSK2Producer extends DefaultProducer {
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(response);
+            message.setHeader(MSK2Constants.CLUSTER_ARN, response.clusterArn());
+            message.setHeader(MSK2Constants.CLUSTER_STATE, response.stateAsString());
         }
     }
 
@@ -245,11 +259,15 @@ public class MSK2Producer extends DefaultProducer {
             try {
                 result = mskClient.describeCluster(builder.build());
             } catch (AwsServiceException ase) {
-                LOG.trace("Delete Cluster command returned the error code {}", ase.awsErrorDetails().errorCode());
+                LOG.trace("Describe Cluster command returned the error code {}", ase.awsErrorDetails().errorCode());
                 throw ase;
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            if (result.clusterInfo() != null) {
+                message.setHeader(MSK2Constants.CLUSTER_ARN, result.clusterInfo().clusterArn());
+                message.setHeader(MSK2Constants.CLUSTER_STATE, result.clusterInfo().stateAsString());
+            }
         }
     }
 
@@ -257,6 +275,13 @@ public class MSK2Producer extends DefaultProducer {
         return exchange.getMessage();
     }
 
+    /**
+     * Gets an optional header value.
+     */
+    private <T> T getOptionalHeader(Exchange exchange, String headerName, Class<T> headerType) {
+        return exchange.getIn().getHeader(headerName, headerType);
+    }
+
     @Override
     protected void doStart() throws Exception {
         // health-check is optional so discover and resolve
diff --git a/components/camel-aws/camel-aws2-sns/src/generated/resources/META-INF/org/apache/camel/component/aws2/sns/aws2-sns.json b/components/camel-aws/camel-aws2-sns/src/generated/resources/META-INF/org/apache/camel/component/aws2/sns/aws2-sns.json
index ad028d0acf1b..dd46f96611e1 100644
--- a/components/camel-aws/camel-aws2-sns/src/generated/resources/META-INF/org/apache/camel/component/aws2/sns/aws2-sns.json
+++ b/components/camel-aws/camel-aws2-sns/src/generated/resources/META-INF/org/apache/camel/component/aws2/sns/aws2-sns.json
@@ -59,7 +59,10 @@
   "headers": {
     "CamelAwsSnsMessageId": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon SNS message ID.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#MESSAGE_ID" },
     "CamelAwsSnsSubject": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon SNS message subject. If not set, the subject from the SnsConfiguration is used.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#SUBJECT" },
-    "CamelAwsSnsMessageStructure": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message structure to use such as json.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#MESSAGE_STRUCTURE" }
+    "CamelAwsSnsMessageStructure": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message structure to use such as json.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#MESSAGE_STRUCTURE" },
+    "CamelAwsSnsSequenceNumber": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The sequence number for FIFO topics.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#SEQUENCE_NUMBER" },
+    "CamelAwsSnsFailedMessageCount": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of failed messages in a batch publish operation.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#FAILED_MESSAGE_COUNT" },
+    "CamelAwsSnsSuccessfulMessageCount": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of successful messages in a batch publish operation.", "constantName": "org.apache.camel.component.aws2.sns.Sns2Constants#SUCCESSFUL_MESSAGE_COUNT" }
   },
   "properties": {
     "topicNameOrArn": { "index": 0, "kind": "path", "displayName": "Topic Name Or Arn", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Topic name or ARN" },
diff --git a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Constants.java b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Constants.java
index 61e49aee8c04..662fba1ff103 100644
--- a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Constants.java
+++ b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Constants.java
@@ -32,4 +32,17 @@ public interface Sns2Constants {
     @Metadata(description = "The message structure to use such as json.", javaType = "String")
     String MESSAGE_STRUCTURE = "CamelAwsSnsMessageStructure";
     String MESSAGE_GROUP_ID_PROPERTY = "CamelAwsSnsMessageGroupId";
+
+    // Response metadata for FIFO topics
+    @Metadata(label = "producer",
+              description = "The sequence number for FIFO topics.", javaType = "String")
+    String SEQUENCE_NUMBER = "CamelAwsSnsSequenceNumber";
+
+    // Batch operation response metadata
+    @Metadata(label = "producer",
+              description = "The number of failed messages in a batch publish operation.", javaType = "Integer")
+    String FAILED_MESSAGE_COUNT = "CamelAwsSnsFailedMessageCount";
+    @Metadata(label = "producer",
+              description = "The number of successful messages in a batch publish operation.", javaType = "Integer")
+    String SUCCESSFUL_MESSAGE_COUNT = "CamelAwsSnsSuccessfulMessageCount";
 }
diff --git a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Producer.java b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Producer.java
index 579d6d961d9d..5c81f9d8dd88 100644
--- a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Producer.java
+++ b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Producer.java
@@ -78,6 +78,7 @@ public class Sns2Producer extends DefaultProducer {
 
             Message message = getMessageForResponse(exchange);
             message.setHeader(Sns2Constants.MESSAGE_ID, result.messageId());
+            message.setHeader(Sns2Constants.SEQUENCE_NUMBER, result.sequenceNumber());
         } else {
             PublishBatchRequest.Builder publishBatchRequestBuilder = PublishBatchRequest.builder();
             publishBatchRequestBuilder.topicArn(getConfiguration().getTopicArn());
@@ -85,6 +86,10 @@ public class Sns2Producer extends DefaultProducer {
             PublishBatchResponse response = getEndpoint().getSNSClient().publishBatch(publishBatchRequestBuilder.build());
             Message message = getMessageForResponse(exchange);
             message.setBody(response);
+            message.setHeader(Sns2Constants.FAILED_MESSAGE_COUNT,
+                    response.failed() != null ? response.failed().size() : 0);
+            message.setHeader(Sns2Constants.SUCCESSFUL_MESSAGE_COUNT,
+                    response.successful() != null ? response.successful().size() : 0);
         }
     }
 
diff --git a/components/camel-aws/camel-aws2-sqs/src/generated/resources/META-INF/org/apache/camel/component/aws2/sqs/aws2-sqs.json b/components/camel-aws/camel-aws2-sqs/src/generated/resources/META-INF/org/apache/camel/component/aws2/sqs/aws2-sqs.json
index ca36257c6475..6759e71ffd08 100644
--- a/components/camel-aws/camel-aws2-sqs/src/generated/resources/META-INF/org/apache/camel/component/aws2/sqs/aws2-sqs.json
+++ b/components/camel-aws/camel-aws2-sqs/src/generated/resources/META-INF/org/apache/camel/component/aws2/sqs/aws2-sqs.json
@@ -85,7 +85,13 @@
     "CamelAwsSqsReceiptHandle": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon SQS message receipt handle.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#RECEIPT_HANDLE" },
     "CamelAwsSqsDelaySeconds": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The delay seconds that the Amazon SQS message can be see by others.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#DELAY_HEADER" },
     "CamelAwsSqsPrefix": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A string to use for filtering the list results.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SQS_QUEUE_PREFIX" },
-    "CamelAwsSqsOperation": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SQS_OPERATION" }
+    "CamelAwsSqsOperation": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SQS_OPERATION" },
+    "CamelAwsSqsNextToken": { "index": 8, "kind": "header", "displayName": "", "group": "listQueues", "label": "listQueues", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The token for the next set of results.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#NEXT_TOKEN" },
+    "CamelAwsSqsMaxResults": { "index": 9, "kind": "header", "displayName": "", "group": "listQueues", "label": "listQueues", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of results to return.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#MAX_RESULTS" },
+    "CamelAwsSqsIsTruncated": { "index": 10, "kind": "header", "displayName": "", "group": "listQueues", "label": "listQueues", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#IS_TRUNCATED" },
+    "CamelAwsSqsSequenceNumber": { "index": 11, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The sequence number for FIFO queues.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SEQUENCE_NUMBER" },
+    "CamelAwsSqsFailedMessageCount": { "index": 12, "kind": "header", "displayName": "", "group": "sendBatchMessage", "label": "sendBatchMessage", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of failed messages in a batch send operation.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#FAILED_MESSAGE_COUNT" },
+    "CamelAwsSqsSuccessfulMessageCount": { "index": 13, "kind": "header", "displayName": "", "group": "sendBatchMessage", "label": "sendBatchMessage", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of successful messages in a batch send operation.", "constantName": "org.apache.camel.component.aws2.sqs.Sqs2Constants#SUCCESSFUL_MESSAGE_COUNT" }
   },
   "properties": {
     "queueNameOrArn": { "index": 0, "kind": "path", "displayName": "Queue Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Queue name or ARN" },
diff --git a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Constants.java b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Constants.java
index f87141c0fe1a..f7aad3656a12 100644
--- a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Constants.java
+++ b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Constants.java
@@ -46,4 +46,28 @@ public interface Sqs2Constants {
     @Metadata(description = "The operation we want to perform", javaType = "String")
     String SQS_OPERATION = "CamelAwsSqsOperation";
     String SQS_DELETE_FILTERED = "CamelAwsSqsDeleteFiltered";
+
+    // Pagination constants
+    @Metadata(label = "listQueues",
+              description = "The token for the next set of results.", javaType = "String")
+    String NEXT_TOKEN = "CamelAwsSqsNextToken";
+    @Metadata(label = "listQueues",
+              description = "The maximum number of results to return.", javaType = "Integer")
+    String MAX_RESULTS = "CamelAwsSqsMaxResults";
+    @Metadata(label = "listQueues",
+              description = "Whether the response has more results (is truncated).", javaType = "Boolean")
+    String IS_TRUNCATED = "CamelAwsSqsIsTruncated";
+
+    // Response metadata for FIFO queues
+    @Metadata(label = "producer",
+              description = "The sequence number for FIFO queues.", javaType = "String")
+    String SEQUENCE_NUMBER = "CamelAwsSqsSequenceNumber";
+
+    // Batch operation response metadata
+    @Metadata(label = "sendBatchMessage",
+              description = "The number of failed messages in a batch send operation.", javaType = "Integer")
+    String FAILED_MESSAGE_COUNT = "CamelAwsSqsFailedMessageCount";
+    @Metadata(label = "sendBatchMessage",
+              description = "The number of successful messages in a batch send operation.", javaType = "Integer")
+    String SUCCESSFUL_MESSAGE_COUNT = "CamelAwsSqsSuccessfulMessageCount";
 }
diff --git a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java
index 5a006a5f36c7..34c0f01e0144 100644
--- a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java
+++ b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java
@@ -113,6 +113,7 @@ public class Sqs2Producer extends DefaultProducer {
         Message message = getMessageForResponse(exchange);
         message.setHeader(Sqs2Constants.MESSAGE_ID, result.messageId());
         message.setHeader(Sqs2Constants.MD5_OF_BODY, result.md5OfMessageBody());
+        message.setHeader(Sqs2Constants.SEQUENCE_NUMBER, result.sequenceNumber());
     }
 
     private void sendBatchMessage(SqsClient amazonSQS, Exchange exchange) {
@@ -134,6 +135,10 @@ public class Sqs2Producer extends DefaultProducer {
             SendMessageBatchResponse result = amazonSQS.sendMessageBatch(request.build());
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            message.setHeader(Sqs2Constants.FAILED_MESSAGE_COUNT,
+                    result.failed() != null ? result.failed().size() : 0);
+            message.setHeader(Sqs2Constants.SUCCESSFUL_MESSAGE_COUNT,
+                    result.successful() != null ? result.successful().size() : 0);
         } else if (exchange.getIn().getBody() instanceof String) {
             String c = exchange.getIn().getBody(String.class);
             String[] elements = c.split(getConfiguration().getBatchSeparator());
@@ -150,11 +155,19 @@ public class Sqs2Producer extends DefaultProducer {
             SendMessageBatchResponse result = amazonSQS.sendMessageBatch(request.build());
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            message.setHeader(Sqs2Constants.FAILED_MESSAGE_COUNT,
+                    result.failed() != null ? result.failed().size() : 0);
+            message.setHeader(Sqs2Constants.SUCCESSFUL_MESSAGE_COUNT,
+                    result.successful() != null ? result.successful().size() : 0);
         } else {
             SendMessageBatchRequest req = exchange.getIn().getBody(SendMessageBatchRequest.class);
             SendMessageBatchResponse result = amazonSQS.sendMessageBatch(req);
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            message.setHeader(Sqs2Constants.FAILED_MESSAGE_COUNT,
+                    result.failed() != null ? result.failed().size() : 0);
+            message.setHeader(Sqs2Constants.SUCCESSFUL_MESSAGE_COUNT,
+                    result.successful() != null ? result.successful().size() : 0);
         }
     }
 
@@ -173,12 +186,23 @@ public class Sqs2Producer extends DefaultProducer {
 
     private void listQueues(SqsClient amazonSQS, Exchange exchange) {
         ListQueuesRequest.Builder request = ListQueuesRequest.builder();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Sqs2Constants.SQS_QUEUE_PREFIX))) {
-            request.queueNamePrefix(exchange.getIn().getHeader(Sqs2Constants.SQS_QUEUE_PREFIX, String.class));
+        String prefix = exchange.getIn().getHeader(Sqs2Constants.SQS_QUEUE_PREFIX, String.class);
+        if (prefix != null) {
+            request.queueNamePrefix(prefix);
+        }
+        String nextToken = exchange.getIn().getHeader(Sqs2Constants.NEXT_TOKEN, String.class);
+        if (nextToken != null) {
+            request.nextToken(nextToken);
+        }
+        Integer maxResults = exchange.getIn().getHeader(Sqs2Constants.MAX_RESULTS, Integer.class);
+        if (maxResults != null) {
+            request.maxResults(maxResults);
         }
         ListQueuesResponse result = amazonSQS.listQueues(request.build());
         Message message = getMessageForResponse(exchange);
         message.setBody(result);
+        message.setHeader(Sqs2Constants.NEXT_TOKEN, result.nextToken());
+        message.setHeader(Sqs2Constants.IS_TRUNCATED, result.nextToken() != null);
     }
 
     private void purgeQueue(SqsClient amazonSQS, Exchange exchange) {
diff --git a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/integration/SqsProducerSendByteArrayLocalstackIT.java b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/integration/SqsProducerSendByteArrayLocalstackIT.java
index 764c0ace7473..24692be62c2d 100644
--- a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/integration/SqsProducerSendByteArrayLocalstackIT.java
+++ b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/integration/SqsProducerSendByteArrayLocalstackIT.java
@@ -49,7 +49,8 @@ public class SqsProducerSendByteArrayLocalstackIT extends Aws2SQSBaseTest {
         });
 
         MockEndpoint.assertIsSatisfied(context);
-        Assertions.assertEquals(3, result.getExchanges().get(0).getMessage().getHeaders().size());
+        // 3 original headers + 1 new SEQUENCE_NUMBER header (null for non-FIFO queues)
+        Assertions.assertEquals(4, result.getExchanges().get(0).getMessage().getHeaders().size());
         Assertions.assertEquals("HeaderTest",
                 Strings.fromByteArray((byte[]) result.getExchanges().get(0).getMessage().getHeaders().get("value1")));
     }
diff --git a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/integration/SqsProducerSendLocalstackMaxAttributesIT.java b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/integration/SqsProducerSendLocalstackMaxAttributesIT.java
index e0dfdf61537e..c69fba4a48b7 100644
--- a/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/integration/SqsProducerSendLocalstackMaxAttributesIT.java
+++ b/components/camel-aws/camel-aws2-sqs/src/test/java/org/apache/camel/component/aws2/sqs/integration/SqsProducerSendLocalstackMaxAttributesIT.java
@@ -56,7 +56,8 @@ public class SqsProducerSendLocalstackMaxAttributesIT extends Aws2SQSBaseTest {
         });
 
         MockEndpoint.assertIsSatisfied(context);
-        Assertions.assertEquals(13, result.getExchanges().get(0).getMessage().getHeaders().size());
+        // 13 original headers + 1 new SEQUENCE_NUMBER header (null for non-FIFO queues)
+        Assertions.assertEquals(14, result.getExchanges().get(0).getMessage().getHeaders().size());
     }
 
     @Override
diff --git a/components/camel-aws/camel-aws2-sts/src/generated/resources/META-INF/org/apache/camel/component/aws2/sts/aws2-sts.json b/components/camel-aws/camel-aws2-sts/src/generated/resources/META-INF/org/apache/camel/component/aws2/sts/aws2-sts.json
index a1508908131c..5231ee6611cc 100644
--- a/components/camel-aws/camel-aws2-sts/src/generated/resources/META-INF/org/apache/camel/component/aws2/sts/aws2-sts.json
+++ b/components/camel-aws/camel-aws2-sts/src/generated/resources/META-INF/org/apache/camel/component/aws2/sts/aws2-sts.json
@@ -48,7 +48,12 @@
     "CamelAwsStsRoleArn": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the role to assume.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ROLE_ARN" },
     "CamelAwsStsRoleSessionName": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "An identifier for the assumed role session.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ROLE_SESSION_NAME" },
     "CamelAwsStsFederatedName": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the federated user.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#FEDERATED_NAME" },
-    "CamelAwsStsAssumeRoleDurationSeconds": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The duration, in seconds, of the role session. It could go from 900 seconds, to 1 to 12 hours (dependent on administrator settings. The default if not specified is 3600 seconds.", "constantName": "org.apache.camel.component. [...]
+    "CamelAwsStsAssumeRoleDurationSeconds": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The duration, in seconds, of the role session. It could go from 900 seconds, to 1 to 12 hours (dependent on administrator settings. The default if not specified is 3600 seconds.", "constantName": "org.apache.camel.component. [...]
+    "CamelAwsStsAccessKeyId": { "index": 5, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary access key ID.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ACCESS_KEY_ID" },
+    "CamelAwsStsSecretKey": { "index": 6, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary secret access key.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#SECRET_KEY_ID" },
+    "CamelAwsStsSessionToken": { "index": 7, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary session token.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#SESSION_TOKEN" },
+    "CamelAwsStsExpiration": { "index": 8, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "java.time.Instant", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration date and time of the credentials.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#EXPIRATION" },
+    "CamelAwsStsAssumedRoleArn": { "index": 9, "kind": "header", "displayName": "", "group": "assumeRole", "label": "assumeRole", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the assumed role.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ASSUMED_ROLE_ARN" }
   },
   "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.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Constants.java b/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Constants.java
index 2f764d89272d..4dd8f30655d8 100644
--- a/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Constants.java
+++ b/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Constants.java
@@ -34,6 +34,19 @@ public interface STS2Constants {
               javaType = "Integer")
     String ASSUME_ROLE_DURATION_SECONDS = "CamelAwsStsAssumeRoleDurationSeconds";
 
+    @Metadata(label = "assumeRole getSessionToken getFederationToken",
+              description = "The temporary access key ID.", javaType = "String")
     String ACCESS_KEY_ID = "CamelAwsStsAccessKeyId";
+    @Metadata(label = "assumeRole getSessionToken getFederationToken",
+              description = "The temporary secret access key.", javaType = "String")
     String SECRET_KEY_ID = "CamelAwsStsSecretKey";
+    @Metadata(label = "assumeRole getSessionToken getFederationToken",
+              description = "The temporary session token.", javaType = "String")
+    String SESSION_TOKEN = "CamelAwsStsSessionToken";
+    @Metadata(label = "assumeRole getSessionToken getFederationToken",
+              description = "The expiration date and time of the credentials.", javaType = "java.time.Instant")
+    String EXPIRATION = "CamelAwsStsExpiration";
+    @Metadata(label = "assumeRole",
+              description = "The Amazon Resource Name (ARN) of the assumed role.", javaType = "String")
+    String ASSUMED_ROLE_ARN = "CamelAwsStsAssumedRoleArn";
 }
diff --git a/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Producer.java b/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Producer.java
index 478c9e6e6cdd..efc06025b94e 100644
--- a/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Producer.java
+++ b/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Producer.java
@@ -133,6 +133,15 @@ public class STS2Producer extends DefaultProducer {
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            if (result.credentials() != null) {
+                message.setHeader(STS2Constants.ACCESS_KEY_ID, result.credentials().accessKeyId());
+                message.setHeader(STS2Constants.SECRET_KEY_ID, result.credentials().secretAccessKey());
+                message.setHeader(STS2Constants.SESSION_TOKEN, result.credentials().sessionToken());
+                message.setHeader(STS2Constants.EXPIRATION, result.credentials().expiration());
+            }
+            if (result.assumedRoleUser() != null) {
+                message.setHeader(STS2Constants.ASSUMED_ROLE_ARN, result.assumedRoleUser().arn());
+            }
         }
     }
 
@@ -162,6 +171,12 @@ public class STS2Producer extends DefaultProducer {
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            if (result.credentials() != null) {
+                message.setHeader(STS2Constants.ACCESS_KEY_ID, result.credentials().accessKeyId());
+                message.setHeader(STS2Constants.SECRET_KEY_ID, result.credentials().secretAccessKey());
+                message.setHeader(STS2Constants.SESSION_TOKEN, result.credentials().sessionToken());
+                message.setHeader(STS2Constants.EXPIRATION, result.credentials().expiration());
+            }
         }
     }
 
@@ -197,6 +212,12 @@ public class STS2Producer extends DefaultProducer {
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
+            if (result.credentials() != null) {
+                message.setHeader(STS2Constants.ACCESS_KEY_ID, result.credentials().accessKeyId());
+                message.setHeader(STS2Constants.SECRET_KEY_ID, result.credentials().secretAccessKey());
+                message.setHeader(STS2Constants.SESSION_TOKEN, result.credentials().sessionToken());
+                message.setHeader(STS2Constants.EXPIRATION, result.credentials().expiration());
+            }
         }
     }
 
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KMS2EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KMS2EndpointBuilderFactory.java
index 5b56cf87e5a4..664663f504d2 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KMS2EndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KMS2EndpointBuilderFactory.java
@@ -652,6 +652,66 @@ public interface KMS2EndpointBuilderFactory {
         public String awsKMSPendingWindowInDays() {
             return "CamelAwsKMSPendingWindowInDays";
         }
+        /**
+         * The marker for the next set of results.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: listKeys
+         * 
+         * @return the name of the header {@code AwsKMSMarker}.
+         */
+        public String awsKMSMarker() {
+            return "CamelAwsKMSMarker";
+        }
+        /**
+         * Whether the response has more results (is truncated).
+         * 
+         * The option is a: {@code Boolean} type.
+         * 
+         * Group: listKeys
+         * 
+         * @return the name of the header {@code AwsKMSTruncated}.
+         */
+        public String awsKMSTruncated() {
+            return "CamelAwsKMSTruncated";
+        }
+        /**
+         * The Amazon Resource Name (ARN) of the key.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: createKey describeKey
+         * 
+         * @return the name of the header {@code AwsKMSKeyArn}.
+         */
+        public String awsKMSKeyArn() {
+            return "CamelAwsKMSKeyArn";
+        }
+        /**
+         * The state of the key.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: createKey describeKey
+         * 
+         * @return the name of the header {@code AwsKMSKeyState}.
+         */
+        public String awsKMSKeyState() {
+            return "CamelAwsKMSKeyState";
+        }
+        /**
+         * The date and time after which AWS KMS deletes the key.
+         * 
+         * The option is a: {@code java.time.Instant} type.
+         * 
+         * Group: scheduleKeyDeletion
+         * 
+         * @return the name of the header {@code AwsKMSDeletionDate}.
+         */
+        public String awsKMSDeletionDate() {
+            return "CamelAwsKMSDeletionDate";
+        }
     }
     static KMS2EndpointBuilder endpointBuilder(String componentName, String path) {
         class KMS2EndpointBuilderImpl extends AbstractEndpointBuilder implements KMS2EndpointBuilder, AdvancedKMS2EndpointBuilder {
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Lambda2EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Lambda2EndpointBuilderFactory.java
index 41fb98030d34..b1bc037a59af 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Lambda2EndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Lambda2EndpointBuilderFactory.java
@@ -987,6 +987,92 @@ public interface Lambda2EndpointBuilderFactory {
         public String awsLambdaAliasFunctionDescription() {
             return "CamelAwsLambdaAliasFunctionDescription";
         }
+        /**
+         * The marker for the next set of results.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: listFunctions listVersions listAliases listEventSourceMapping
+         * listTags
+         * 
+         * @return the name of the header {@code AwsLambdaMarker}.
+         */
+        public String awsLambdaMarker() {
+            return "CamelAwsLambdaMarker";
+        }
+        /**
+         * The maximum number of results to return.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: listFunctions listVersions listAliases listEventSourceMapping
+         * 
+         * @return the name of the header {@code AwsLambdaMaxItems}.
+         */
+        public String awsLambdaMaxItems() {
+            return "CamelAwsLambdaMaxItems";
+        }
+        /**
+         * Whether the response has more results (is truncated).
+         * 
+         * The option is a: {@code Boolean} type.
+         * 
+         * Group: listFunctions listVersions listAliases listEventSourceMapping
+         * 
+         * @return the name of the header {@code AwsLambdaIsTruncated}.
+         */
+        public String awsLambdaIsTruncated() {
+            return "CamelAwsLambdaIsTruncated";
+        }
+        /**
+         * The Amazon Resource Name (ARN) of the function.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: createFunction getFunction publishVersion createAlias getAlias
+         * 
+         * @return the name of the header {@code AwsLambdaFunctionArn}.
+         */
+        public String awsLambdaFunctionArn() {
+            return "CamelAwsLambdaFunctionArn";
+        }
+        /**
+         * The HTTP status code of the function invocation.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: invokeFunction
+         * 
+         * @return the name of the header {@code AwsLambdaStatusCode}.
+         */
+        public String awsLambdaStatusCode() {
+            return "CamelAwsLambdaStatusCode";
+        }
+        /**
+         * If present, indicates that an error occurred during function
+         * execution.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: invokeFunction
+         * 
+         * @return the name of the header {@code AwsLambdaFunctionError}.
+         */
+        public String awsLambdaFunctionError() {
+            return "CamelAwsLambdaFunctionError";
+        }
+        /**
+         * The last 4 KB of the execution log.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: invokeFunction
+         * 
+         * @return the name of the header {@code AwsLambdaLogResult}.
+         */
+        public String awsLambdaLogResult() {
+            return "CamelAwsLambdaLogResult";
+        }
     }
     static Lambda2EndpointBuilder endpointBuilder(String componentName, String path) {
         class Lambda2EndpointBuilderImpl extends AbstractEndpointBuilder implements Lambda2EndpointBuilder, AdvancedLambda2EndpointBuilder {
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MQ2EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MQ2EndpointBuilderFactory.java
index c13bbcbff42e..9f54149fe63e 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MQ2EndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MQ2EndpointBuilderFactory.java
@@ -729,6 +729,54 @@ public interface MQ2EndpointBuilderFactory {
         public String awsMQBrokerPubliclyAccessible() {
             return "CamelAwsMQBrokerPubliclyAccessible";
         }
+        /**
+         * The token for the next set of results.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: listBrokers
+         * 
+         * @return the name of the header {@code AwsMQNextToken}.
+         */
+        public String awsMQNextToken() {
+            return "CamelAwsMQNextToken";
+        }
+        /**
+         * Whether the response has more results (is truncated).
+         * 
+         * The option is a: {@code Boolean} type.
+         * 
+         * Group: listBrokers
+         * 
+         * @return the name of the header {@code AwsMQIsTruncated}.
+         */
+        public String awsMQIsTruncated() {
+            return "CamelAwsMQIsTruncated";
+        }
+        /**
+         * The Amazon Resource Name (ARN) of the broker.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: createBroker
+         * 
+         * @return the name of the header {@code AwsMQBrokerArn}.
+         */
+        public String awsMQBrokerArn() {
+            return "CamelAwsMQBrokerArn";
+        }
+        /**
+         * The state of the broker.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: describeBroker
+         * 
+         * @return the name of the header {@code AwsMQBrokerState}.
+         */
+        public String awsMQBrokerState() {
+            return "CamelAwsMQBrokerState";
+        }
     }
     static MQ2EndpointBuilder endpointBuilder(String componentName, String path) {
         class MQ2EndpointBuilderImpl extends AbstractEndpointBuilder implements MQ2EndpointBuilder, AdvancedMQ2EndpointBuilder {
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MSK2EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MSK2EndpointBuilderFactory.java
index d6745b95cd25..ae1de2d30fe6 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MSK2EndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MSK2EndpointBuilderFactory.java
@@ -677,6 +677,54 @@ public interface MSK2EndpointBuilderFactory {
         public String awsMSKBrokerNodesGroupInfo() {
             return "CamelAwsMSKBrokerNodesGroupInfo";
         }
+        /**
+         * The token for the next set of results.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: listClusters
+         * 
+         * @return the name of the header {@code AwsMSKNextToken}.
+         */
+        public String awsMSKNextToken() {
+            return "CamelAwsMSKNextToken";
+        }
+        /**
+         * The maximum number of results to return.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: listClusters
+         * 
+         * @return the name of the header {@code AwsMSKMaxResults}.
+         */
+        public String awsMSKMaxResults() {
+            return "CamelAwsMSKMaxResults";
+        }
+        /**
+         * Whether the response has more results (is truncated).
+         * 
+         * The option is a: {@code Boolean} type.
+         * 
+         * Group: listClusters
+         * 
+         * @return the name of the header {@code AwsMSKIsTruncated}.
+         */
+        public String awsMSKIsTruncated() {
+            return "CamelAwsMSKIsTruncated";
+        }
+        /**
+         * The state of the cluster.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: createCluster describeCluster
+         * 
+         * @return the name of the header {@code AwsMSKClusterState}.
+         */
+        public String awsMSKClusterState() {
+            return "CamelAwsMSKClusterState";
+        }
     }
     static MSK2EndpointBuilder endpointBuilder(String componentName, String path) {
         class MSK2EndpointBuilderImpl extends AbstractEndpointBuilder implements MSK2EndpointBuilder, AdvancedMSK2EndpointBuilder {
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/STS2EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/STS2EndpointBuilderFactory.java
index b0382626bfc6..f68744661906 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/STS2EndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/STS2EndpointBuilderFactory.java
@@ -608,6 +608,66 @@ public interface STS2EndpointBuilderFactory {
         public String awsStsAssumeRoleDurationSeconds() {
             return "CamelAwsStsAssumeRoleDurationSeconds";
         }
+        /**
+         * The temporary access key ID.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: assumeRole getSessionToken getFederationToken
+         * 
+         * @return the name of the header {@code AwsStsAccessKeyId}.
+         */
+        public String awsStsAccessKeyId() {
+            return "CamelAwsStsAccessKeyId";
+        }
+        /**
+         * The temporary secret access key.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: assumeRole getSessionToken getFederationToken
+         * 
+         * @return the name of the header {@code AwsStsSecretKey}.
+         */
+        public String awsStsSecretKey() {
+            return "CamelAwsStsSecretKey";
+        }
+        /**
+         * The temporary session token.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: assumeRole getSessionToken getFederationToken
+         * 
+         * @return the name of the header {@code AwsStsSessionToken}.
+         */
+        public String awsStsSessionToken() {
+            return "CamelAwsStsSessionToken";
+        }
+        /**
+         * The expiration date and time of the credentials.
+         * 
+         * The option is a: {@code java.time.Instant} type.
+         * 
+         * Group: assumeRole getSessionToken getFederationToken
+         * 
+         * @return the name of the header {@code AwsStsExpiration}.
+         */
+        public String awsStsExpiration() {
+            return "CamelAwsStsExpiration";
+        }
+        /**
+         * The Amazon Resource Name (ARN) of the assumed role.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: assumeRole
+         * 
+         * @return the name of the header {@code AwsStsAssumedRoleArn}.
+         */
+        public String awsStsAssumedRoleArn() {
+            return "CamelAwsStsAssumedRoleArn";
+        }
     }
     static STS2EndpointBuilder endpointBuilder(String componentName, String path) {
         class STS2EndpointBuilderImpl extends AbstractEndpointBuilder implements STS2EndpointBuilder, AdvancedSTS2EndpointBuilder {
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sns2EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sns2EndpointBuilderFactory.java
index 764188f2e806..d0de8aff01a8 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sns2EndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sns2EndpointBuilderFactory.java
@@ -829,6 +829,42 @@ public interface Sns2EndpointBuilderFactory {
         public String awsSnsMessageStructure() {
             return "CamelAwsSnsMessageStructure";
         }
+        /**
+         * The sequence number for FIFO topics.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsSnsSequenceNumber}.
+         */
+        public String awsSnsSequenceNumber() {
+            return "CamelAwsSnsSequenceNumber";
+        }
+        /**
+         * The number of failed messages in a batch publish operation.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsSnsFailedMessageCount}.
+         */
+        public String awsSnsFailedMessageCount() {
+            return "CamelAwsSnsFailedMessageCount";
+        }
+        /**
+         * The number of successful messages in a batch publish operation.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsSnsSuccessfulMessageCount}.
+         */
+        public String awsSnsSuccessfulMessageCount() {
+            return "CamelAwsSnsSuccessfulMessageCount";
+        }
     }
     static Sns2EndpointBuilder endpointBuilder(String componentName, String path) {
         class Sns2EndpointBuilderImpl extends AbstractEndpointBuilder implements Sns2EndpointBuilder, AdvancedSns2EndpointBuilder {
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sqs2EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sqs2EndpointBuilderFactory.java
index b8fef8057fd5..173a3880bf7a 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sqs2EndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sqs2EndpointBuilderFactory.java
@@ -3435,6 +3435,78 @@ public interface Sqs2EndpointBuilderFactory {
         public String awsSqsOperation() {
             return "CamelAwsSqsOperation";
         }
+        /**
+         * The token for the next set of results.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: listQueues
+         * 
+         * @return the name of the header {@code AwsSqsNextToken}.
+         */
+        public String awsSqsNextToken() {
+            return "CamelAwsSqsNextToken";
+        }
+        /**
+         * The maximum number of results to return.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: listQueues
+         * 
+         * @return the name of the header {@code AwsSqsMaxResults}.
+         */
+        public String awsSqsMaxResults() {
+            return "CamelAwsSqsMaxResults";
+        }
+        /**
+         * Whether the response has more results (is truncated).
+         * 
+         * The option is a: {@code Boolean} type.
+         * 
+         * Group: listQueues
+         * 
+         * @return the name of the header {@code AwsSqsIsTruncated}.
+         */
+        public String awsSqsIsTruncated() {
+            return "CamelAwsSqsIsTruncated";
+        }
+        /**
+         * The sequence number for FIFO queues.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsSqsSequenceNumber}.
+         */
+        public String awsSqsSequenceNumber() {
+            return "CamelAwsSqsSequenceNumber";
+        }
+        /**
+         * The number of failed messages in a batch send operation.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: sendBatchMessage
+         * 
+         * @return the name of the header {@code AwsSqsFailedMessageCount}.
+         */
+        public String awsSqsFailedMessageCount() {
+            return "CamelAwsSqsFailedMessageCount";
+        }
+        /**
+         * The number of successful messages in a batch send operation.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: sendBatchMessage
+         * 
+         * @return the name of the header {@code AwsSqsSuccessfulMessageCount}.
+         */
+        public String awsSqsSuccessfulMessageCount() {
+            return "CamelAwsSqsSuccessfulMessageCount";
+        }
     }
     static Sqs2EndpointBuilder endpointBuilder(String componentName, String path) {
         class Sqs2EndpointBuilderImpl extends AbstractEndpointBuilder implements Sqs2EndpointBuilder, AdvancedSqs2EndpointBuilder {