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

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

commit 22df579550ef1f4504f1e980499dd53031608469
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Mar 25 14:12:38 2025 +0100

    CAMEL-21894 - Camel-AWS-SNS: Support Batch Publishing
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../apache/camel/catalog/components/aws2-sns.json  | 112 +++++++++++----------
 .../aws2/sns/Sns2ComponentConfigurer.java          |   6 ++
 .../component/aws2/sns/Sns2EndpointConfigurer.java |   6 ++
 .../component/aws2/sns/Sns2EndpointUriFactory.java |   3 +-
 .../apache/camel/component/aws2/sns/aws2-sns.json  | 112 +++++++++++----------
 .../component/aws2/sns/Sns2Configuration.java      |  13 +++
 .../camel/component/aws2/sns/Sns2Producer.java     |  47 +++++----
 .../sns/integration/SnsTopicProducerBatchIT.java   |  84 ++++++++++++++++
 .../dsl/Aws2SnsComponentBuilderFactory.java        |  18 ++++
 .../endpoint/dsl/Sns2EndpointBuilderFactory.java   |  30 ++++++
 10 files changed, 300 insertions(+), 131 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sns.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sns.json
index cb136dc6e8e..c1494f58673 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sns.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sns.json
@@ -25,35 +25,36 @@
   },
   "componentProperties": {
     "autoCreateTopic": { "index": 0, "kind": "property", "displayName": "Auto 
Create Topic", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Setting the auto-creation of the topic" },
-    "configuration": { "index": 1, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component configuration" },
-    "kmsMasterKeyId": { "index": 2, "kind": "property", "displayName": "Kms 
Master Key Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ID of an AWS-managed customer master key 
(CMK) for Amazon SNS or a custom CMK." },
-    "lazyStartProducer": { "index": 3, "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 [...]
-    "messageDeduplicationIdStrategy": { "index": 4, "kind": "property", 
"displayName": "Message Deduplication Id Strategy", "group": "producer", 
"label": "producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"useExchangeId", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"con [...]
-    "messageGroupIdStrategy": { "index": 5, "kind": "property", "displayName": 
"Message Group Id Strategy", "group": "producer", "label": "producer", 
"required": false, "type": "string", "javaType": "java.lang.String", "enum": [ 
"useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Only for FIFO Top [...]
-    "messageStructure": { "index": 6, "kind": "property", "displayName": 
"Message Structure", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The message structure to use such as json" },
-    "overrideEndpoint": { "index": 7, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination wi [...]
-    "policy": { "index": 8, "kind": "property", "displayName": "Policy", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "The policy for this 
topic. Is loaded by default from classpath, but you [...]
-    "queueArn": { "index": 9, "kind": "property", "displayName": "Queue Arn", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ARN endpoint to subscribe to" },
-    "region": { "index": 10, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"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-no [...]
-    "serverSideEncryptionEnabled": { "index": 11, "kind": "property", 
"displayName": "Server Side Encryption Enabled", "group": "producer", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Define if Server Side 
Encryption is enabled or not on the topic" },
-    "subject": { "index": 12, "kind": "property", "displayName": "Subject", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The subject which is used if the message 
header 'CamelAwsSnsSubject' is not present." },
-    "subscribeSNStoSQS": { "index": 13, "kind": "property", "displayName": 
"Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if the subscription between SNS Topic 
and SQS must be done or not" },
-    "uriEndpointOverride": { "index": 14, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpo [...]
-    "amazonSNSClient": { "index": 15, "kind": "property", "displayName": 
"Amazon SNSClient", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "To use the AmazonSNS as 
the client" },
-    "autowiredEnabled": { "index": 16, "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": 17, "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": 18, "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": 19, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
SNS client" },
-    "proxyPort": { "index": 20, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
SNS client" },
-    "proxyProtocol": { "index": 21, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when  [...]
-    "accessKey": { "index": 22, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "profileCredentialsName": { "index": 23, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
-    "secretKey": { "index": 24, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 25, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 26, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
-    "useDefaultCredentialsProvider": { "index": 27, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load cr [...]
-    "useProfileCredentialsProvider": { "index": 28, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load cr [...]
-    "useSessionCredentials": { "index": 29, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Set whether the SNS 
client should expect to use Session Credentials. [...]
+    "batchEnabled": { "index": 1, "kind": "property", "displayName": "Batch 
Enabled", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if we are publishing a single message 
or a batch" },
+    "configuration": { "index": 2, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component configuration" },
+    "kmsMasterKeyId": { "index": 3, "kind": "property", "displayName": "Kms 
Master Key Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ID of an AWS-managed customer master key 
(CMK) for Amazon SNS or a custom CMK." },
+    "lazyStartProducer": { "index": 4, "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 [...]
+    "messageDeduplicationIdStrategy": { "index": 5, "kind": "property", 
"displayName": "Message Deduplication Id Strategy", "group": "producer", 
"label": "producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"useExchangeId", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"con [...]
+    "messageGroupIdStrategy": { "index": 6, "kind": "property", "displayName": 
"Message Group Id Strategy", "group": "producer", "label": "producer", 
"required": false, "type": "string", "javaType": "java.lang.String", "enum": [ 
"useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Only for FIFO Top [...]
+    "messageStructure": { "index": 7, "kind": "property", "displayName": 
"Message Structure", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The message structure to use such as json" },
+    "overrideEndpoint": { "index": 8, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination wi [...]
+    "policy": { "index": 9, "kind": "property", "displayName": "Policy", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "The policy for this 
topic. Is loaded by default from classpath, but you [...]
+    "queueArn": { "index": 10, "kind": "property", "displayName": "Queue Arn", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ARN endpoint to subscribe to" },
+    "region": { "index": 11, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"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-no [...]
+    "serverSideEncryptionEnabled": { "index": 12, "kind": "property", 
"displayName": "Server Side Encryption Enabled", "group": "producer", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Define if Server Side 
Encryption is enabled or not on the topic" },
+    "subject": { "index": 13, "kind": "property", "displayName": "Subject", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The subject which is used if the message 
header 'CamelAwsSnsSubject' is not present." },
+    "subscribeSNStoSQS": { "index": 14, "kind": "property", "displayName": 
"Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if the subscription between SNS Topic 
and SQS must be done or not" },
+    "uriEndpointOverride": { "index": 15, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpo [...]
+    "amazonSNSClient": { "index": 16, "kind": "property", "displayName": 
"Amazon SNSClient", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "To use the AmazonSNS as 
the client" },
+    "autowiredEnabled": { "index": 17, "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": 18, "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": 19, "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": 20, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
SNS client" },
+    "proxyPort": { "index": 21, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
SNS client" },
+    "proxyProtocol": { "index": 22, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when  [...]
+    "accessKey": { "index": 23, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
+    "profileCredentialsName": { "index": 24, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
+    "secretKey": { "index": 25, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 26, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 27, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
+    "useDefaultCredentialsProvider": { "index": 28, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load cr [...]
+    "useProfileCredentialsProvider": { "index": 29, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load cr [...]
+    "useSessionCredentials": { "index": 30, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Set whether the SNS 
client should expect to use Session Credentials. [...]
   },
   "headers": {
     "CamelAwsSnsMessageId": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon SNS message ID.", "constantName": 
"org.apache.camel.component.aws2.sns.Sns2Constants#MESSAGE_ID" },
@@ -63,31 +64,32 @@
   "properties": {
     "topicNameOrArn": { "index": 0, "kind": "path", "displayName": "Topic Name 
Or Arn", "group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Topic name or ARN" },
     "autoCreateTopic": { "index": 1, "kind": "parameter", "displayName": "Auto 
Create Topic", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Setting the auto-creation of the topic" },
-    "headerFilterStrategy": { "index": 2, "kind": "parameter", "displayName": 
"Header Filter Strategy", "group": "producer", "label": "", "required": false, 
"type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom HeaderFilterStrategy to map headers to\/from Camel." },
-    "kmsMasterKeyId": { "index": 3, "kind": "parameter", "displayName": "Kms 
Master Key Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ID of an AWS-managed customer master key 
(CMK) for Amazon SNS or a custom CMK." },
-    "messageDeduplicationIdStrategy": { "index": 4, "kind": "parameter", 
"displayName": "Message Deduplication Id Strategy", "group": "producer", 
"label": "producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"useExchangeId", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"co [...]
-    "messageGroupIdStrategy": { "index": 5, "kind": "parameter", 
"displayName": "Message Group Id Strategy", "group": "producer", "label": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useConstant", "useExchangeId", 
"usePropertyValue" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Only for FIFO To [...]
-    "messageStructure": { "index": 6, "kind": "parameter", "displayName": 
"Message Structure", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The message structure to use such as json" },
-    "overrideEndpoint": { "index": 7, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination w [...]
-    "policy": { "index": 8, "kind": "parameter", "displayName": "Policy", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "The policy for this 
topic. Is loaded by default from classpath, but yo [...]
-    "queueArn": { "index": 9, "kind": "parameter", "displayName": "Queue Arn", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ARN endpoint to subscribe to" },
-    "region": { "index": 10, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"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-n [...]
-    "serverSideEncryptionEnabled": { "index": 11, "kind": "parameter", 
"displayName": "Server Side Encryption Enabled", "group": "producer", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Define if Server Side 
Encryption is enabled or not on the topic" },
-    "subject": { "index": 12, "kind": "parameter", "displayName": "Subject", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The subject which is used if the message 
header 'CamelAwsSnsSubject' is not present." },
-    "subscribeSNStoSQS": { "index": 13, "kind": "parameter", "displayName": 
"Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if the subscription between SNS Topic 
and SQS must be done or not" },
-    "uriEndpointOverride": { "index": 14, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndp [...]
-    "lazyStartProducer": { "index": 15, "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 produ [...]
-    "amazonSNSClient": { "index": 16, "kind": "parameter", "displayName": 
"Amazon SNSClient", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "To use the AmazonSNS as 
the client" },
-    "proxyHost": { "index": 17, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
SNS client" },
-    "proxyPort": { "index": 18, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
SNS client" },
-    "proxyProtocol": { "index": 19, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when [...]
-    "accessKey": { "index": 20, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "profileCredentialsName": { "index": 21, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
-    "secretKey": { "index": 22, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 23, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 24, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
-    "useDefaultCredentialsProvider": { "index": 25, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load c [...]
-    "useProfileCredentialsProvider": { "index": 26, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load c [...]
-    "useSessionCredentials": { "index": 27, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
use Session Credentials [...]
+    "batchEnabled": { "index": 2, "kind": "parameter", "displayName": "Batch 
Enabled", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if we are publishing a single message 
or a batch" },
+    "headerFilterStrategy": { "index": 3, "kind": "parameter", "displayName": 
"Header Filter Strategy", "group": "producer", "label": "", "required": false, 
"type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom HeaderFilterStrategy to map headers to\/from Camel." },
+    "kmsMasterKeyId": { "index": 4, "kind": "parameter", "displayName": "Kms 
Master Key Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ID of an AWS-managed customer master key 
(CMK) for Amazon SNS or a custom CMK." },
+    "messageDeduplicationIdStrategy": { "index": 5, "kind": "parameter", 
"displayName": "Message Deduplication Id Strategy", "group": "producer", 
"label": "producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"useExchangeId", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"co [...]
+    "messageGroupIdStrategy": { "index": 6, "kind": "parameter", 
"displayName": "Message Group Id Strategy", "group": "producer", "label": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useConstant", "useExchangeId", 
"usePropertyValue" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Only for FIFO To [...]
+    "messageStructure": { "index": 7, "kind": "parameter", "displayName": 
"Message Structure", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The message structure to use such as json" },
+    "overrideEndpoint": { "index": 8, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination w [...]
+    "policy": { "index": 9, "kind": "parameter", "displayName": "Policy", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "The policy for this 
topic. Is loaded by default from classpath, but yo [...]
+    "queueArn": { "index": 10, "kind": "parameter", "displayName": "Queue 
Arn", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ARN endpoint to subscribe to" },
+    "region": { "index": 11, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"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-n [...]
+    "serverSideEncryptionEnabled": { "index": 12, "kind": "parameter", 
"displayName": "Server Side Encryption Enabled", "group": "producer", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Define if Server Side 
Encryption is enabled or not on the topic" },
+    "subject": { "index": 13, "kind": "parameter", "displayName": "Subject", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The subject which is used if the message 
header 'CamelAwsSnsSubject' is not present." },
+    "subscribeSNStoSQS": { "index": 14, "kind": "parameter", "displayName": 
"Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if the subscription between SNS Topic 
and SQS must be done or not" },
+    "uriEndpointOverride": { "index": 15, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndp [...]
+    "lazyStartProducer": { "index": 16, "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 produ [...]
+    "amazonSNSClient": { "index": 17, "kind": "parameter", "displayName": 
"Amazon SNSClient", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "To use the AmazonSNS as 
the client" },
+    "proxyHost": { "index": 18, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
SNS client" },
+    "proxyPort": { "index": 19, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
SNS client" },
+    "proxyProtocol": { "index": 20, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when [...]
+    "accessKey": { "index": 21, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
+    "profileCredentialsName": { "index": 22, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
+    "secretKey": { "index": 23, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 24, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 25, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
+    "useDefaultCredentialsProvider": { "index": 26, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load c [...]
+    "useProfileCredentialsProvider": { "index": 27, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load c [...]
+    "useSessionCredentials": { "index": 28, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
use Session Credentials [...]
   }
 }
diff --git 
a/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2ComponentConfigurer.java
 
b/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2ComponentConfigurer.java
index c2a16cd77f6..f93569ec31b 100644
--- 
a/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2ComponentConfigurer.java
+++ 
b/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2ComponentConfigurer.java
@@ -38,6 +38,8 @@ public class Sns2ComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "autoCreateTopic": 
getOrCreateConfiguration(target).setAutoCreateTopic(property(camelContext, 
boolean.class, value)); return true;
         case "autowiredenabled":
         case "autowiredEnabled": 
target.setAutowiredEnabled(property(camelContext, boolean.class, value)); 
return true;
+        case "batchenabled":
+        case "batchEnabled": 
getOrCreateConfiguration(target).setBatchEnabled(property(camelContext, 
boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, 
org.apache.camel.component.aws2.sns.Sns2Configuration.class, value)); return 
true;
         case "healthcheckconsumerenabled":
         case "healthCheckConsumerEnabled": 
target.setHealthCheckConsumerEnabled(property(camelContext, boolean.class, 
value)); return true;
@@ -106,6 +108,8 @@ public class Sns2ComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "autoCreateTopic": return boolean.class;
         case "autowiredenabled":
         case "autowiredEnabled": return boolean.class;
+        case "batchenabled":
+        case "batchEnabled": return boolean.class;
         case "configuration": return 
org.apache.camel.component.aws2.sns.Sns2Configuration.class;
         case "healthcheckconsumerenabled":
         case "healthCheckConsumerEnabled": return boolean.class;
@@ -170,6 +174,8 @@ public class Sns2ComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "autoCreateTopic": return 
getOrCreateConfiguration(target).isAutoCreateTopic();
         case "autowiredenabled":
         case "autowiredEnabled": return target.isAutowiredEnabled();
+        case "batchenabled":
+        case "batchEnabled": return 
getOrCreateConfiguration(target).isBatchEnabled();
         case "configuration": return target.getConfiguration();
         case "healthcheckconsumerenabled":
         case "healthCheckConsumerEnabled": return 
target.isHealthCheckConsumerEnabled();
diff --git 
a/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2EndpointConfigurer.java
 
b/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2EndpointConfigurer.java
index 5ea838ee2c2..c4baf6077a1 100644
--- 
a/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2EndpointConfigurer.java
+++ 
b/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2EndpointConfigurer.java
@@ -29,6 +29,8 @@ public class Sns2EndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "amazonSNSClient": 
target.getConfiguration().setAmazonSNSClient(property(camelContext, 
software.amazon.awssdk.services.sns.SnsClient.class, value)); return true;
         case "autocreatetopic":
         case "autoCreateTopic": 
target.getConfiguration().setAutoCreateTopic(property(camelContext, 
boolean.class, value)); return true;
+        case "batchenabled":
+        case "batchEnabled": 
target.getConfiguration().setBatchEnabled(property(camelContext, boolean.class, 
value)); return true;
         case "headerfilterstrategy":
         case "headerFilterStrategy": 
target.setHeaderFilterStrategy(property(camelContext, 
org.apache.camel.spi.HeaderFilterStrategy.class, value)); return true;
         case "kmsmasterkeyid":
@@ -92,6 +94,8 @@ public class Sns2EndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "amazonSNSClient": return 
software.amazon.awssdk.services.sns.SnsClient.class;
         case "autocreatetopic":
         case "autoCreateTopic": return boolean.class;
+        case "batchenabled":
+        case "batchEnabled": return boolean.class;
         case "headerfilterstrategy":
         case "headerFilterStrategy": return 
org.apache.camel.spi.HeaderFilterStrategy.class;
         case "kmsmasterkeyid":
@@ -151,6 +155,8 @@ public class Sns2EndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "amazonSNSClient": return 
target.getConfiguration().getAmazonSNSClient();
         case "autocreatetopic":
         case "autoCreateTopic": return 
target.getConfiguration().isAutoCreateTopic();
+        case "batchenabled":
+        case "batchEnabled": return target.getConfiguration().isBatchEnabled();
         case "headerfilterstrategy":
         case "headerFilterStrategy": return target.getHeaderFilterStrategy();
         case "kmsmasterkeyid":
diff --git 
a/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2EndpointUriFactory.java
 
b/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2EndpointUriFactory.java
index 6467e9deac3..2ef297dbb8d 100644
--- 
a/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2EndpointUriFactory.java
+++ 
b/components/camel-aws/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2EndpointUriFactory.java
@@ -23,10 +23,11 @@ public class Sns2EndpointUriFactory extends 
org.apache.camel.support.component.E
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(28);
+        Set<String> props = new HashSet<>(29);
         props.add("accessKey");
         props.add("amazonSNSClient");
         props.add("autoCreateTopic");
+        props.add("batchEnabled");
         props.add("headerFilterStrategy");
         props.add("kmsMasterKeyId");
         props.add("lazyStartProducer");
diff --git 
a/components/camel-aws/camel-aws2-sns/src/generated/resources/META-INF/org/apache/camel/component/aws2/sns/aws2-sns.json
 
b/components/camel-aws/camel-aws2-sns/src/generated/resources/META-INF/org/apache/camel/component/aws2/sns/aws2-sns.json
index cb136dc6e8e..c1494f58673 100644
--- 
a/components/camel-aws/camel-aws2-sns/src/generated/resources/META-INF/org/apache/camel/component/aws2/sns/aws2-sns.json
+++ 
b/components/camel-aws/camel-aws2-sns/src/generated/resources/META-INF/org/apache/camel/component/aws2/sns/aws2-sns.json
@@ -25,35 +25,36 @@
   },
   "componentProperties": {
     "autoCreateTopic": { "index": 0, "kind": "property", "displayName": "Auto 
Create Topic", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Setting the auto-creation of the topic" },
-    "configuration": { "index": 1, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component configuration" },
-    "kmsMasterKeyId": { "index": 2, "kind": "property", "displayName": "Kms 
Master Key Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ID of an AWS-managed customer master key 
(CMK) for Amazon SNS or a custom CMK." },
-    "lazyStartProducer": { "index": 3, "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 [...]
-    "messageDeduplicationIdStrategy": { "index": 4, "kind": "property", 
"displayName": "Message Deduplication Id Strategy", "group": "producer", 
"label": "producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"useExchangeId", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"con [...]
-    "messageGroupIdStrategy": { "index": 5, "kind": "property", "displayName": 
"Message Group Id Strategy", "group": "producer", "label": "producer", 
"required": false, "type": "string", "javaType": "java.lang.String", "enum": [ 
"useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Only for FIFO Top [...]
-    "messageStructure": { "index": 6, "kind": "property", "displayName": 
"Message Structure", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The message structure to use such as json" },
-    "overrideEndpoint": { "index": 7, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination wi [...]
-    "policy": { "index": 8, "kind": "property", "displayName": "Policy", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "The policy for this 
topic. Is loaded by default from classpath, but you [...]
-    "queueArn": { "index": 9, "kind": "property", "displayName": "Queue Arn", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ARN endpoint to subscribe to" },
-    "region": { "index": 10, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"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-no [...]
-    "serverSideEncryptionEnabled": { "index": 11, "kind": "property", 
"displayName": "Server Side Encryption Enabled", "group": "producer", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Define if Server Side 
Encryption is enabled or not on the topic" },
-    "subject": { "index": 12, "kind": "property", "displayName": "Subject", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The subject which is used if the message 
header 'CamelAwsSnsSubject' is not present." },
-    "subscribeSNStoSQS": { "index": 13, "kind": "property", "displayName": 
"Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if the subscription between SNS Topic 
and SQS must be done or not" },
-    "uriEndpointOverride": { "index": 14, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpo [...]
-    "amazonSNSClient": { "index": 15, "kind": "property", "displayName": 
"Amazon SNSClient", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "To use the AmazonSNS as 
the client" },
-    "autowiredEnabled": { "index": 16, "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": 17, "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": 18, "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": 19, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
SNS client" },
-    "proxyPort": { "index": 20, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
SNS client" },
-    "proxyProtocol": { "index": 21, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when  [...]
-    "accessKey": { "index": 22, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "profileCredentialsName": { "index": 23, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
-    "secretKey": { "index": 24, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 25, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 26, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
-    "useDefaultCredentialsProvider": { "index": 27, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load cr [...]
-    "useProfileCredentialsProvider": { "index": 28, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load cr [...]
-    "useSessionCredentials": { "index": 29, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Set whether the SNS 
client should expect to use Session Credentials. [...]
+    "batchEnabled": { "index": 1, "kind": "property", "displayName": "Batch 
Enabled", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if we are publishing a single message 
or a batch" },
+    "configuration": { "index": 2, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component configuration" },
+    "kmsMasterKeyId": { "index": 3, "kind": "property", "displayName": "Kms 
Master Key Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ID of an AWS-managed customer master key 
(CMK) for Amazon SNS or a custom CMK." },
+    "lazyStartProducer": { "index": 4, "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 [...]
+    "messageDeduplicationIdStrategy": { "index": 5, "kind": "property", 
"displayName": "Message Deduplication Id Strategy", "group": "producer", 
"label": "producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"useExchangeId", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"con [...]
+    "messageGroupIdStrategy": { "index": 6, "kind": "property", "displayName": 
"Message Group Id Strategy", "group": "producer", "label": "producer", 
"required": false, "type": "string", "javaType": "java.lang.String", "enum": [ 
"useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Only for FIFO Top [...]
+    "messageStructure": { "index": 7, "kind": "property", "displayName": 
"Message Structure", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The message structure to use such as json" },
+    "overrideEndpoint": { "index": 8, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination wi [...]
+    "policy": { "index": 9, "kind": "property", "displayName": "Policy", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "The policy for this 
topic. Is loaded by default from classpath, but you [...]
+    "queueArn": { "index": 10, "kind": "property", "displayName": "Queue Arn", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ARN endpoint to subscribe to" },
+    "region": { "index": 11, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"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-no [...]
+    "serverSideEncryptionEnabled": { "index": 12, "kind": "property", 
"displayName": "Server Side Encryption Enabled", "group": "producer", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Define if Server Side 
Encryption is enabled or not on the topic" },
+    "subject": { "index": 13, "kind": "property", "displayName": "Subject", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The subject which is used if the message 
header 'CamelAwsSnsSubject' is not present." },
+    "subscribeSNStoSQS": { "index": 14, "kind": "property", "displayName": 
"Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if the subscription between SNS Topic 
and SQS must be done or not" },
+    "uriEndpointOverride": { "index": 15, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndpo [...]
+    "amazonSNSClient": { "index": 16, "kind": "property", "displayName": 
"Amazon SNSClient", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "To use the AmazonSNS as 
the client" },
+    "autowiredEnabled": { "index": 17, "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": 18, "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": 19, "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": 20, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
SNS client" },
+    "proxyPort": { "index": 21, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
SNS client" },
+    "proxyProtocol": { "index": 22, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when  [...]
+    "accessKey": { "index": 23, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
+    "profileCredentialsName": { "index": 24, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
+    "secretKey": { "index": 25, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 26, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 27, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
+    "useDefaultCredentialsProvider": { "index": 28, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load cr [...]
+    "useProfileCredentialsProvider": { "index": 29, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load cr [...]
+    "useSessionCredentials": { "index": 30, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Set whether the SNS 
client should expect to use Session Credentials. [...]
   },
   "headers": {
     "CamelAwsSnsMessageId": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The Amazon SNS message ID.", "constantName": 
"org.apache.camel.component.aws2.sns.Sns2Constants#MESSAGE_ID" },
@@ -63,31 +64,32 @@
   "properties": {
     "topicNameOrArn": { "index": 0, "kind": "path", "displayName": "Topic Name 
Or Arn", "group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Topic name or ARN" },
     "autoCreateTopic": { "index": 1, "kind": "parameter", "displayName": "Auto 
Create Topic", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Setting the auto-creation of the topic" },
-    "headerFilterStrategy": { "index": 2, "kind": "parameter", "displayName": 
"Header Filter Strategy", "group": "producer", "label": "", "required": false, 
"type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom HeaderFilterStrategy to map headers to\/from Camel." },
-    "kmsMasterKeyId": { "index": 3, "kind": "parameter", "displayName": "Kms 
Master Key Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ID of an AWS-managed customer master key 
(CMK) for Amazon SNS or a custom CMK." },
-    "messageDeduplicationIdStrategy": { "index": 4, "kind": "parameter", 
"displayName": "Message Deduplication Id Strategy", "group": "producer", 
"label": "producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"useExchangeId", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"co [...]
-    "messageGroupIdStrategy": { "index": 5, "kind": "parameter", 
"displayName": "Message Group Id Strategy", "group": "producer", "label": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useConstant", "useExchangeId", 
"usePropertyValue" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Only for FIFO To [...]
-    "messageStructure": { "index": 6, "kind": "parameter", "displayName": 
"Message Structure", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The message structure to use such as json" },
-    "overrideEndpoint": { "index": 7, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination w [...]
-    "policy": { "index": 8, "kind": "parameter", "displayName": "Policy", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "The policy for this 
topic. Is loaded by default from classpath, but yo [...]
-    "queueArn": { "index": 9, "kind": "parameter", "displayName": "Queue Arn", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ARN endpoint to subscribe to" },
-    "region": { "index": 10, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"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-n [...]
-    "serverSideEncryptionEnabled": { "index": 11, "kind": "parameter", 
"displayName": "Server Side Encryption Enabled", "group": "producer", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Define if Server Side 
Encryption is enabled or not on the topic" },
-    "subject": { "index": 12, "kind": "parameter", "displayName": "Subject", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The subject which is used if the message 
header 'CamelAwsSnsSubject' is not present." },
-    "subscribeSNStoSQS": { "index": 13, "kind": "parameter", "displayName": 
"Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if the subscription between SNS Topic 
and SQS must be done or not" },
-    "uriEndpointOverride": { "index": 14, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndp [...]
-    "lazyStartProducer": { "index": 15, "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 produ [...]
-    "amazonSNSClient": { "index": 16, "kind": "parameter", "displayName": 
"Amazon SNSClient", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "To use the AmazonSNS as 
the client" },
-    "proxyHost": { "index": 17, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
SNS client" },
-    "proxyPort": { "index": 18, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
SNS client" },
-    "proxyProtocol": { "index": 19, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when [...]
-    "accessKey": { "index": 20, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "profileCredentialsName": { "index": 21, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
-    "secretKey": { "index": 22, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 23, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 24, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
-    "useDefaultCredentialsProvider": { "index": 25, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load c [...]
-    "useProfileCredentialsProvider": { "index": 26, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load c [...]
-    "useSessionCredentials": { "index": 27, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
use Session Credentials [...]
+    "batchEnabled": { "index": 2, "kind": "parameter", "displayName": "Batch 
Enabled", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if we are publishing a single message 
or a batch" },
+    "headerFilterStrategy": { "index": 3, "kind": "parameter", "displayName": 
"Header Filter Strategy", "group": "producer", "label": "", "required": false, 
"type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom HeaderFilterStrategy to map headers to\/from Camel." },
+    "kmsMasterKeyId": { "index": 4, "kind": "parameter", "displayName": "Kms 
Master Key Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ID of an AWS-managed customer master key 
(CMK) for Amazon SNS or a custom CMK." },
+    "messageDeduplicationIdStrategy": { "index": 5, "kind": "parameter", 
"displayName": "Message Deduplication Id Strategy", "group": "producer", 
"label": "producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"useExchangeId", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"co [...]
+    "messageGroupIdStrategy": { "index": 6, "kind": "parameter", 
"displayName": "Message Group Id Strategy", "group": "producer", "label": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "enum": [ "useConstant", "useExchangeId", 
"usePropertyValue" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Only for FIFO To [...]
+    "messageStructure": { "index": 7, "kind": "parameter", "displayName": 
"Message Structure", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The message structure to use such as json" },
+    "overrideEndpoint": { "index": 8, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the need for overriding the endpoint. This 
option needs to be used in combination w [...]
+    "policy": { "index": 9, "kind": "parameter", "displayName": "Policy", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "The policy for this 
topic. Is loaded by default from classpath, but yo [...]
+    "queueArn": { "index": 10, "kind": "parameter", "displayName": "Queue 
Arn", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The ARN endpoint to subscribe to" },
+    "region": { "index": 11, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"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-n [...]
+    "serverSideEncryptionEnabled": { "index": 12, "kind": "parameter", 
"displayName": "Server Side Encryption Enabled", "group": "producer", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "Define if Server Side 
Encryption is enabled or not on the topic" },
+    "subject": { "index": 13, "kind": "parameter", "displayName": "Subject", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "The subject which is used if the message 
header 'CamelAwsSnsSubject' is not present." },
+    "subscribeSNStoSQS": { "index": 14, "kind": "parameter", "displayName": 
"Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Define if the subscription between SNS Topic 
and SQS must be done or not" },
+    "uriEndpointOverride": { "index": 15, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set the overriding uri endpoint. This option 
needs to be used in combination with overrideEndp [...]
+    "lazyStartProducer": { "index": 16, "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 produ [...]
+    "amazonSNSClient": { "index": 17, "kind": "parameter", "displayName": 
"Amazon SNSClient", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "To use the AmazonSNS as 
the client" },
+    "proxyHost": { "index": 18, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
SNS client" },
+    "proxyPort": { "index": 19, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy port when instantiating the 
SNS client" },
+    "proxyProtocol": { "index": 20, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when [...]
+    "accessKey": { "index": 21, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
+    "profileCredentialsName": { "index": 22, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this parameter will set the profile name" },
+    "secretKey": { "index": 23, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 24, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Session Token used when the user 
needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 25, "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.sns.Sns2Configuration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of overriding the endpoint" },
+    "useDefaultCredentialsProvider": { "index": 26, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load c [...]
+    "useProfileCredentialsProvider": { "index": 27, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
load c [...]
+    "useSessionCredentials": { "index": 28, "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.sns.Sns2Configuration", "configurationField": 
"configuration", "description": "Set whether the SNS client should expect to 
use Session Credentials [...]
   }
 }
diff --git 
a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Configuration.java
 
b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Configuration.java
index 68cd262edf6..b58f5af58a8 100644
--- 
a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Configuration.java
+++ 
b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Configuration.java
@@ -86,6 +86,8 @@ public class Sns2Configuration implements Cloneable {
     @UriParam(label = "producer", javaType = "java.lang.String", defaultValue 
= "useExchangeId",
               enums = "useExchangeId,useContentBasedDeduplication")
     private MessageDeduplicationIdStrategy messageDeduplicationIdStrategy = 
new ExchangeIdMessageDeduplicationIdStrategy();
+    @UriParam
+    private boolean batchEnabled;
 
     public String getSubject() {
         return subject;
@@ -415,6 +417,17 @@ public class Sns2Configuration implements Cloneable {
         this.uriEndpointOverride = uriEndpointOverride;
     }
 
+    public boolean isBatchEnabled() {
+        return batchEnabled;
+    }
+
+    /**
+     * Define if we are publishing a single message or a batch
+     */
+    public void setBatchEnabled(boolean batchEnabled) {
+        this.batchEnabled = batchEnabled;
+    }
+
     // *************************************************
     //
     // *************************************************
diff --git 
a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Producer.java
 
b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Producer.java
index 08e39a82edc..579d6d961d9 100644
--- 
a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Producer.java
+++ 
b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Producer.java
@@ -38,9 +38,7 @@ import org.apache.camel.util.URISupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import software.amazon.awssdk.core.SdkBytes;
-import software.amazon.awssdk.services.sns.model.MessageAttributeValue;
-import software.amazon.awssdk.services.sns.model.PublishRequest;
-import software.amazon.awssdk.services.sns.model.PublishResponse;
+import software.amazon.awssdk.services.sns.model.*;
 
 /**
  * A Producer which sends messages to the Amazon Web Service Simple 
Notification Service
@@ -62,23 +60,32 @@ public class Sns2Producer extends DefaultProducer {
 
     @Override
     public void process(Exchange exchange) throws Exception {
-        PublishRequest.Builder request = PublishRequest.builder();
-
-        request.topicArn(getConfiguration().getTopicArn());
-        request.subject(determineSubject(exchange));
-        request.messageStructure(determineMessageStructure(exchange));
-        request.message(exchange.getIn().getBody(String.class));
-        
request.messageAttributes(this.translateAttributes(exchange.getIn().getHeaders(),
 exchange));
-        configureFifoAttributes(request, exchange);
-
-        LOG.trace("Sending request [{}] from exchange [{}]...", request, 
exchange);
-
-        PublishResponse result = 
getEndpoint().getSNSClient().publish(request.build());
-
-        LOG.trace("Received result [{}]", result);
-
-        Message message = getMessageForResponse(exchange);
-        message.setHeader(Sns2Constants.MESSAGE_ID, result.messageId());
+        if (!getEndpoint().getConfiguration().isBatchEnabled()) {
+            PublishRequest.Builder request = PublishRequest.builder();
+
+            request.topicArn(getConfiguration().getTopicArn());
+            request.subject(determineSubject(exchange));
+            request.messageStructure(determineMessageStructure(exchange));
+            request.message(exchange.getIn().getBody(String.class));
+            
request.messageAttributes(this.translateAttributes(exchange.getIn().getHeaders(),
 exchange));
+            configureFifoAttributes(request, exchange);
+
+            LOG.trace("Sending request [{}] from exchange [{}]...", request, 
exchange);
+
+            PublishResponse result = 
getEndpoint().getSNSClient().publish(request.build());
+
+            LOG.trace("Received result [{}]", result);
+
+            Message message = getMessageForResponse(exchange);
+            message.setHeader(Sns2Constants.MESSAGE_ID, result.messageId());
+        } else {
+            PublishBatchRequest.Builder publishBatchRequestBuilder = 
PublishBatchRequest.builder();
+            
publishBatchRequestBuilder.topicArn(getConfiguration().getTopicArn());
+            
publishBatchRequestBuilder.publishBatchRequestEntries(exchange.getMessage().getBody(List.class));
+            PublishBatchResponse response = 
getEndpoint().getSNSClient().publishBatch(publishBatchRequestBuilder.build());
+            Message message = getMessageForResponse(exchange);
+            message.setBody(response);
+        }
     }
 
     private String determineSubject(Exchange exchange) {
diff --git 
a/components/camel-aws/camel-aws2-sns/src/test/java/org/apache/camel/component/aws2/sns/integration/SnsTopicProducerBatchIT.java
 
b/components/camel-aws/camel-aws2-sns/src/test/java/org/apache/camel/component/aws2/sns/integration/SnsTopicProducerBatchIT.java
new file mode 100644
index 00000000000..5f7aa17ad08
--- /dev/null
+++ 
b/components/camel-aws/camel-aws2-sns/src/test/java/org/apache/camel/component/aws2/sns/integration/SnsTopicProducerBatchIT.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sns.integration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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.test.infra.common.SharedNameGenerator;
+import org.apache.camel.test.infra.common.TestEntityNameGenerator;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
+import org.junit.jupiter.api.extension.RegisterExtension;
+import software.amazon.awssdk.services.sns.model.PublishBatchRequestEntry;
+import software.amazon.awssdk.services.sns.model.PublishBatchResponse;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+@DisabledIfSystemProperty(named = "ci.env.name", matches = "github.com", 
disabledReason = "Flaky on GitHub Actions")
+public class SnsTopicProducerBatchIT extends Aws2SNSBase {
+
+    @RegisterExtension
+    public static SharedNameGenerator sharedNameGenerator = new 
TestEntityNameGenerator();
+
+    @Test
+    public void sendInOnly() {
+        Exchange exchange = template.send("direct:start", 
ExchangePattern.InOnly, new Processor() {
+            public void process(Exchange exchange) {
+                PublishBatchRequestEntry publishBatchRequestEntry1 = 
PublishBatchRequestEntry.builder()
+                        .id("message1")
+                        .message("This is message 1")
+                        .build();
+
+                PublishBatchRequestEntry publishBatchRequestEntry2 = 
PublishBatchRequestEntry.builder()
+                        .id("message2")
+                        .message("This is message 2")
+                        .build();
+
+                PublishBatchRequestEntry publishBatchRequestEntry3 = 
PublishBatchRequestEntry.builder()
+                        .id("message3")
+                        .message("This is message 3")
+                        .build();
+
+                List<PublishBatchRequestEntry> pubList = new ArrayList<>();
+                pubList.add(publishBatchRequestEntry1);
+                pubList.add(publishBatchRequestEntry2);
+                pubList.add(publishBatchRequestEntry3);
+                exchange.getIn().setBody(pubList);
+            }
+        });
+
+        
assertNotNull(exchange.getMessage().getBody(PublishBatchResponse.class));
+        
System.err.println(exchange.getMessage().getBody(PublishBatchResponse.class).toString());
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                from("direct:start")
+                        
.toF("aws2-sns://%s?subject=The+subject+message&autoCreateTopic=true&batchEnabled=true",
+                                sharedNameGenerator.getName());
+            }
+        };
+    }
+}
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2SnsComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2SnsComponentBuilderFactory.java
index 1ddcef7486f..98638d0ff21 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2SnsComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2SnsComponentBuilderFactory.java
@@ -67,6 +67,23 @@ public interface Aws2SnsComponentBuilderFactory {
             return this;
         }
     
+        
+        /**
+         * Define if we are publishing a single message or a batch.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param batchEnabled the value to set
+         * @return the dsl builder
+         */
+        default Aws2SnsComponentBuilder batchEnabled(boolean batchEnabled) {
+            doSetProperty("batchEnabled", batchEnabled);
+            return this;
+        }
+    
         /**
          * Component configuration.
          * 
@@ -596,6 +613,7 @@ public interface Aws2SnsComponentBuilderFactory {
                 Object value) {
             switch (name) {
             case "autoCreateTopic": getOrCreateConfiguration((Sns2Component) 
component).setAutoCreateTopic((boolean) value); return true;
+            case "batchEnabled": getOrCreateConfiguration((Sns2Component) 
component).setBatchEnabled((boolean) value); return true;
             case "configuration": ((Sns2Component) 
component).setConfiguration((org.apache.camel.component.aws2.sns.Sns2Configuration)
 value); return true;
             case "kmsMasterKeyId": getOrCreateConfiguration((Sns2Component) 
component).setKmsMasterKeyId((java.lang.String) value); return true;
             case "lazyStartProducer": ((Sns2Component) 
component).setLazyStartProducer((boolean) value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sns2EndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sns2EndpointBuilderFactory.java
index 2e363e218c8..764188f2e80 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sns2EndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Sns2EndpointBuilderFactory.java
@@ -74,6 +74,36 @@ public interface Sns2EndpointBuilderFactory {
             doSetProperty("autoCreateTopic", autoCreateTopic);
             return this;
         }
+        /**
+         * Define if we are publishing a single message or a batch.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param batchEnabled the value to set
+         * @return the dsl builder
+         */
+        default Sns2EndpointBuilder batchEnabled(boolean batchEnabled) {
+            doSetProperty("batchEnabled", batchEnabled);
+            return this;
+        }
+        /**
+         * Define if we are publishing a single message or a batch.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param batchEnabled the value to set
+         * @return the dsl builder
+         */
+        default Sns2EndpointBuilder batchEnabled(String batchEnabled) {
+            doSetProperty("batchEnabled", batchEnabled);
+            return this;
+        }
         /**
          * To use a custom HeaderFilterStrategy to map headers to/from Camel.
          * 

Reply via email to