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

acosentino pushed a commit to branch CAMEL-22805-part-2
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 9f84bf85bd40a028664186cbdf530038aa884517
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Jan 8 12:04:49 2026 +0100

    CAMEL-22827 - Camel-AWS components: Avoid duplicated code and add 
pagination to producer operation where it makes sense - AWS CloudWatch
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../apache/camel/catalog/components/aws2-cw.json   | 104 +++++-----
 .../component/aws2/cw/Cw2ComponentConfigurer.java  |   3 +
 .../component/aws2/cw/Cw2EndpointConfigurer.java   |   3 +
 .../component/aws2/cw/Cw2EndpointUriFactory.java   |   3 +-
 .../apache/camel/component/aws2/cw/aws2-cw.json    | 104 +++++-----
 .../camel/component/aws2/cw/Cw2Configuration.java  |  13 ++
 .../camel/component/aws2/cw/Cw2Constants.java      |  19 ++
 .../camel/component/aws2/cw/Cw2Operations.java}    |  34 +---
 .../camel/component/aws2/cw/Cw2Producer.java       | 220 ++++++++++++++++++---
 .../component/aws2/cw/CloudWatchClientMock.java    |  58 ++++++
 .../camel/component/aws2/cw/CwComponentTest.java   |  62 ++++++
 .../dsl/Aws2CwComponentBuilderFactory.java         |  19 ++
 .../endpoint/dsl/Cw2EndpointBuilderFactory.java    | 104 ++++++++++
 13 files changed, 599 insertions(+), 147 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-cw.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-cw.json
index 4f36c35e8af5..a792357d9946 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-cw.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-cw.json
@@ -27,59 +27,67 @@
     "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
component configuration" },
     "lazyStartProducer": { "index": 1, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
     "name": { "index": 2, "kind": "property", "displayName": "Name", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric name" },
-    "overrideEndpoint": { "index": 3, "kind": "property", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination with [...]
-    "region": { "index": 4, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", 
"eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", 
"ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", 
"eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", 
"eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-north [...]
-    "timestamp": { "index": 5, "kind": "property", "displayName": "Timestamp", 
"group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "java.time.Instant", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric timestamp" },
-    "unit": { "index": 6, "kind": "property", "displayName": "Unit", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric unit" },
-    "uriEndpointOverride": { "index": 7, "kind": "property", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpoint [...]
-    "value": { "index": 8, "kind": "property", "displayName": "Value", 
"group": "producer", "label": "", "required": false, "type": "number", 
"javaType": "java.lang.Double", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric value" },
-    "amazonCwClient": { "index": 9, "kind": "property", "displayName": "Amazon 
Cw Client", "group": "advanced", "label": "advanced", "required": false, 
"type": "object", "javaType": 
"software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "To use the 
AmazonCloudWatch as the  [...]
-    "autowiredEnabled": { "index": 10, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
-    "healthCheckConsumerEnabled": { "index": 11, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
-    "healthCheckProducerEnabled": { "index": 12, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
-    "proxyHost": { "index": 13, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
CW client" },
-    "proxyPort": { "index": 14, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
CW client" },
-    "proxyProtocol": { "index": 15, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when inst [...]
-    "accessKey": { "index": 16, "kind": "property", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "profileCredentialsName": { "index": 17, "kind": "property", 
"displayName": "Profile Credentials Name", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
-    "secretKey": { "index": 18, "kind": "property", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 19, "kind": "property", "displayName": "Session 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 20, "kind": "property", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
-    "useDefaultCredentialsProvider": { "index": 21, "kind": "property", 
"displayName": "Use Default Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load crede [...]
-    "useProfileCredentialsProvider": { "index": 22, "kind": "property", 
"displayName": "Use Profile Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the Cloudwatch client should 
expect to lo [...]
-    "useSessionCredentials": { "index": 23, "kind": "property", "displayName": 
"Use Session Credentials", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "Set whether the 
CloudWatch client should expect to use Session Credent [...]
+    "operation": { "index": 3, "kind": "property", "displayName": "Operation", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "org.apache.camel.component.aws2.cw.Cw2Operations", "enum": [ 
"putMetricData", "listMetrics", "describeAlarms", "describeAlarmsForMetric" ], 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"putMetricData", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": " 
[...]
+    "overrideEndpoint": { "index": 4, "kind": "property", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination with [...]
+    "region": { "index": 5, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", 
"eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", 
"ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", 
"eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", 
"eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-north [...]
+    "timestamp": { "index": 6, "kind": "property", "displayName": "Timestamp", 
"group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "java.time.Instant", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric timestamp" },
+    "unit": { "index": 7, "kind": "property", "displayName": "Unit", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric unit" },
+    "uriEndpointOverride": { "index": 8, "kind": "property", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpoint [...]
+    "value": { "index": 9, "kind": "property", "displayName": "Value", 
"group": "producer", "label": "", "required": false, "type": "number", 
"javaType": "java.lang.Double", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric value" },
+    "amazonCwClient": { "index": 10, "kind": "property", "displayName": 
"Amazon Cw Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "To use the 
AmazonCloudWatch as the [...]
+    "autowiredEnabled": { "index": 11, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
+    "healthCheckConsumerEnabled": { "index": 12, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
+    "healthCheckProducerEnabled": { "index": 13, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
+    "proxyHost": { "index": 14, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
CW client" },
+    "proxyPort": { "index": 15, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
CW client" },
+    "proxyProtocol": { "index": 16, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when inst [...]
+    "accessKey": { "index": 17, "kind": "property", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
+    "profileCredentialsName": { "index": 18, "kind": "property", 
"displayName": "Profile Credentials Name", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
+    "secretKey": { "index": 19, "kind": "property", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 20, "kind": "property", "displayName": "Session 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 21, "kind": "property", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
+    "useDefaultCredentialsProvider": { "index": 22, "kind": "property", 
"displayName": "Use Default Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load crede [...]
+    "useProfileCredentialsProvider": { "index": 23, "kind": "property", 
"displayName": "Use Profile Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the Cloudwatch client should 
expect to lo [...]
+    "useSessionCredentials": { "index": 24, "kind": "property", "displayName": 
"Use Session Credentials", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "Set whether the 
CloudWatch client should expect to use Session Credent [...]
   },
   "headers": {
-    "CamelAwsCwMetricNamespace": { "index": 0, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric namespace.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_NAMESPACE" },
-    "CamelAwsCwMetricName": { "index": 1, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric name.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_NAME" },
-    "CamelAwsCwMetricValue": { "index": 2, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "Double", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric value.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_VALUE" },
-    "CamelAwsCwMetricUnit": { "index": 3, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric unit.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_UNIT" },
-    "CamelAwsCwMetricTimestamp": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric timestamp.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_TIMESTAMP" },
-    "CamelAwsCwMetricDimensions": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "A map of dimension names 
and dimension values.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSIONS" },
-    "CamelAwsCwMetricDimensionName": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric dimension name.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSION_NAME" },
-    "CamelAwsCwMetricDimensionValue": { "index": 7, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric dimension value.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSION_VALUE" }
+    "CamelAwsCwOperation": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The operation to perform.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#OPERATION" },
+    "CamelAwsCwMetricNamespace": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric namespace.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_NAMESPACE" },
+    "CamelAwsCwMetricName": { "index": 2, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric name.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_NAME" },
+    "CamelAwsCwMetricValue": { "index": 3, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "Double", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric value.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_VALUE" },
+    "CamelAwsCwMetricUnit": { "index": 4, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric unit.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_UNIT" },
+    "CamelAwsCwMetricTimestamp": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric timestamp.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_TIMESTAMP" },
+    "CamelAwsCwMetricDimensions": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "A map of dimension names 
and dimension values.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSIONS" },
+    "CamelAwsCwMetricDimensionName": { "index": 7, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric dimension name.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSION_NAME" },
+    "CamelAwsCwMetricDimensionValue": { "index": 8, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric dimension value.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSION_VALUE" },
+    "CamelAwsCwAlarmName": { "index": 9, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The name of the alarm.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#ALARM_NAME" },
+    "CamelAwsCwAlarmState": { "index": 10, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The state value for the alarm (OK, ALARM, 
INSUFFICIENT_DATA).", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#ALARM_STATE" },
+    "CamelAwsCwNextToken": { "index": 11, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "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.cw.Cw2Constants#NEXT_TOKEN" },
+    "CamelAwsCwMaxResults": { "index": 12, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "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.cw.Cw2Constants#MAX_RESULTS" },
+    "CamelAwsCwIsTruncated": { "index": 13, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "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.cw.Cw2Constants#IS_TRUNCATED" }
   },
   "properties": {
     "namespace": { "index": 0, "kind": "path", "displayName": "Namespace", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric namespace" },
     "name": { "index": 1, "kind": "parameter", "displayName": "Name", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric name" },
-    "overrideEndpoint": { "index": 2, "kind": "parameter", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination wit [...]
-    "region": { "index": 3, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", 
"eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", 
"ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", 
"eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", 
"eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-nort [...]
-    "timestamp": { "index": 4, "kind": "parameter", "displayName": 
"Timestamp", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "java.time.Instant", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric timestamp" },
-    "unit": { "index": 5, "kind": "parameter", "displayName": "Unit", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric unit" },
-    "uriEndpointOverride": { "index": 6, "kind": "parameter", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpoin [...]
-    "value": { "index": 7, "kind": "parameter", "displayName": "Value", 
"group": "producer", "label": "", "required": false, "type": "number", 
"javaType": "java.lang.Double", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric value" },
-    "lazyStartProducer": { "index": 8, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
-    "amazonCwClient": { "index": 9, "kind": "parameter", "displayName": 
"Amazon Cw Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "To use the 
AmazonCloudWatch as the [...]
-    "proxyHost": { "index": 10, "kind": "parameter", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
CW client" },
-    "proxyPort": { "index": 11, "kind": "parameter", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
CW client" },
-    "proxyProtocol": { "index": 12, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when ins [...]
-    "accessKey": { "index": 13, "kind": "parameter", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "profileCredentialsName": { "index": 14, "kind": "parameter", 
"displayName": "Profile Credentials Name", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
-    "secretKey": { "index": 15, "kind": "parameter", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 16, "kind": "parameter", "displayName": 
"Session Token", "group": "security", "label": "security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 17, "kind": "parameter", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
-    "useDefaultCredentialsProvider": { "index": 18, "kind": "parameter", 
"displayName": "Use Default Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load cred [...]
-    "useProfileCredentialsProvider": { "index": 19, "kind": "parameter", 
"displayName": "Use Profile Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the Cloudwatch client should 
expect to l [...]
-    "useSessionCredentials": { "index": 20, "kind": "parameter", 
"displayName": "Use Session Credentials", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the CloudWatch client should 
expect to use Session Creden [...]
+    "operation": { "index": 2, "kind": "parameter", "displayName": 
"Operation", "group": "producer", "label": "", "required": false, "type": 
"enum", "javaType": "org.apache.camel.component.aws2.cw.Cw2Operations", "enum": 
[ "putMetricData", "listMetrics", "describeAlarms", "describeAlarmsForMetric" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"putMetricData", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField":  
[...]
+    "overrideEndpoint": { "index": 3, "kind": "parameter", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination wit [...]
+    "region": { "index": 4, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", 
"eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", 
"ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", 
"eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", 
"eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-nort [...]
+    "timestamp": { "index": 5, "kind": "parameter", "displayName": 
"Timestamp", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "java.time.Instant", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric timestamp" },
+    "unit": { "index": 6, "kind": "parameter", "displayName": "Unit", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric unit" },
+    "uriEndpointOverride": { "index": 7, "kind": "parameter", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpoin [...]
+    "value": { "index": 8, "kind": "parameter", "displayName": "Value", 
"group": "producer", "label": "", "required": false, "type": "number", 
"javaType": "java.lang.Double", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric value" },
+    "lazyStartProducer": { "index": 9, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
+    "amazonCwClient": { "index": 10, "kind": "parameter", "displayName": 
"Amazon Cw Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "To use the 
AmazonCloudWatch as th [...]
+    "proxyHost": { "index": 11, "kind": "parameter", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
CW client" },
+    "proxyPort": { "index": 12, "kind": "parameter", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
CW client" },
+    "proxyProtocol": { "index": 13, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when ins [...]
+    "accessKey": { "index": 14, "kind": "parameter", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
+    "profileCredentialsName": { "index": 15, "kind": "parameter", 
"displayName": "Profile Credentials Name", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
+    "secretKey": { "index": 16, "kind": "parameter", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 17, "kind": "parameter", "displayName": 
"Session Token", "group": "security", "label": "security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 18, "kind": "parameter", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
+    "useDefaultCredentialsProvider": { "index": 19, "kind": "parameter", 
"displayName": "Use Default Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load cred [...]
+    "useProfileCredentialsProvider": { "index": 20, "kind": "parameter", 
"displayName": "Use Profile Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the Cloudwatch client should 
expect to l [...]
+    "useSessionCredentials": { "index": 21, "kind": "parameter", 
"displayName": "Use Session Credentials", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the CloudWatch client should 
expect to use Session Creden [...]
   }
 }
diff --git 
a/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2ComponentConfigurer.java
 
b/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2ComponentConfigurer.java
index 9e091ad75248..052993fc65ef 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2ComponentConfigurer.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2ComponentConfigurer.java
@@ -44,6 +44,7 @@ public class Cw2ComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "name": 
getOrCreateConfiguration(target).setName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "operation": 
getOrCreateConfiguration(target).setOperation(property(camelContext, 
org.apache.camel.component.aws2.cw.Cw2Operations.class, value)); return true;
         case "overrideendpoint":
         case "overrideEndpoint": 
getOrCreateConfiguration(target).setOverrideEndpoint(property(camelContext, 
boolean.class, value)); return true;
         case "profilecredentialsname":
@@ -98,6 +99,7 @@ public class Cw2ComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "name": return java.lang.String.class;
+        case "operation": return 
org.apache.camel.component.aws2.cw.Cw2Operations.class;
         case "overrideendpoint":
         case "overrideEndpoint": return boolean.class;
         case "profilecredentialsname":
@@ -148,6 +150,7 @@ public class Cw2ComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "name": return getOrCreateConfiguration(target).getName();
+        case "operation": return 
getOrCreateConfiguration(target).getOperation();
         case "overrideendpoint":
         case "overrideEndpoint": return 
getOrCreateConfiguration(target).isOverrideEndpoint();
         case "profilecredentialsname":
diff --git 
a/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2EndpointConfigurer.java
 
b/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2EndpointConfigurer.java
index b8ef7ea8e9f3..b107057716f0 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2EndpointConfigurer.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2EndpointConfigurer.java
@@ -30,6 +30,7 @@ public class Cw2EndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "name": target.getConfiguration().setName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "operation": 
target.getConfiguration().setOperation(property(camelContext, 
org.apache.camel.component.aws2.cw.Cw2Operations.class, value)); return true;
         case "overrideendpoint":
         case "overrideEndpoint": 
target.getConfiguration().setOverrideEndpoint(property(camelContext, 
boolean.class, value)); return true;
         case "profilecredentialsname":
@@ -77,6 +78,7 @@ public class Cw2EndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "name": return java.lang.String.class;
+        case "operation": return 
org.apache.camel.component.aws2.cw.Cw2Operations.class;
         case "overrideendpoint":
         case "overrideEndpoint": return boolean.class;
         case "profilecredentialsname":
@@ -120,6 +122,7 @@ public class Cw2EndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "name": return target.getConfiguration().getName();
+        case "operation": return target.getConfiguration().getOperation();
         case "overrideendpoint":
         case "overrideEndpoint": return 
target.getConfiguration().isOverrideEndpoint();
         case "profilecredentialsname":
diff --git 
a/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2EndpointUriFactory.java
 
b/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2EndpointUriFactory.java
index ccc43caff245..045b032c14ae 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2EndpointUriFactory.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2EndpointUriFactory.java
@@ -23,12 +23,13 @@ public class Cw2EndpointUriFactory extends 
org.apache.camel.support.component.En
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Map<String, String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(21);
+        Set<String> props = new HashSet<>(22);
         props.add("accessKey");
         props.add("amazonCwClient");
         props.add("lazyStartProducer");
         props.add("name");
         props.add("namespace");
+        props.add("operation");
         props.add("overrideEndpoint");
         props.add("profileCredentialsName");
         props.add("proxyHost");
diff --git 
a/components/camel-aws/camel-aws2-cw/src/generated/resources/META-INF/org/apache/camel/component/aws2/cw/aws2-cw.json
 
b/components/camel-aws/camel-aws2-cw/src/generated/resources/META-INF/org/apache/camel/component/aws2/cw/aws2-cw.json
index 4f36c35e8af5..a792357d9946 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/generated/resources/META-INF/org/apache/camel/component/aws2/cw/aws2-cw.json
+++ 
b/components/camel-aws/camel-aws2-cw/src/generated/resources/META-INF/org/apache/camel/component/aws2/cw/aws2-cw.json
@@ -27,59 +27,67 @@
     "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
component configuration" },
     "lazyStartProducer": { "index": 1, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
     "name": { "index": 2, "kind": "property", "displayName": "Name", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric name" },
-    "overrideEndpoint": { "index": 3, "kind": "property", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination with [...]
-    "region": { "index": 4, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", 
"eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", 
"ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", 
"eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", 
"eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-north [...]
-    "timestamp": { "index": 5, "kind": "property", "displayName": "Timestamp", 
"group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "java.time.Instant", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric timestamp" },
-    "unit": { "index": 6, "kind": "property", "displayName": "Unit", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric unit" },
-    "uriEndpointOverride": { "index": 7, "kind": "property", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpoint [...]
-    "value": { "index": 8, "kind": "property", "displayName": "Value", 
"group": "producer", "label": "", "required": false, "type": "number", 
"javaType": "java.lang.Double", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric value" },
-    "amazonCwClient": { "index": 9, "kind": "property", "displayName": "Amazon 
Cw Client", "group": "advanced", "label": "advanced", "required": false, 
"type": "object", "javaType": 
"software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "To use the 
AmazonCloudWatch as the  [...]
-    "autowiredEnabled": { "index": 10, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
-    "healthCheckConsumerEnabled": { "index": 11, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
-    "healthCheckProducerEnabled": { "index": 12, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
-    "proxyHost": { "index": 13, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
CW client" },
-    "proxyPort": { "index": 14, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
CW client" },
-    "proxyProtocol": { "index": 15, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when inst [...]
-    "accessKey": { "index": 16, "kind": "property", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "profileCredentialsName": { "index": 17, "kind": "property", 
"displayName": "Profile Credentials Name", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
-    "secretKey": { "index": 18, "kind": "property", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 19, "kind": "property", "displayName": "Session 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 20, "kind": "property", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
-    "useDefaultCredentialsProvider": { "index": 21, "kind": "property", 
"displayName": "Use Default Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load crede [...]
-    "useProfileCredentialsProvider": { "index": 22, "kind": "property", 
"displayName": "Use Profile Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the Cloudwatch client should 
expect to lo [...]
-    "useSessionCredentials": { "index": 23, "kind": "property", "displayName": 
"Use Session Credentials", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "Set whether the 
CloudWatch client should expect to use Session Credent [...]
+    "operation": { "index": 3, "kind": "property", "displayName": "Operation", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "org.apache.camel.component.aws2.cw.Cw2Operations", "enum": [ 
"putMetricData", "listMetrics", "describeAlarms", "describeAlarmsForMetric" ], 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"putMetricData", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": " 
[...]
+    "overrideEndpoint": { "index": 4, "kind": "property", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination with [...]
+    "region": { "index": 5, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", 
"eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", 
"ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", 
"eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", 
"eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-north [...]
+    "timestamp": { "index": 6, "kind": "property", "displayName": "Timestamp", 
"group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "java.time.Instant", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric timestamp" },
+    "unit": { "index": 7, "kind": "property", "displayName": "Unit", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric unit" },
+    "uriEndpointOverride": { "index": 8, "kind": "property", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpoint [...]
+    "value": { "index": 9, "kind": "property", "displayName": "Value", 
"group": "producer", "label": "", "required": false, "type": "number", 
"javaType": "java.lang.Double", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric value" },
+    "amazonCwClient": { "index": 10, "kind": "property", "displayName": 
"Amazon Cw Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "To use the 
AmazonCloudWatch as the [...]
+    "autowiredEnabled": { "index": 11, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
+    "healthCheckConsumerEnabled": { "index": 12, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
+    "healthCheckProducerEnabled": { "index": 13, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
+    "proxyHost": { "index": 14, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
CW client" },
+    "proxyPort": { "index": 15, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
CW client" },
+    "proxyProtocol": { "index": 16, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when inst [...]
+    "accessKey": { "index": 17, "kind": "property", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
+    "profileCredentialsName": { "index": 18, "kind": "property", 
"displayName": "Profile Credentials Name", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
+    "secretKey": { "index": 19, "kind": "property", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 20, "kind": "property", "displayName": "Session 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 21, "kind": "property", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
+    "useDefaultCredentialsProvider": { "index": 22, "kind": "property", 
"displayName": "Use Default Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load crede [...]
+    "useProfileCredentialsProvider": { "index": 23, "kind": "property", 
"displayName": "Use Profile Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the Cloudwatch client should 
expect to lo [...]
+    "useSessionCredentials": { "index": 24, "kind": "property", "displayName": 
"Use Session Credentials", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "Set whether the 
CloudWatch client should expect to use Session Credent [...]
   },
   "headers": {
-    "CamelAwsCwMetricNamespace": { "index": 0, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric namespace.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_NAMESPACE" },
-    "CamelAwsCwMetricName": { "index": 1, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric name.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_NAME" },
-    "CamelAwsCwMetricValue": { "index": 2, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "Double", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric value.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_VALUE" },
-    "CamelAwsCwMetricUnit": { "index": 3, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric unit.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_UNIT" },
-    "CamelAwsCwMetricTimestamp": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric timestamp.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_TIMESTAMP" },
-    "CamelAwsCwMetricDimensions": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "A map of dimension names 
and dimension values.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSIONS" },
-    "CamelAwsCwMetricDimensionName": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric dimension name.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSION_NAME" },
-    "CamelAwsCwMetricDimensionValue": { "index": 7, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric dimension value.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSION_VALUE" }
+    "CamelAwsCwOperation": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The operation to perform.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#OPERATION" },
+    "CamelAwsCwMetricNamespace": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric namespace.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_NAMESPACE" },
+    "CamelAwsCwMetricName": { "index": 2, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric name.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_NAME" },
+    "CamelAwsCwMetricValue": { "index": 3, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "Double", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric value.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_VALUE" },
+    "CamelAwsCwMetricUnit": { "index": 4, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon CW metric unit.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_UNIT" },
+    "CamelAwsCwMetricTimestamp": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric timestamp.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_TIMESTAMP" },
+    "CamelAwsCwMetricDimensions": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "A map of dimension names 
and dimension values.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSIONS" },
+    "CamelAwsCwMetricDimensionName": { "index": 7, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric dimension name.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSION_NAME" },
+    "CamelAwsCwMetricDimensionValue": { "index": 8, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Amazon CW metric dimension value.", 
"constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#METRIC_DIMENSION_VALUE" },
+    "CamelAwsCwAlarmName": { "index": 9, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The name of the alarm.", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#ALARM_NAME" },
+    "CamelAwsCwAlarmState": { "index": 10, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The state value for the alarm (OK, ALARM, 
INSUFFICIENT_DATA).", "constantName": 
"org.apache.camel.component.aws2.cw.Cw2Constants#ALARM_STATE" },
+    "CamelAwsCwNextToken": { "index": 11, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "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.cw.Cw2Constants#NEXT_TOKEN" },
+    "CamelAwsCwMaxResults": { "index": 12, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "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.cw.Cw2Constants#MAX_RESULTS" },
+    "CamelAwsCwIsTruncated": { "index": 13, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "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.cw.Cw2Constants#IS_TRUNCATED" }
   },
   "properties": {
     "namespace": { "index": 0, "kind": "path", "displayName": "Namespace", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric namespace" },
     "name": { "index": 1, "kind": "parameter", "displayName": "Name", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric name" },
-    "overrideEndpoint": { "index": 2, "kind": "parameter", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination wit [...]
-    "region": { "index": 3, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", 
"eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", 
"ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", 
"eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", 
"eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-nort [...]
-    "timestamp": { "index": 4, "kind": "parameter", "displayName": 
"Timestamp", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "java.time.Instant", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric timestamp" },
-    "unit": { "index": 5, "kind": "parameter", "displayName": "Unit", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric unit" },
-    "uriEndpointOverride": { "index": 6, "kind": "parameter", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpoin [...]
-    "value": { "index": 7, "kind": "parameter", "displayName": "Value", 
"group": "producer", "label": "", "required": false, "type": "number", 
"javaType": "java.lang.Double", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric value" },
-    "lazyStartProducer": { "index": 8, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
-    "amazonCwClient": { "index": 9, "kind": "parameter", "displayName": 
"Amazon Cw Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "To use the 
AmazonCloudWatch as the [...]
-    "proxyHost": { "index": 10, "kind": "parameter", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
CW client" },
-    "proxyPort": { "index": 11, "kind": "parameter", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
CW client" },
-    "proxyProtocol": { "index": 12, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when ins [...]
-    "accessKey": { "index": 13, "kind": "parameter", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "profileCredentialsName": { "index": 14, "kind": "parameter", 
"displayName": "Profile Credentials Name", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
-    "secretKey": { "index": 15, "kind": "parameter", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 16, "kind": "parameter", "displayName": 
"Session Token", "group": "security", "label": "security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 17, "kind": "parameter", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
-    "useDefaultCredentialsProvider": { "index": 18, "kind": "parameter", 
"displayName": "Use Default Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load cred [...]
-    "useProfileCredentialsProvider": { "index": 19, "kind": "parameter", 
"displayName": "Use Profile Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the Cloudwatch client should 
expect to l [...]
-    "useSessionCredentials": { "index": 20, "kind": "parameter", 
"displayName": "Use Session Credentials", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the CloudWatch client should 
expect to use Session Creden [...]
+    "operation": { "index": 2, "kind": "parameter", "displayName": 
"Operation", "group": "producer", "label": "", "required": false, "type": 
"enum", "javaType": "org.apache.camel.component.aws2.cw.Cw2Operations", "enum": 
[ "putMetricData", "listMetrics", "describeAlarms", "describeAlarmsForMetric" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"putMetricData", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField":  
[...]
+    "overrideEndpoint": { "index": 3, "kind": "parameter", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination wit [...]
+    "region": { "index": 4, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", 
"eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", 
"ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", 
"eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", 
"eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-nort [...]
+    "timestamp": { "index": 5, "kind": "parameter", "displayName": 
"Timestamp", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "java.time.Instant", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric timestamp" },
+    "unit": { "index": 6, "kind": "parameter", "displayName": "Unit", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "The metric unit" },
+    "uriEndpointOverride": { "index": 7, "kind": "parameter", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpoin [...]
+    "value": { "index": 8, "kind": "parameter", "displayName": "Value", 
"group": "producer", "label": "", "required": false, "type": "number", 
"javaType": "java.lang.Double", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "The metric value" },
+    "lazyStartProducer": { "index": 9, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
+    "amazonCwClient": { "index": 10, "kind": "parameter", "displayName": 
"Amazon Cw Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "To use the 
AmazonCloudWatch as th [...]
+    "proxyHost": { "index": 11, "kind": "parameter", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
CW client" },
+    "proxyPort": { "index": 12, "kind": "parameter", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
CW client" },
+    "proxyProtocol": { "index": 13, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when ins [...]
+    "accessKey": { "index": 14, "kind": "parameter", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
+    "profileCredentialsName": { "index": 15, "kind": "parameter", 
"displayName": "Profile Credentials Name", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
+    "secretKey": { "index": 16, "kind": "parameter", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 17, "kind": "parameter", "displayName": 
"Session Token", "group": "security", "label": "security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 18, "kind": "parameter", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
+    "useDefaultCredentialsProvider": { "index": 19, "kind": "parameter", 
"displayName": "Use Default Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load cred [...]
+    "useProfileCredentialsProvider": { "index": 20, "kind": "parameter", 
"displayName": "Use Profile Credentials Provider", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the Cloudwatch client should 
expect to l [...]
+    "useSessionCredentials": { "index": 21, "kind": "parameter", 
"displayName": "Use Session Credentials", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": 
"configuration", "description": "Set whether the CloudWatch client should 
expect to use Session Creden [...]
   }
 }
diff --git 
a/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Configuration.java
 
b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Configuration.java
index 3ded82d5a973..ebb10fb86493 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Configuration.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Configuration.java
@@ -33,6 +33,8 @@ public class Cw2Configuration implements Cloneable, 
AwsCommonConfiguration {
     @UriPath
     @Metadata(required = true)
     private String namespace;
+    @UriParam(defaultValue = "putMetricData")
+    private Cw2Operations operation = Cw2Operations.putMetricData;
     @UriParam
     @Metadata(label = "advanced", autowired = true)
     private CloudWatchClient amazonCwClient;
@@ -150,6 +152,17 @@ public class Cw2Configuration implements Cloneable, 
AwsCommonConfiguration {
         this.namespace = namespace;
     }
 
+    public Cw2Operations getOperation() {
+        return operation;
+    }
+
+    /**
+     * The operation to perform. Defaults to putMetricData.
+     */
+    public void setOperation(Cw2Operations operation) {
+        this.operation = operation;
+    }
+
     /**
      * The metric timestamp
      */
diff --git 
a/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Constants.java
 
b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Constants.java
index 95ee0e482d72..3703c50a945b 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Constants.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Constants.java
@@ -22,6 +22,11 @@ import org.apache.camel.spi.Metadata;
  * Constants used in Camel AWS CloudWatch module SDK v2
  */
 public interface Cw2Constants {
+    // Operation
+    @Metadata(description = "The operation to perform.", javaType = "String")
+    String OPERATION = "CamelAwsCwOperation";
+
+    // Metric data constants
     @Metadata(description = "The Amazon CW metric namespace.", javaType = 
"String")
     String METRIC_NAMESPACE = "CamelAwsCwMetricNamespace";
     @Metadata(description = "The Amazon CW metric name.", javaType = "String")
@@ -38,4 +43,18 @@ public interface Cw2Constants {
     String METRIC_DIMENSION_NAME = "CamelAwsCwMetricDimensionName";
     @Metadata(description = "The Amazon CW metric dimension value.", javaType 
= "String")
     String METRIC_DIMENSION_VALUE = "CamelAwsCwMetricDimensionValue";
+
+    // Alarm constants
+    @Metadata(description = "The name of the alarm.", javaType = "String")
+    String ALARM_NAME = "CamelAwsCwAlarmName";
+    @Metadata(description = "The state value for the alarm (OK, ALARM, 
INSUFFICIENT_DATA).", javaType = "String")
+    String ALARM_STATE = "CamelAwsCwAlarmState";
+
+    // Pagination constants
+    @Metadata(description = "The token for the next set of results.", javaType 
= "String")
+    String NEXT_TOKEN = "CamelAwsCwNextToken";
+    @Metadata(description = "The maximum number of results to return.", 
javaType = "Integer")
+    String MAX_RESULTS = "CamelAwsCwMaxResults";
+    @Metadata(description = "Whether the response has more results (is 
truncated).", javaType = "Boolean")
+    String IS_TRUNCATED = "CamelAwsCwIsTruncated";
 }
diff --git 
a/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CloudWatchClientMock.java
 
b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Operations.java
similarity index 50%
copy from 
components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CloudWatchClientMock.java
copy to 
components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Operations.java
index 4a5c067069cb..0d7c8fdd624d 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CloudWatchClientMock.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Operations.java
@@ -16,31 +16,13 @@
  */
 package org.apache.camel.component.aws2.cw;
 
-import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
-import 
software.amazon.awssdk.services.cloudwatch.CloudWatchServiceClientConfiguration;
-import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataRequest;
-import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataResponse;
-
-public class CloudWatchClientMock implements CloudWatchClient {
-
-    @Override
-    public String serviceName() {
-        return null;
-    }
-
-    @Override
-    public void close() {
-    }
-
-    @Override
-    public PutMetricDataResponse putMetricData(PutMetricDataRequest request) {
-        PutMetricDataResponse.Builder builder = 
PutMetricDataResponse.builder();
-        return builder.build();
-    }
-
-    @Override
-    public CloudWatchServiceClientConfiguration serviceClientConfiguration() {
-        return null;
-    }
+/**
+ * Operations supported by the AWS CloudWatch component.
+ */
+public enum Cw2Operations {
 
+    putMetricData,
+    listMetrics,
+    describeAlarms,
+    describeAlarmsForMetric
 }
diff --git 
a/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Producer.java
 
b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Producer.java
index 02781cdd2b07..4bf12a65bde7 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Producer.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2Producer.java
@@ -22,18 +22,29 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.function.Supplier;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
+import org.apache.camel.Message;
 import org.apache.camel.health.HealthCheck;
 import org.apache.camel.health.HealthCheckHelper;
 import org.apache.camel.health.WritableHealthCheckRepository;
 import org.apache.camel.support.DefaultProducer;
 import org.apache.camel.util.CastUtils;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
+import 
software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsForMetricRequest;
+import 
software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsForMetricResponse;
+import software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsRequest;
+import software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsResponse;
 import software.amazon.awssdk.services.cloudwatch.model.Dimension;
+import software.amazon.awssdk.services.cloudwatch.model.DimensionFilter;
+import software.amazon.awssdk.services.cloudwatch.model.ListMetricsRequest;
+import software.amazon.awssdk.services.cloudwatch.model.ListMetricsResponse;
 import software.amazon.awssdk.services.cloudwatch.model.MetricDatum;
 import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataRequest;
 import software.amazon.awssdk.services.cloudwatch.model.StandardUnit;
@@ -55,6 +66,36 @@ public class Cw2Producer extends DefaultProducer {
 
     @Override
     public void process(Exchange exchange) throws Exception {
+        Cw2Operations operation = determineOperation(exchange);
+        CloudWatchClient client = getEndpoint().getCloudWatchClient();
+
+        switch (operation) {
+            case putMetricData:
+                putMetricData(client, exchange);
+                break;
+            case listMetrics:
+                listMetrics(client, exchange);
+                break;
+            case describeAlarms:
+                describeAlarms(client, exchange);
+                break;
+            case describeAlarmsForMetric:
+                describeAlarmsForMetric(client, exchange);
+                break;
+            default:
+                throw new IllegalArgumentException("Unsupported operation: " + 
operation);
+        }
+    }
+
+    private Cw2Operations determineOperation(Exchange exchange) {
+        Cw2Operations operation = 
exchange.getIn().getHeader(Cw2Constants.OPERATION, Cw2Operations.class);
+        if (operation == null) {
+            operation = getConfiguration().getOperation();
+        }
+        return operation;
+    }
+
+    private void putMetricData(CloudWatchClient client, Exchange exchange) {
         List<MetricDatum> metricData = getMetricData(exchange);
 
         PutMetricDataRequest.Builder builder = PutMetricDataRequest.builder();
@@ -62,7 +103,111 @@ public class Cw2Producer extends DefaultProducer {
 
         PutMetricDataRequest request = builder.build();
         LOG.info("Sending request [{}] from exchange [{}]...", request, 
exchange);
-        getEndpoint().getCloudWatchClient().putMetricData(request);
+        client.putMetricData(request);
+    }
+
+    private void listMetrics(CloudWatchClient client, Exchange exchange) {
+        ListMetricsRequest.Builder builder = ListMetricsRequest.builder();
+
+        String namespace = getOptionalHeader(exchange, 
Cw2Constants.METRIC_NAMESPACE, String.class,
+                () -> getConfiguration().getNamespace(), "namespace");
+        if (namespace != null) {
+            builder.namespace(namespace);
+        }
+
+        String metricName = getOptionalHeader(exchange, 
Cw2Constants.METRIC_NAME, String.class,
+                () -> getConfiguration().getName(), "metric name");
+        if (metricName != null) {
+            builder.metricName(metricName);
+        }
+
+        String nextToken = exchange.getIn().getHeader(Cw2Constants.NEXT_TOKEN, 
String.class);
+        if (nextToken != null) {
+            builder.nextToken(nextToken);
+        }
+
+        // Handle dimensions filter
+        @SuppressWarnings("unchecked")
+        Map<String, String> dimensions = 
exchange.getIn().getHeader(Cw2Constants.METRIC_DIMENSIONS, Map.class);
+        if (dimensions != null) {
+            List<DimensionFilter> dimensionFilters = new ArrayList<>();
+            for (Map.Entry<String, String> entry : dimensions.entrySet()) {
+                dimensionFilters.add(DimensionFilter.builder()
+                        .name(entry.getKey())
+                        .value(entry.getValue())
+                        .build());
+            }
+            builder.dimensions(dimensionFilters);
+        }
+
+        ListMetricsResponse response = client.listMetrics(builder.build());
+
+        Message message = getMessageForResponse(exchange);
+        message.setBody(response);
+        message.setHeader(Cw2Constants.NEXT_TOKEN, response.nextToken());
+        message.setHeader(Cw2Constants.IS_TRUNCATED, response.nextToken() != 
null);
+    }
+
+    private void describeAlarms(CloudWatchClient client, Exchange exchange) {
+        DescribeAlarmsRequest.Builder builder = 
DescribeAlarmsRequest.builder();
+
+        String alarmName = exchange.getIn().getHeader(Cw2Constants.ALARM_NAME, 
String.class);
+        if (alarmName != null) {
+            builder.alarmNames(alarmName);
+        }
+
+        String stateValue = 
exchange.getIn().getHeader(Cw2Constants.ALARM_STATE, String.class);
+        if (stateValue != null) {
+            builder.stateValue(stateValue);
+        }
+
+        String nextToken = exchange.getIn().getHeader(Cw2Constants.NEXT_TOKEN, 
String.class);
+        if (nextToken != null) {
+            builder.nextToken(nextToken);
+        }
+
+        Integer maxResults = 
exchange.getIn().getHeader(Cw2Constants.MAX_RESULTS, Integer.class);
+        if (maxResults != null) {
+            builder.maxRecords(maxResults);
+        }
+
+        DescribeAlarmsResponse response = 
client.describeAlarms(builder.build());
+
+        Message message = getMessageForResponse(exchange);
+        message.setBody(response);
+        message.setHeader(Cw2Constants.NEXT_TOKEN, response.nextToken());
+        message.setHeader(Cw2Constants.IS_TRUNCATED, response.nextToken() != 
null);
+    }
+
+    private void describeAlarmsForMetric(CloudWatchClient client, Exchange 
exchange) {
+        DescribeAlarmsForMetricRequest.Builder builder = 
DescribeAlarmsForMetricRequest.builder();
+
+        String namespace = getRequiredHeader(exchange, 
Cw2Constants.METRIC_NAMESPACE, String.class,
+                () -> getConfiguration().getNamespace(), "Namespace is 
required for describeAlarmsForMetric");
+        builder.namespace(namespace);
+
+        String metricName = getRequiredHeader(exchange, 
Cw2Constants.METRIC_NAME, String.class,
+                () -> getConfiguration().getName(), "Metric name is required 
for describeAlarmsForMetric");
+        builder.metricName(metricName);
+
+        // Handle dimensions
+        @SuppressWarnings("unchecked")
+        Map<String, String> dimensions = 
exchange.getIn().getHeader(Cw2Constants.METRIC_DIMENSIONS, Map.class);
+        if (dimensions != null) {
+            List<Dimension> dimensionList = new ArrayList<>();
+            for (Map.Entry<String, String> entry : dimensions.entrySet()) {
+                dimensionList.add(Dimension.builder()
+                        .name(entry.getKey())
+                        .value(entry.getValue())
+                        .build());
+            }
+            builder.dimensions(dimensionList);
+        }
+
+        DescribeAlarmsForMetricResponse response = 
client.describeAlarmsForMetric(builder.build());
+
+        Message message = getMessageForResponse(exchange);
+        message.setBody(response);
     }
 
     private List<MetricDatum> getMetricData(Exchange exchange) {
@@ -103,45 +248,72 @@ public class Cw2Producer extends DefaultProducer {
     }
 
     private Instant determineTimestamp(Exchange exchange) {
-        Instant timestamp = 
exchange.getIn().getHeader(Cw2Constants.METRIC_TIMESTAMP, Instant.class);
-        if (timestamp == null) {
-            timestamp = getConfiguration().getTimestamp();
-        }
-        return timestamp;
+        return getOptionalHeader(exchange, Cw2Constants.METRIC_TIMESTAMP, 
Instant.class,
+                () -> getConfiguration().getTimestamp(), "timestamp");
     }
 
     private String determineNameSpace(Exchange exchange) {
-        String namespace = 
exchange.getIn().getHeader(Cw2Constants.METRIC_NAMESPACE, String.class);
-        if (namespace == null) {
-            namespace = getConfiguration().getNamespace();
-        }
-        return namespace;
+        return getOptionalHeader(exchange, Cw2Constants.METRIC_NAMESPACE, 
String.class,
+                () -> getConfiguration().getNamespace(), "namespace");
     }
 
     private String determineName(Exchange exchange) {
-        String name = exchange.getIn().getHeader(Cw2Constants.METRIC_NAME, 
String.class);
-        if (name == null) {
-            name = getConfiguration().getName();
-        }
-        return name;
+        return getOptionalHeader(exchange, Cw2Constants.METRIC_NAME, 
String.class,
+                () -> getConfiguration().getName(), "name");
     }
 
     private Double determineValue(Exchange exchange) {
-        Double value = exchange.getIn().getHeader(Cw2Constants.METRIC_VALUE, 
Double.class);
-        if (value == null) {
-            value = getConfiguration().getValue();
-        }
+        Double value = getOptionalHeader(exchange, Cw2Constants.METRIC_VALUE, 
Double.class,
+                () -> getConfiguration().getValue(), "value");
         return value != null ? value : Double.valueOf(1);
     }
 
     private StandardUnit determineUnit(Exchange exchange) {
-        String unit = exchange.getIn().getHeader(Cw2Constants.METRIC_UNIT, 
String.class);
-        if (unit == null) {
-            unit = getConfiguration().getUnit();
-        }
+        String unit = getOptionalHeader(exchange, Cw2Constants.METRIC_UNIT, 
String.class,
+                () -> getConfiguration().getUnit(), "unit");
         return unit != null ? StandardUnit.fromValue(unit) : 
StandardUnit.COUNT;
     }
 
+    /**
+     * Gets an optional value from the exchange header, falling back to 
configuration if not present.
+     */
+    private <T> T getOptionalHeader(
+            Exchange exchange,
+            String headerName,
+            Class<T> headerType,
+            Supplier<T> configurationValue,
+            String parameterName) {
+        T value = exchange.getIn().getHeader(headerName, headerType);
+        if (ObjectHelper.isEmpty(value)) {
+            value = configurationValue.get();
+            LOG.trace("CloudWatch {} is missing, using default one [{}]", 
parameterName, value);
+        }
+        return value;
+    }
+
+    /**
+     * Gets a required value from the exchange header, falling back to 
configuration if not present.
+     */
+    private <T> T getRequiredHeader(
+            Exchange exchange,
+            String headerName,
+            Class<T> headerType,
+            Supplier<T> configurationValue,
+            String errorMessage) {
+        T value = exchange.getIn().getHeader(headerName, headerType);
+        if (ObjectHelper.isEmpty(value)) {
+            value = configurationValue.get();
+        }
+        if (ObjectHelper.isEmpty(value)) {
+            throw new IllegalArgumentException(errorMessage);
+        }
+        return value;
+    }
+
+    public static Message getMessageForResponse(final Exchange exchange) {
+        return exchange.getMessage();
+    }
+
     protected Cw2Configuration getConfiguration() {
         return getEndpoint().getConfiguration();
     }
diff --git 
a/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CloudWatchClientMock.java
 
b/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CloudWatchClientMock.java
index 4a5c067069cb..d33619db12ea 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CloudWatchClientMock.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CloudWatchClientMock.java
@@ -16,8 +16,19 @@
  */
 package org.apache.camel.component.aws2.cw;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
 import 
software.amazon.awssdk.services.cloudwatch.CloudWatchServiceClientConfiguration;
+import 
software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsForMetricRequest;
+import 
software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsForMetricResponse;
+import software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsRequest;
+import software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsResponse;
+import software.amazon.awssdk.services.cloudwatch.model.ListMetricsRequest;
+import software.amazon.awssdk.services.cloudwatch.model.ListMetricsResponse;
+import software.amazon.awssdk.services.cloudwatch.model.Metric;
+import software.amazon.awssdk.services.cloudwatch.model.MetricAlarm;
 import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataRequest;
 import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataResponse;
 
@@ -38,6 +49,53 @@ public class CloudWatchClientMock implements 
CloudWatchClient {
         return builder.build();
     }
 
+    @Override
+    public ListMetricsResponse listMetrics(ListMetricsRequest request) {
+        List<Metric> metrics = new ArrayList<>();
+        metrics.add(Metric.builder()
+                .namespace("TestNamespace")
+                .metricName("TestMetric")
+                .build());
+        metrics.add(Metric.builder()
+                .namespace("TestNamespace")
+                .metricName("TestMetric2")
+                .build());
+
+        return ListMetricsResponse.builder()
+                .metrics(metrics)
+                .nextToken(null) // No more results
+                .build();
+    }
+
+    @Override
+    public DescribeAlarmsResponse describeAlarms(DescribeAlarmsRequest 
request) {
+        List<MetricAlarm> alarms = new ArrayList<>();
+        alarms.add(MetricAlarm.builder()
+                .alarmName("TestAlarm")
+                .metricName("TestMetric")
+                .namespace("TestNamespace")
+                .build());
+
+        return DescribeAlarmsResponse.builder()
+                .metricAlarms(alarms)
+                .nextToken(null) // No more results
+                .build();
+    }
+
+    @Override
+    public DescribeAlarmsForMetricResponse 
describeAlarmsForMetric(DescribeAlarmsForMetricRequest request) {
+        List<MetricAlarm> alarms = new ArrayList<>();
+        alarms.add(MetricAlarm.builder()
+                .alarmName("TestAlarmForMetric")
+                .metricName(request.metricName())
+                .namespace(request.namespace())
+                .build());
+
+        return DescribeAlarmsForMetricResponse.builder()
+                .metricAlarms(alarms)
+                .build();
+    }
+
     @Override
     public CloudWatchServiceClientConfiguration serviceClientConfiguration() {
         return null;
diff --git 
a/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CwComponentTest.java
 
b/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CwComponentTest.java
index 2d7fa904f8fd..cb88f6585517 100644
--- 
a/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CwComponentTest.java
+++ 
b/components/camel-aws/camel-aws2-cw/src/test/java/org/apache/camel/component/aws2/cw/CwComponentTest.java
@@ -21,14 +21,22 @@ import java.time.Instant;
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
+import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
+import 
software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsForMetricResponse;
+import software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsResponse;
+import software.amazon.awssdk.services.cloudwatch.model.ListMetricsResponse;
 import software.amazon.awssdk.services.cloudwatch.model.StandardUnit;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
 public class CwComponentTest extends CamelTestSupport {
 
     @BindToRegistry("now")
@@ -58,6 +66,51 @@ public class CwComponentTest extends CamelTestSupport {
         MockEndpoint.assertIsSatisfied(context);
     }
 
+    @Test
+    public void listMetrics() throws Exception {
+        Exchange exchange = template.send("direct:listMetrics", 
ExchangePattern.InOut, new Processor() {
+            public void process(Exchange exchange) {
+                exchange.getIn().setHeader(Cw2Constants.METRIC_NAMESPACE, 
"TestNamespace");
+            }
+        });
+
+        ListMetricsResponse response = 
exchange.getMessage().getBody(ListMetricsResponse.class);
+        assertNotNull(response);
+        assertEquals(2, response.metrics().size());
+        assertEquals("TestMetric", response.metrics().get(0).metricName());
+        assertFalse(exchange.getMessage().getHeader(Cw2Constants.IS_TRUNCATED, 
Boolean.class));
+    }
+
+    @Test
+    public void describeAlarms() throws Exception {
+        Exchange exchange = template.send("direct:describeAlarms", 
ExchangePattern.InOut, new Processor() {
+            public void process(Exchange exchange) {
+                // No headers needed for basic describe alarms
+            }
+        });
+
+        DescribeAlarmsResponse response = 
exchange.getMessage().getBody(DescribeAlarmsResponse.class);
+        assertNotNull(response);
+        assertEquals(1, response.metricAlarms().size());
+        assertEquals("TestAlarm", response.metricAlarms().get(0).alarmName());
+        assertFalse(exchange.getMessage().getHeader(Cw2Constants.IS_TRUNCATED, 
Boolean.class));
+    }
+
+    @Test
+    public void describeAlarmsForMetric() throws Exception {
+        Exchange exchange = template.send("direct:describeAlarmsForMetric", 
ExchangePattern.InOut, new Processor() {
+            public void process(Exchange exchange) {
+                exchange.getIn().setHeader(Cw2Constants.METRIC_NAMESPACE, 
"TestNamespace");
+                exchange.getIn().setHeader(Cw2Constants.METRIC_NAME, 
"TestMetric");
+            }
+        });
+
+        DescribeAlarmsForMetricResponse response = 
exchange.getMessage().getBody(DescribeAlarmsForMetricResponse.class);
+        assertNotNull(response);
+        assertEquals(1, response.metricAlarms().size());
+        assertEquals("TestAlarmForMetric", 
response.metricAlarms().get(0).alarmName());
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
@@ -66,6 +119,15 @@ public class CwComponentTest extends CamelTestSupport {
                 from("direct:start").to(
                         
"aws2-cw://camel.apache.org/test?amazonCwClient=#amazonCwClient&name=testMetric&unit=BYTES&timestamp=#now")
                         .to("mock:result");
+
+                from("direct:listMetrics").to(
+                        
"aws2-cw://camel.apache.org/test?amazonCwClient=#amazonCwClient&operation=listMetrics");
+
+                from("direct:describeAlarms").to(
+                        
"aws2-cw://camel.apache.org/test?amazonCwClient=#amazonCwClient&operation=describeAlarms");
+
+                from("direct:describeAlarmsForMetric").to(
+                        
"aws2-cw://camel.apache.org/test?amazonCwClient=#amazonCwClient&operation=describeAlarmsForMetric");
             }
         };
     }
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2CwComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2CwComponentBuilderFactory.java
index 9e1759253b46..a86f724362a8 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2CwComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2CwComponentBuilderFactory.java
@@ -107,6 +107,24 @@ public interface Aws2CwComponentBuilderFactory {
         }
     
         
+        /**
+         * The operation to perform. Defaults to putMetricData.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.aws2.cw.Cw2Operations&lt;/code&gt; type.
+         * 
+         * Default: putMetricData
+         * Group: producer
+         * 
+         * @param operation the value to set
+         * @return the dsl builder
+         */
+        default Aws2CwComponentBuilder 
operation(org.apache.camel.component.aws2.cw.Cw2Operations operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
+    
+        
         /**
          * Set the need for overriding the endpoint. This option needs to be
          * used in combination with the uriEndpointOverride option.
@@ -486,6 +504,7 @@ public interface Aws2CwComponentBuilderFactory {
             case "configuration": ((Cw2Component) 
component).setConfiguration((org.apache.camel.component.aws2.cw.Cw2Configuration)
 value); return true;
             case "lazyStartProducer": ((Cw2Component) 
component).setLazyStartProducer((boolean) value); return true;
             case "name": getOrCreateConfiguration((Cw2Component) 
component).setName((java.lang.String) value); return true;
+            case "operation": getOrCreateConfiguration((Cw2Component) 
component).setOperation((org.apache.camel.component.aws2.cw.Cw2Operations) 
value); return true;
             case "overrideEndpoint": getOrCreateConfiguration((Cw2Component) 
component).setOverrideEndpoint((boolean) value); return true;
             case "region": getOrCreateConfiguration((Cw2Component) 
component).setRegion((java.lang.String) value); return true;
             case "timestamp": getOrCreateConfiguration((Cw2Component) 
component).setTimestamp((java.time.Instant) value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Cw2EndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Cw2EndpointBuilderFactory.java
index 088efdb1b4d1..03a304d0f2e8 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Cw2EndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Cw2EndpointBuilderFactory.java
@@ -58,6 +58,38 @@ public interface Cw2EndpointBuilderFactory {
             doSetProperty("name", name);
             return this;
         }
+        /**
+         * The operation to perform. Defaults to putMetricData.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.aws2.cw.Cw2Operations</code> type.
+         * 
+         * Default: putMetricData
+         * Group: producer
+         * 
+         * @param operation the value to set
+         * @return the dsl builder
+         */
+        default Cw2EndpointBuilder 
operation(org.apache.camel.component.aws2.cw.Cw2Operations operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
+        /**
+         * The operation to perform. Defaults to putMetricData.
+         * 
+         * The option will be converted to a
+         * <code>org.apache.camel.component.aws2.cw.Cw2Operations</code> type.
+         * 
+         * Default: putMetricData
+         * Group: producer
+         * 
+         * @param operation the value to set
+         * @return the dsl builder
+         */
+        default Cw2EndpointBuilder operation(String operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
         /**
          * Set the need for overriding the endpoint. This option needs to be
          * used in combination with the uriEndpointOverride option.
@@ -614,6 +646,18 @@ public interface Cw2EndpointBuilderFactory {
          */
         private static final Cw2HeaderNameBuilder INSTANCE = new 
Cw2HeaderNameBuilder();
 
+        /**
+         * The operation to perform.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsCwOperation}.
+         */
+        public String awsCwOperation() {
+            return "CamelAwsCwOperation";
+        }
         /**
          * The Amazon CW metric namespace.
          * 
@@ -710,6 +754,66 @@ public interface Cw2EndpointBuilderFactory {
         public String awsCwMetricDimensionValue() {
             return "CamelAwsCwMetricDimensionValue";
         }
+        /**
+         * The name of the alarm.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsCwAlarmName}.
+         */
+        public String awsCwAlarmName() {
+            return "CamelAwsCwAlarmName";
+        }
+        /**
+         * The state value for the alarm (OK, ALARM, INSUFFICIENT_DATA).
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsCwAlarmState}.
+         */
+        public String awsCwAlarmState() {
+            return "CamelAwsCwAlarmState";
+        }
+        /**
+         * The token for the next set of results.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsCwNextToken}.
+         */
+        public String awsCwNextToken() {
+            return "CamelAwsCwNextToken";
+        }
+        /**
+         * The maximum number of results to return.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsCwMaxResults}.
+         */
+        public String awsCwMaxResults() {
+            return "CamelAwsCwMaxResults";
+        }
+        /**
+         * Whether the response has more results (is truncated).
+         * 
+         * The option is a: {@code Boolean} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsCwIsTruncated}.
+         */
+        public String awsCwIsTruncated() {
+            return "CamelAwsCwIsTruncated";
+        }
     }
     static Cw2EndpointBuilder endpointBuilder(String componentName, String 
path) {
         class Cw2EndpointBuilderImpl extends AbstractEndpointBuilder 
implements Cw2EndpointBuilder, AdvancedCw2EndpointBuilder {


Reply via email to