You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/10/14 10:11:17 UTC

[camel-kamelets] 02/04: Kamelets Enricher Maven Plugin for improving Kamelets metadata

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

acosentino pushed a commit to branch enricher-maven-plugin
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit 8d93aa79ac7f7ef95d5b4b61577a56920248416d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Oct 14 12:03:30 2022 +0200

    Kamelets Enricher Maven Plugin for improving Kamelets metadata
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 kamelets/aws-s3-sink.kamelet.yaml                  | 235 ++++++++----------
 kamelets/aws-s3-source.kamelet.yaml                | 248 ++++++++-----------
 kamelets/aws-s3-streaming-upload-sink.kamelet.yaml | 234 +++++++++++-------
 kamelets/aws-sqs-sink.kamelet.yaml                 | 173 +++++++------
 kamelets/aws-sqs-source.kamelet.yaml               | 252 +++++++++++--------
 .../resources/kamelets/aws-s3-sink.kamelet.yaml    | 260 ++++++++++----------
 .../resources/kamelets/aws-s3-source.kamelet.yaml  | 269 ++++++++++-----------
 .../aws-s3-streaming-upload-sink.kamelet.yaml      | 263 +++++++++++++-------
 .../resources/kamelets/aws-sqs-sink.kamelet.yaml   | 182 ++++++++------
 .../resources/kamelets/aws-sqs-source.kamelet.yaml | 252 +++++++++++--------
 .../kamelets/maven/plugin/EnrichKameletsMojo.java  |  81 +++++--
 .../maven/plugin/KameletPrefixSchemeEnum.java      |  43 ++++
 12 files changed, 1405 insertions(+), 1087 deletions(-)

diff --git a/kamelets/aws-s3-sink.kamelet.yaml b/kamelets/aws-s3-sink.kamelet.yaml
index 670feea5..76b1e7db 100644
--- a/kamelets/aws-s3-sink.kamelet.yaml
+++ b/kamelets/aws-s3-sink.kamelet.yaml
@@ -1,4 +1,19 @@
----
+# ---------------------------------------------------------------------------
+# 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.
+# ------------------------------------------------------------------------------
 apiVersion: "camel.apache.org/v1alpha1"
 kind: "Kamelet"
 metadata:
@@ -11,79 +26,35 @@ metadata:
   labels:
     camel.apache.org/kamelet.type: "sink"
   name: "aws-s3-sink"
-  Headers:
-    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object\
-      \ in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
-    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying\
-      \ what content encodings have been applied to the object and what decoding mechanisms\
-      \ must be applied in order to obtain the media-type referenced by the Content-Type\
-      \ field."
-    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer)\
-      \ The hex encoded 128-bit MD5 digest of the associated object according to RFC\
-      \ 1864. This data is used as an integrity check to verify that the data received\
-      \ by the caller is the same data that was sent by Amazon S3."
-    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject,\
-      \ deleteObject, listBuckets, deleteBucket, listObjects"
-    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link\
-      \ in milliseconds"
-    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the\
-      \ service (not needed when BrowserCompatible is true)"
-    CamelAwsS3DestinationKey: "The Destination key which will be used for the current\
-      \ operation"
-    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used\
-      \ for the current operation"
-    CamelMessageTimestamp: "The timestamp of the message"
-    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which\
-      \ specifies presentational information such as the recommended filename for\
-      \ the object to be saved as."
-    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type\
-      \ of content stored in the associated object. The value of this header is a\
-      \ standard MIME type."
-    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the\
-      \ date and time at which Amazon S3 last recorded a modification to the associated\
-      \ object."
-    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket\
-      \ lifecycle), the response includes this header."
-    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows\
-      \ the user to specify caching behavior along the HTTP request/reply chain."
-    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when\
-      \ encrypting the object using AWS-managed keys. For example use AES256."
-    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the\
-      \ service (not needed when BrowserCompatible is true)"
-    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded\
-      \ object. (consumer) The version ID of the associated Amazon S3 object if available.\
-      \ Version IDs are only assigned to objects when an object is uploaded to an\
-      \ Amazon S3 bucket that has object versioning enabled."
-    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves\
-      \ a bucket that is either a source or destination in a replication rule."
+  headers:
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
+    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link in milliseconds"
+    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3DestinationKey: "The Destination key which will be used for the current operation"
+    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used for the current operation"
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
+    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
     CamelAwsS3Acl: "A well constructed Amazon S3 Access Control List object."
     CamelAwsS3RangeStart: "The position of the first byte to get"
-    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL\
-      \ for allowed values."
-    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser\
-      \ compatible"
-    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which\
-      \ will be used for the current operation or in which this object is contained."
-    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated\
-      \ object (content - not including headers) according to RFC 1864. This data\
-      \ is used as a message integrity check to verify that the data received by Amazon\
-      \ S3 is the same data that the caller sent."
-    CamelAwsS3Key: "The key under which this object is stored or will be stored or\
-      \ which will be used for the current operation"
-    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of\
-      \ the associated object in bytes."
+    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values."
+    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser compatible"
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
     CamelAwsS3StorageClass: "The storage class of this object."
     CamelAwsS3RangeEnd: "The position of the last byte to get"
 spec:
   definition:
-    description: "Upload data to an Amazon S3 Bucket.\n\nThe basic authentication\
-      \ method for the S3 service is to specify an access key and a secret key. These\
-      \ parameters are optional because the Kamelet provides a default credentials\
-      \ provider.\n\nIf you use the default credentials provider, the S3 client loads\
-      \ the credentials through this provider and doesn't use the basic authentication\
-      \ method.\n\nIn the header, you can optionally set the `file` / `ce-partition`\
-      \ property to specify the name of the file to upload.\n\nIf you do not set the\
-      \ property in the header, the Kamelet uses the exchange ID for the file name."
+    description: "Upload data to an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `file` / `ce-partition` property to specify the [...]
     properties:
       bucketNameOrArn:
         description: "The S3 Bucket name or Amazon Resource Name (ARN)."
@@ -95,54 +66,54 @@ spec:
         title: "Access Key"
         type: "string"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:password"
-        - "urn:camel:group:credentials"
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       secretKey:
         description: "The secret key obtained from AWS."
         format: "password"
         title: "Secret Key"
         type: "string"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:password"
-        - "urn:camel:group:credentials"
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       region:
         description: "The AWS region to access."
         enum:
-        - "ap-south-1"
-        - "eu-south-1"
-        - "us-gov-east-1"
-        - "me-central-1"
-        - "ca-central-1"
-        - "eu-central-1"
-        - "us-iso-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-northeast-2"
-        - "ap-northeast-1"
-        - "me-south-1"
-        - "sa-east-1"
-        - "ap-east-1"
-        - "cn-north-1"
-        - "us-gov-west-1"
-        - "ap-southeast-1"
-        - "ap-southeast-2"
-        - "us-iso-east-1"
-        - "ap-southeast-3"
-        - "us-east-1"
-        - "us-east-2"
-        - "cn-northwest-1"
-        - "us-isob-east-1"
-        - "aws-global"
-        - "aws-cn-global"
-        - "aws-us-gov-global"
-        - "aws-iso-global"
-        - "aws-iso-b-global"
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
         title: "AWS Region"
         type: "string"
       autoCreateBucket:
@@ -151,64 +122,68 @@ spec:
         title: "Autocreate Bucket"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       useDefaultCredentialsProvider:
         default: false
-        description: "If true, the S3 client loads credentials through a default credentials\
-          \ provider. If false, it uses the basic authentication method (access key\
-          \ and secret key)."
+        description: "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
         title: "Default Credentials Provider"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        description: "The overriding endpoint URI. To use this option, you must also\
-          \ select the `overrideEndpoint` option."
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
         title: "Overwrite Endpoint URI"
         type: "string"
       overrideEndpoint:
         default: false
-        description: "Select this option to override the endpoint URI. To use this\
-          \ option, you must also provide a URI for the `uriEndpointOverride` option."
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
         title: "Endpoint Overwrite"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       keyName:
         description: "The key name for saving an element in the bucket."
         title: "Key Name"
         type: "string"
     required:
-    - "bucketNameOrArn"
-    - "region"
+     - "bucketNameOrArn"
+     - "region"
     title: "AWS S3 Sink"
     type: "object"
   dependencies:
-  - "camel:core"
-  - "camel:aws2-s3"
-  - "camel:kamelet"
+   - "camel:core"
+   - "camel:aws2-s3"
+   - "camel:kamelet"
   template:
     from:
       uri: "kamelet:source"
       steps:
-      - choice:
+       -
+        choice:
           when:
-          - simple: "${header[file]}"
+           -
+            simple: "${header[file]}"
             steps:
-            - set-header:
+             -
+              set-header:
                 name: "CamelAwsS3Key"
                 simple: "${header[file]}"
-          - simple: "${header[ce-file]}"
+           -
+            simple: "${header[ce-file]}"
             steps:
-            - set-header:
+             -
+              set-header:
                 name: "CamelAwsS3Key"
                 simple: "${header[ce-file]}"
-          - simple: "'{{?keyName}}' == ''"
+           -
+            simple: "'{{?keyName}}' == ''"
             steps:
-            - set-header:
+             -
+              set-header:
                 name: "CamelAwsS3Key"
                 simple: "${exchangeId}"
-      - to:
+       -
+        to:
           uri: "aws2-s3:{{bucketNameOrArn}}"
           parameters:
             secretKey: "{{?secretKey}}"
diff --git a/kamelets/aws-s3-source.kamelet.yaml b/kamelets/aws-s3-source.kamelet.yaml
index 78f85fbb..d65ef008 100644
--- a/kamelets/aws-s3-source.kamelet.yaml
+++ b/kamelets/aws-s3-source.kamelet.yaml
@@ -1,4 +1,19 @@
----
+# ---------------------------------------------------------------------------
+# 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.
+# ------------------------------------------------------------------------------
 apiVersion: "camel.apache.org/v1alpha1"
 kind: "Kamelet"
 metadata:
@@ -11,79 +26,28 @@ metadata:
   labels:
     camel.apache.org/kamelet.type: "source"
   name: "aws-s3-source"
-  Headers:
-    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object\
-      \ in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
-    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying\
-      \ what content encodings have been applied to the object and what decoding mechanisms\
-      \ must be applied in order to obtain the media-type referenced by the Content-Type\
-      \ field."
-    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer)\
-      \ The hex encoded 128-bit MD5 digest of the associated object according to RFC\
-      \ 1864. This data is used as an integrity check to verify that the data received\
-      \ by the caller is the same data that was sent by Amazon S3."
-    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject,\
-      \ deleteObject, listBuckets, deleteBucket, listObjects"
-    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link\
-      \ in milliseconds"
-    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the\
-      \ service (not needed when BrowserCompatible is true)"
-    CamelAwsS3DestinationKey: "The Destination key which will be used for the current\
-      \ operation"
-    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used\
-      \ for the current operation"
+  headers:
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
     CamelMessageTimestamp: "The timestamp of the message"
-    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which\
-      \ specifies presentational information such as the recommended filename for\
-      \ the object to be saved as."
-    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type\
-      \ of content stored in the associated object. The value of this header is a\
-      \ standard MIME type."
-    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the\
-      \ date and time at which Amazon S3 last recorded a modification to the associated\
-      \ object."
-    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket\
-      \ lifecycle), the response includes this header."
-    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows\
-      \ the user to specify caching behavior along the HTTP request/reply chain."
-    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when\
-      \ encrypting the object using AWS-managed keys. For example use AES256."
-    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the\
-      \ service (not needed when BrowserCompatible is true)"
-    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded\
-      \ object. (consumer) The version ID of the associated Amazon S3 object if available.\
-      \ Version IDs are only assigned to objects when an object is uploaded to an\
-      \ Amazon S3 bucket that has object versioning enabled."
-    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves\
-      \ a bucket that is either a source or destination in a replication rule."
-    CamelAwsS3Acl: "A well constructed Amazon S3 Access Control List object."
-    CamelAwsS3RangeStart: "The position of the first byte to get"
-    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL\
-      \ for allowed values."
-    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser\
-      \ compatible"
-    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which\
-      \ will be used for the current operation or in which this object is contained."
-    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated\
-      \ object (content - not including headers) according to RFC 1864. This data\
-      \ is used as a message integrity check to verify that the data received by Amazon\
-      \ S3 is the same data that the caller sent."
-    CamelAwsS3Key: "The key under which this object is stored or will be stored or\
-      \ which will be used for the current operation"
-    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of\
-      \ the associated object in bytes."
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header."
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
     CamelAwsS3StorageClass: "The storage class of this object."
-    CamelAwsS3RangeEnd: "The position of the last byte to get"
 spec:
   definition:
-    description: "Receive data from an Amazon S3 Bucket.\n\nThe basic authentication\
-      \ method for the S3 service is to specify an access key and a secret key. These\
-      \ parameters are optional because the Kamelet provides a default credentials\
-      \ provider.\n\nIf you use the default credentials provider, the S3 client loads\
-      \ the credentials through this provider and doesn't use the basic authentication\
-      \ method.\n\nTwo headers will be duplicated with different names for clarity\
-      \ at sink level, CamelAwsS3Key will be duplicated into aws.s3.key and CamelAwsS3BucketName\
-      \ will be duplicated in aws.s3.bucket.name"
+    description: "Receive data from an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAw [...]
     properties:
       bucketNameOrArn:
         description: "The S3 Bucket name or Amazon Resource Name (ARN)."
@@ -95,61 +59,61 @@ spec:
         title: "Auto-delete Objects"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       accessKey:
         description: "The access key obtained from AWS."
         format: "password"
         title: "Access Key"
         type: "string"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:password"
-        - "urn:camel:group:credentials"
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       secretKey:
         description: "The secret key obtained from AWS."
         format: "password"
         title: "Secret Key"
         type: "string"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:password"
-        - "urn:camel:group:credentials"
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       region:
         description: "The AWS region to access."
         enum:
-        - "ap-south-1"
-        - "eu-south-1"
-        - "us-gov-east-1"
-        - "me-central-1"
-        - "ca-central-1"
-        - "eu-central-1"
-        - "us-iso-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-northeast-2"
-        - "ap-northeast-1"
-        - "me-south-1"
-        - "sa-east-1"
-        - "ap-east-1"
-        - "cn-north-1"
-        - "us-gov-west-1"
-        - "ap-southeast-1"
-        - "ap-southeast-2"
-        - "us-iso-east-1"
-        - "ap-southeast-3"
-        - "us-east-1"
-        - "us-east-2"
-        - "cn-northwest-1"
-        - "us-isob-east-1"
-        - "aws-global"
-        - "aws-cn-global"
-        - "aws-us-gov-global"
-        - "aws-iso-global"
-        - "aws-iso-b-global"
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
         title: "AWS Region"
         type: "string"
       autoCreateBucket:
@@ -158,16 +122,14 @@ spec:
         title: "Autocreate Bucket"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       includeBody:
         default: true
-        description: "If true, the exchange is consumed and put into the body and\
-          \ closed. If false, the S3Object stream is put raw into the body and the\
-          \ headers are set with the S3 object metadata."
+        description: "If true, the exchange is consumed and put into the body and closed. If false, the S3Object stream is put raw into the body and the headers are set with the S3 object metadata."
         title: "Include Body"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       prefix:
         description: "The AWS S3 bucket prefix to consider while searching."
         example: "folder/"
@@ -175,63 +137,61 @@ spec:
         type: "string"
       ignoreBody:
         default: false
-        description: "If true, the S3 Object body is ignored. Setting this to true\
-          \ overrides any behavior defined by the `includeBody` option. If false,\
-          \ the S3 object is put in the body."
+        description: "If true, the S3 Object body is ignored. Setting this to true overrides any behavior defined by the `includeBody` option. If false, the S3 object is put in the body."
         title: "Ignore Body"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       useDefaultCredentialsProvider:
         default: false
-        description: "If true, the S3 client loads credentials through a default credentials\
-          \ provider. If false, it uses the basic authentication method (access key\
-          \ and secret key)."
+        description: "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
         title: "Default Credentials Provider"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        description: "The overriding endpoint URI. To use this option, you must also\
-          \ select the `overrideEndpoint` option."
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
         title: "Overwrite Endpoint URI"
         type: "string"
       overrideEndpoint:
         default: false
-        description: "Select this option to override the endpoint URI. To use this\
-          \ option, you must also provide a URI for the `uriEndpointOverride` option."
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
         title: "Endpoint Overwrite"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       delay:
         default: 500
-        description: "The number of milliseconds before the next poll of the selected\
-          \ bucket."
+        description: "The number of milliseconds before the next poll of the selected bucket."
         title: "Delay"
         type: "integer"
     required:
-    - "bucketNameOrArn"
-    - "region"
+     - "bucketNameOrArn"
+     - "region"
     title: "AWS S3 Source"
     type: "object"
   dependencies:
-  - "camel:core"
-  - "camel:aws2-s3"
-  - "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
-  - "camel:kamelet"
+   - "camel:core"
+   - "camel:aws2-s3"
+   - "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
+   - "camel:kamelet"
   template:
     beans:
-    - name: "renameHeaders"
+     -
+      name: "renameHeaders"
       type: "#class:org.apache.camel.kamelets.utils.headers.DuplicateNamingHeaders"
       property:
-      - key: "prefix"
+       -
+        key: "prefix"
         value: "CamelAwsS3"
-      - key: "renamingPrefix"
+       -
+        key: "renamingPrefix"
         value: "aws.s3."
-      - key: "mode"
+       -
+        key: "mode"
         value: "filtering"
-      - key: "selectedHeaders"
+       -
+        key: "selectedHeaders"
         value: "CamelAwsS3Key,CamelAwsS3BucketName"
     from:
       uri: "aws2-s3:{{bucketNameOrArn}}"
@@ -249,6 +209,8 @@ spec:
         overrideEndpoint: "{{overrideEndpoint}}"
         delay: "{{delay}}"
       steps:
-      - process:
+       -
+        process:
           ref: "{{renameHeaders}}"
-      - to: "kamelet:sink"
+       -
+        to: "kamelet:sink"
diff --git a/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml b/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml
index e327a23b..76b1e7db 100644
--- a/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml
+++ b/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml
@@ -13,12 +13,10 @@
 # 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.
-# ---------------------------------------------------------------------------
-
-apiVersion: camel.apache.org/v1alpha1
-kind: Kamelet
+# ------------------------------------------------------------------------------
+apiVersion: "camel.apache.org/v1alpha1"
+kind: "Kamelet"
 metadata:
-  name: aws-s3-streaming-upload-sink
   annotations:
     camel.apache.org/kamelet.support.level: "Stable"
     camel.apache.org/catalog.version: "main-SNAPSHOT"
@@ -27,120 +25,172 @@ metadata:
     camel.apache.org/kamelet.group: "AWS S3"
   labels:
     camel.apache.org/kamelet.type: "sink"
+  name: "aws-s3-sink"
+  headers:
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
+    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link in milliseconds"
+    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3DestinationKey: "The Destination key which will be used for the current operation"
+    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used for the current operation"
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
+    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
+    CamelAwsS3Acl: "A well constructed Amazon S3 Access Control List object."
+    CamelAwsS3RangeStart: "The position of the first byte to get"
+    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values."
+    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser compatible"
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
+    CamelAwsS3StorageClass: "The storage class of this object."
+    CamelAwsS3RangeEnd: "The position of the last byte to get"
 spec:
   definition:
-    title: "AWS S3 Streaming upload Sink"
-    description: |-
-      Upload data to AWS S3 in streaming upload mode.
-
-      Access Key/Secret Key are the basic method for authenticating to the AWS S3 Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.
-      
-      When using a default Credentials Provider the S3 client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.
-    required:
-      - bucketNameOrArn
-      - region
-      - keyName
-    type: object
+    description: "Upload data to an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `file` / `ce-partition` property to specify the [...]
     properties:
       bucketNameOrArn:
-        title: Bucket Name
-        description: The S3 Bucket name or Amazon Resource Name (ARN)..
-        type: string
+        description: "The S3 Bucket name or Amazon Resource Name (ARN)."
+        title: "Bucket Name"
+        type: "string"
       accessKey:
-        title: Access Key
-        description: The access key obtained from AWS.
-        type: string
-        format: password
+        description: "The access key obtained from AWS."
+        format: "password"
+        title: "Access Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       secretKey:
-        title: Secret Key
-        description: The secret key obtained from AWS.
-        type: string
-        format: password
+        description: "The secret key obtained from AWS."
+        format: "password"
+        title: "Secret Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       region:
-        title: AWS Region
-        description: The AWS region to access.
-        type: string
-        enum: ["ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-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-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "a [...]
+        description: "The AWS region to access."
+        enum:
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
+        title: "AWS Region"
+        type: "string"
       autoCreateBucket:
-        title: Autocreate Bucket
-        description: Setting the autocreation of the S3 bucket bucketName.
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
-      restartingPolicy:
-        title: Restarting Policy
-        description: The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of override, lastPart
-        type: string
-        default: "lastPart"
-      batchMessageNumber:
-        title: Batch Message Number
-        description: The number of messages composing a batch in streaming upload mode
-        type: integer
-        default: 10
-      batchSize:
-        title: Batch Size
-        description: The batch size (in bytes) in streaming upload mode
-        type: integer
-        default: 1000000
-      streamingUploadTimeout:
-        title: Streaming Upload Timeout
-        description: While streaming upload mode is true, this option set the timeout to complete upload
-        type: integer
-      namingStrategy:
-        title: Naming Strategy
-        description: The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of progressive, random
-        type: string
-        default: "progressive"
-      keyName: 
-        title: Key Name
-        description: Setting the key name for an element in the bucket through endpoint parameter. In Streaming Upload, with the default configuration, this will be the base for the progressive creation of files.
-        type: string
-      useDefaultCredentialsProvider:
-        title: Default Credentials Provider
-        description: Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.
-        type: boolean
+        description: "Specifies to automatically create the S3 bucket."
+        title: "Autocreate Bucket"
+        type: "boolean"
         x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+      useDefaultCredentialsProvider:
         default: false
+        description: "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
+        title: "Default Credentials Provider"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        title: Overwrite Endpoint URI
-        description: The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.
-        type: string
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
+        title: "Overwrite Endpoint URI"
+        type: "string"
       overrideEndpoint:
-        title: Endpoint Overwrite
-        description: Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.
-        type: boolean
-        x-descriptors:
-          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
+        title: "Endpoint Overwrite"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+      keyName:
+        description: "The key name for saving an element in the bucket."
+        title: "Key Name"
+        type: "string"
+    required:
+     - "bucketNameOrArn"
+     - "region"
+    title: "AWS S3 Sink"
+    type: "object"
   dependencies:
-    - "camel:aws2-s3"
-    - "camel:kamelet"
+   - "camel:core"
+   - "camel:aws2-s3"
+   - "camel:kamelet"
   template:
     from:
       uri: "kamelet:source"
       steps:
-      - to:
+       -
+        choice:
+          when:
+           -
+            simple: "${header[file]}"
+            steps:
+             -
+              set-header:
+                name: "CamelAwsS3Key"
+                simple: "${header[file]}"
+           -
+            simple: "${header[ce-file]}"
+            steps:
+             -
+              set-header:
+                name: "CamelAwsS3Key"
+                simple: "${header[ce-file]}"
+           -
+            simple: "'{{?keyName}}' == ''"
+            steps:
+             -
+              set-header:
+                name: "CamelAwsS3Key"
+                simple: "${exchangeId}"
+       -
+        to:
           uri: "aws2-s3:{{bucketNameOrArn}}"
           parameters:
             secretKey: "{{?secretKey}}"
             accessKey: "{{?accessKey}}"
             region: "{{region}}"
             autoCreateBucket: "{{autoCreateBucket}}"
-            streamingUploadMode: "true"
-            restartingPolicy: "{{restartingPolicy}}"
-            batchMessageNumber: "{{batchMessageNumber}}"
-            batchSize: "{{batchSize}}"
-            namingStrategy: "{{namingStrategy}}"
-            keyName: "{{keyName}}"
-            streamingUploadTimeout: "{{?streamingUploadTimeout}}"
             useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
             uriEndpointOverride: "{{?uriEndpointOverride}}"
             overrideEndpoint: "{{overrideEndpoint}}"
+            keyName: "{{?keyName}}"
diff --git a/kamelets/aws-sqs-sink.kamelet.yaml b/kamelets/aws-sqs-sink.kamelet.yaml
index 81f952e0..25e6010d 100644
--- a/kamelets/aws-sqs-sink.kamelet.yaml
+++ b/kamelets/aws-sqs-sink.kamelet.yaml
@@ -13,12 +13,10 @@
 # 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.
-# ---------------------------------------------------------------------------
-
-apiVersion: camel.apache.org/v1alpha1
-kind: Kamelet
+# ------------------------------------------------------------------------------
+apiVersion: "camel.apache.org/v1alpha1"
+kind: "Kamelet"
 metadata:
-  name: aws-sqs-sink
   annotations:
     camel.apache.org/kamelet.support.level: "Stable"
     camel.apache.org/catalog.version: "main-SNAPSHOT"
@@ -26,90 +24,129 @@ metadata:
     camel.apache.org/provider: "Apache Software Foundation"
     camel.apache.org/kamelet.group: "AWS SQS"
   labels:
-    camel.apache.org/kamelet.type: sink
+    camel.apache.org/kamelet.type: "sink"
+  name: "aws-sqs-sink"
+  headers:
+    CamelAwsSqsPrefix: "A string to use for filtering the list results."
+    CamelAwsSqsReceiptHandle: "The Amazon SQS message receipt handle."
+    CamelAwsSqsMessageId: "The Amazon SQS message ID."
+    CamelAwsSqsMD5OfBody: "The MD5 checksum of the Amazon SQS message."
+    CamelAwsSqsDelaySeconds: "The delay seconds that the Amazon SQS message can be see by others."
+    CamelAwsSqsOperation: "The operation we want to perform"
 spec:
   definition:
-    title: AWS SQS Sink
-    description: |-
-      Send messages to an Amazon Simple Queue Service (SQS) queue.
-
-      The basic authentication method for the SQS service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.
-      
-      If you use the default credentials provider, the SQS client loads the credentials through this provider and doesn't use the basic authentication method.
-    required:
-      - queueNameOrArn
-      - region
-    type: object
+    description: "Send messages to an Amazon Simple Queue Service (SQS) queue.\n\nThe basic authentication method for the SQS service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the SQS client loads the credentials through this provider and doesn't use the basic authentication method."
     properties:
       queueNameOrArn:
-        title: Queue Name
-        description: The SQS Queue name or or Amazon Resource Name (ARN).
-        type: string
+        description: "The SQS Queue name or or Amazon Resource Name (ARN)."
+        title: "Queue Name"
+        type: "string"
       accessKey:
-        title: Access Key
-        description: The access key obtained from AWS.
-        type: string
-        format: password
+        description: "The access key obtained from AWS."
+        format: "password"
+        title: "Access Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       secretKey:
-        title: Secret Key
-        description: The secret key obtained from AWS.
-        type: string
-        format: password
+        description: "The secret key obtained from AWS."
+        format: "password"
+        title: "Secret Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       region:
-        title: AWS Region
-        description: The AWS region to access.
-        type: string
-        enum: ["ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-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-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "a [...]
+        description: "The AWS region to access."
+        enum:
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
+        title: "AWS Region"
+        type: "string"
       autoCreateQueue:
-        title: Autocreate Queue
-        description: Automatically create the SQS queue. 
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "Automatically create the SQS queue."
+        title: "Autocreate Queue"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       amazonAWSHost:
-        title: AWS Host
-        description: The hostname of the Amazon AWS cloud. 
-        type: string
-        default: amazonaws.com
+        default: "amazonaws.com"
+        description: "The hostname of the Amazon AWS cloud."
+        title: "AWS Host"
+        type: "string"
       protocol:
-        title: Protocol
-        description: The underlying protocol used to communicate with SQS.
-        type: string
-        example: http or https
-        default: https
+        default: "https"
+        description: "The underlying protocol used to communicate with SQS."
+        example: "http or https"
+        title: "Protocol"
+        type: "string"
       useDefaultCredentialsProvider:
-        title: Default Credentials Provider
-        description: If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
+        title: "Default Credentials Provider"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        title: Overwrite Endpoint URI
-        description: The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.
-        type: string
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
+        title: "Overwrite Endpoint URI"
+        type: "string"
       overrideEndpoint:
-        title: Endpoint Overwrite
-        description: Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.
-        type: boolean
+        default: false
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
+        title: "Endpoint Overwrite"
+        type: "boolean"
         x-descriptors:
-          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
-        default: false    
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+    required:
+     - "queueNameOrArn"
+     - "region"
+    title: "AWS SQS Sink"
+    type: "object"
   dependencies:
-    - "camel:aws2-sqs"
-    - "camel:kamelet"
+   - "camel:aws2-sqs"
+   - "camel:kamelet"
   template:
     from:
-      uri: kamelet:source
+      uri: "kamelet:source"
       steps:
-      - to:
+       -
+        to:
           uri: "aws2-sqs:{{queueNameOrArn}}"
           parameters:
             autoCreateQueue: "{{autoCreateQueue}}"
@@ -120,4 +157,4 @@ spec:
             protocol: "{{?protocol}}"
             useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
             uriEndpointOverride: "{{?uriEndpointOverride}}"
-            overrideEndpoint: "{{overrideEndpoint}}"            
+            overrideEndpoint: "{{overrideEndpoint}}"
diff --git a/kamelets/aws-sqs-source.kamelet.yaml b/kamelets/aws-sqs-source.kamelet.yaml
index 00846eb1..1b00d339 100644
--- a/kamelets/aws-sqs-source.kamelet.yaml
+++ b/kamelets/aws-sqs-source.kamelet.yaml
@@ -13,12 +13,10 @@
 # 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.
-# ---------------------------------------------------------------------------
-
-apiVersion: camel.apache.org/v1alpha1
-kind: Kamelet
+# ------------------------------------------------------------------------------
+apiVersion: "camel.apache.org/v1alpha1"
+kind: "Kamelet"
 metadata:
-  name: aws-sqs-source
   annotations:
     camel.apache.org/kamelet.support.level: "Stable"
     camel.apache.org/catalog.version: "main-SNAPSHOT"
@@ -28,134 +26,176 @@ metadata:
     camel.apache.org/keda.type: "aws-sqs-queue"
   labels:
     camel.apache.org/kamelet.type: "source"
+  name: "aws-sqs-source"
+  headers:
+    CamelAwsSqsPrefix: "A string to use for filtering the list results."
+    CamelAwsSqsReceiptHandle: "The Amazon SQS message receipt handle."
+    CamelAwsSqsMessageId: "The Amazon SQS message ID."
+    CamelAwsSqsMessageAttributes: "The Amazon SQS message attributes."
+    CamelAwsSqsMD5OfBody: "The MD5 checksum of the Amazon SQS message."
+    CamelAwsSqsAttributes: "A map of the attributes requested in ReceiveMessage to their respective values."
+    CamelAwsSqsOperation: "The operation we want to perform"
 spec:
   definition:
-    title: "AWS SQS Source"
-    description: |-
-      Receive data from AWS SQS.
-
-      Access Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.
-      
-      When using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.
-
-      Two headers will be duplicated with different names for clarity at sink level, CamelAwsSqsMessageId will be duplicated into aws.sqs.message.id and CamelAwsSqsReceiptHandle will be duplicated in aws.sqs.receipt.handle
-    required:
-      - queueNameOrArn
-      - region
-    type: object
+    description: "Receive data from AWS SQS.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nTwo headers w [...]
     properties:
       queueNameOrArn:
-        title: Queue Name
-        description: The SQS Queue Name or ARN
-        type: string
+        description: "The SQS Queue Name or ARN"
+        title: "Queue Name"
+        type: "string"
       deleteAfterRead:
-        title: Auto-delete Messages
-        description: Delete messages after consuming them
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: true
+        description: "Delete messages after consuming them"
+        title: "Auto-delete Messages"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       accessKey:
-        title: Access Key
-        description: The access key obtained from AWS.
-        type: string
-        format: password
+        description: "The access key obtained from AWS."
+        format: "password"
+        title: "Access Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
-        - urn:keda:authentication:awsAccessKeyID
-        - urn:keda:required
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
+         - "urn:keda:authentication:awsAccessKeyID"
+         - "urn:keda:required"
       secretKey:
-        title: Secret Key
-        description: The secret key obtained from AWS.
-        type: string
-        format: password
+        description: "The secret key obtained from AWS."
+        format: "password"
+        title: "Secret Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
-        - urn:keda:authentication:awsSecretAccessKey
-        - urn:keda:required
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
+         - "urn:keda:authentication:awsSecretAccessKey"
+         - "urn:keda:required"
       region:
-        title: AWS Region
-        description: The AWS region to access.
-        type: string
+        description: "The AWS region to access."
+        enum:
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
+        title: "AWS Region"
+        type: "string"
         x-descriptors:
-        - urn:keda:metadata:awsRegion
-        - urn:keda:required
-        enum: ["ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-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-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "a [...]
+         - "urn:keda:metadata:awsRegion"
+         - "urn:keda:required"
       autoCreateQueue:
-        title: Autocreate Queue
-        description: Setting the autocreation of the SQS queue. 
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "Setting the autocreation of the SQS queue."
+        title: "Autocreate Queue"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       amazonAWSHost:
-        title: AWS Host
-        description: The hostname of the Amazon AWS cloud. 
-        type: string
-        default: amazonaws.com
+        default: "amazonaws.com"
+        description: "The hostname of the Amazon AWS cloud."
+        title: "AWS Host"
+        type: "string"
       protocol:
-        title: Protocol
-        description: The underlying protocol used to communicate with SQS
-        type: string
-        example: http or https
-        default: https
+        default: "https"
+        description: "The underlying protocol used to communicate with SQS"
+        example: "http or https"
+        title: "Protocol"
+        type: "string"
       queueURL:
-        title: Queue URL
-        description: The full SQS Queue URL (required if using KEDA)
-        type: string
+        description: "The full SQS Queue URL (required if using KEDA)"
+        title: "Queue URL"
+        type: "string"
         x-descriptors:
-        - urn:keda:metadata:queueURL
-        - urn:keda:required
+         - "urn:keda:metadata:queueURL"
+         - "urn:keda:required"
       useDefaultCredentialsProvider:
-        title: Default Credentials Provider
-        description: If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
+        title: "Default Credentials Provider"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        title: Overwrite Endpoint URI
-        description: The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.
-        type: string
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
+        title: "Overwrite Endpoint URI"
+        type: "string"
       overrideEndpoint:
-        title: Endpoint Overwrite
-        description: Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.
-        type: boolean
-        x-descriptors:
-          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
+        title: "Endpoint Overwrite"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       delay:
-        title: Delay
-        description: The number of milliseconds before the next poll of the selected stream
-        type: integer
         default: 500
+        description: "The number of milliseconds before the next poll of the selected stream"
+        title: "Delay"
+        type: "integer"
       greedy:
-        title: Greedy Scheduler
-        description: If greedy is enabled, then the polling will happen immediately again, if the previous run polled 1 or more messages.
-        type: boolean
-        x-descriptors:
-          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "If greedy is enabled, then the polling will happen immediately again, if the previous run polled 1 or more messages."
+        title: "Greedy Scheduler"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+    required:
+     - "queueNameOrArn"
+     - "region"
+    title: "AWS SQS Source"
+    type: "object"
   dependencies:
-    - "camel:core"
-    - "camel:aws2-sqs"
-    - "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
-    - "camel:kamelet"
+   - "camel:core"
+   - "camel:aws2-sqs"
+   - "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
+   - "camel:kamelet"
   template:
     beans:
-      - name: renameHeaders
-        type: "#class:org.apache.camel.kamelets.utils.headers.DuplicateNamingHeaders"
-        property:
-          - key: prefix
-            value: 'CamelAwsSqs'
-          - key: renamingPrefix
-            value: 'aws.sqs.'
-          - key: mode
-            value: 'filtering'
-          - key: selectedHeaders
-            value: 'CamelAwsSqsReceiptHandle,CamelAwsSqsMessageId'
+     -
+      name: "renameHeaders"
+      type: "#class:org.apache.camel.kamelets.utils.headers.DuplicateNamingHeaders"
+      property:
+       -
+        key: "prefix"
+        value: "CamelAwsSqs"
+       -
+        key: "renamingPrefix"
+        value: "aws.sqs."
+       -
+        key: "mode"
+        value: "filtering"
+       -
+        key: "selectedHeaders"
+        value: "CamelAwsSqsReceiptHandle,CamelAwsSqsMessageId"
     from:
       uri: "aws2-sqs:{{queueNameOrArn}}"
       parameters:
@@ -172,6 +212,8 @@ spec:
         delay: "{{delay}}"
         greedy: "{{greedy}}"
       steps:
-      - process:
+       -
+        process:
           ref: "{{renameHeaders}}"
-      - to: "kamelet:sink"
+       -
+        to: "kamelet:sink"
diff --git a/library/camel-kamelets/src/main/resources/kamelets/aws-s3-sink.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/aws-s3-sink.kamelet.yaml
index 670feea5..ca1e1d4b 100644
--- a/library/camel-kamelets/src/main/resources/kamelets/aws-s3-sink.kamelet.yaml
+++ b/library/camel-kamelets/src/main/resources/kamelets/aws-s3-sink.kamelet.yaml
@@ -1,4 +1,19 @@
----
+# ---------------------------------------------------------------------------
+# 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.
+# ------------------------------------------------------------------------------
 apiVersion: "camel.apache.org/v1alpha1"
 kind: "Kamelet"
 metadata:
@@ -11,79 +26,64 @@ metadata:
   labels:
     camel.apache.org/kamelet.type: "sink"
   name: "aws-s3-sink"
+  headers:
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
+    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link in milliseconds"
+    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3DestinationKey: "The Destination key which will be used for the current operation"
+    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used for the current operation"
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
+    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
+    CamelAwsS3Acl: "A well constructed Amazon S3 Access Control List object."
+    CamelAwsS3RangeStart: "The position of the first byte to get"
+    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values."
+    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser compatible"
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
+    CamelAwsS3StorageClass: "The storage class of this object."
+    CamelAwsS3RangeEnd: "The position of the last byte to get"
   Headers:
-    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object\
-      \ in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
-    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying\
-      \ what content encodings have been applied to the object and what decoding mechanisms\
-      \ must be applied in order to obtain the media-type referenced by the Content-Type\
-      \ field."
-    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer)\
-      \ The hex encoded 128-bit MD5 digest of the associated object according to RFC\
-      \ 1864. This data is used as an integrity check to verify that the data received\
-      \ by the caller is the same data that was sent by Amazon S3."
-    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject,\
-      \ deleteObject, listBuckets, deleteBucket, listObjects"
-    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link\
-      \ in milliseconds"
-    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the\
-      \ service (not needed when BrowserCompatible is true)"
-    CamelAwsS3DestinationKey: "The Destination key which will be used for the current\
-      \ operation"
-    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used\
-      \ for the current operation"
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
+    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link in milliseconds"
+    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3DestinationKey: "The Destination key which will be used for the current operation"
+    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used for the current operation"
     CamelMessageTimestamp: "The timestamp of the message"
-    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which\
-      \ specifies presentational information such as the recommended filename for\
-      \ the object to be saved as."
-    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type\
-      \ of content stored in the associated object. The value of this header is a\
-      \ standard MIME type."
-    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the\
-      \ date and time at which Amazon S3 last recorded a modification to the associated\
-      \ object."
-    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket\
-      \ lifecycle), the response includes this header."
-    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows\
-      \ the user to specify caching behavior along the HTTP request/reply chain."
-    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when\
-      \ encrypting the object using AWS-managed keys. For example use AES256."
-    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the\
-      \ service (not needed when BrowserCompatible is true)"
-    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded\
-      \ object. (consumer) The version ID of the associated Amazon S3 object if available.\
-      \ Version IDs are only assigned to objects when an object is uploaded to an\
-      \ Amazon S3 bucket that has object versioning enabled."
-    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves\
-      \ a bucket that is either a source or destination in a replication rule."
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
+    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
+    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule."
     CamelAwsS3Acl: "A well constructed Amazon S3 Access Control List object."
     CamelAwsS3RangeStart: "The position of the first byte to get"
-    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL\
-      \ for allowed values."
-    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser\
-      \ compatible"
-    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which\
-      \ will be used for the current operation or in which this object is contained."
-    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated\
-      \ object (content - not including headers) according to RFC 1864. This data\
-      \ is used as a message integrity check to verify that the data received by Amazon\
-      \ S3 is the same data that the caller sent."
-    CamelAwsS3Key: "The key under which this object is stored or will be stored or\
-      \ which will be used for the current operation"
-    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of\
-      \ the associated object in bytes."
+    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values."
+    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser compatible"
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
     CamelAwsS3StorageClass: "The storage class of this object."
     CamelAwsS3RangeEnd: "The position of the last byte to get"
 spec:
   definition:
-    description: "Upload data to an Amazon S3 Bucket.\n\nThe basic authentication\
-      \ method for the S3 service is to specify an access key and a secret key. These\
-      \ parameters are optional because the Kamelet provides a default credentials\
-      \ provider.\n\nIf you use the default credentials provider, the S3 client loads\
-      \ the credentials through this provider and doesn't use the basic authentication\
-      \ method.\n\nIn the header, you can optionally set the `file` / `ce-partition`\
-      \ property to specify the name of the file to upload.\n\nIf you do not set the\
-      \ property in the header, the Kamelet uses the exchange ID for the file name."
+    description: "Upload data to an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `file` / `ce-partition` property to specify the [...]
     properties:
       bucketNameOrArn:
         description: "The S3 Bucket name or Amazon Resource Name (ARN)."
@@ -95,54 +95,54 @@ spec:
         title: "Access Key"
         type: "string"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:password"
-        - "urn:camel:group:credentials"
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       secretKey:
         description: "The secret key obtained from AWS."
         format: "password"
         title: "Secret Key"
         type: "string"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:password"
-        - "urn:camel:group:credentials"
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       region:
         description: "The AWS region to access."
         enum:
-        - "ap-south-1"
-        - "eu-south-1"
-        - "us-gov-east-1"
-        - "me-central-1"
-        - "ca-central-1"
-        - "eu-central-1"
-        - "us-iso-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-northeast-2"
-        - "ap-northeast-1"
-        - "me-south-1"
-        - "sa-east-1"
-        - "ap-east-1"
-        - "cn-north-1"
-        - "us-gov-west-1"
-        - "ap-southeast-1"
-        - "ap-southeast-2"
-        - "us-iso-east-1"
-        - "ap-southeast-3"
-        - "us-east-1"
-        - "us-east-2"
-        - "cn-northwest-1"
-        - "us-isob-east-1"
-        - "aws-global"
-        - "aws-cn-global"
-        - "aws-us-gov-global"
-        - "aws-iso-global"
-        - "aws-iso-b-global"
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
         title: "AWS Region"
         type: "string"
       autoCreateBucket:
@@ -151,64 +151,68 @@ spec:
         title: "Autocreate Bucket"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       useDefaultCredentialsProvider:
         default: false
-        description: "If true, the S3 client loads credentials through a default credentials\
-          \ provider. If false, it uses the basic authentication method (access key\
-          \ and secret key)."
+        description: "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
         title: "Default Credentials Provider"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        description: "The overriding endpoint URI. To use this option, you must also\
-          \ select the `overrideEndpoint` option."
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
         title: "Overwrite Endpoint URI"
         type: "string"
       overrideEndpoint:
         default: false
-        description: "Select this option to override the endpoint URI. To use this\
-          \ option, you must also provide a URI for the `uriEndpointOverride` option."
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
         title: "Endpoint Overwrite"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       keyName:
         description: "The key name for saving an element in the bucket."
         title: "Key Name"
         type: "string"
     required:
-    - "bucketNameOrArn"
-    - "region"
+     - "bucketNameOrArn"
+     - "region"
     title: "AWS S3 Sink"
     type: "object"
   dependencies:
-  - "camel:core"
-  - "camel:aws2-s3"
-  - "camel:kamelet"
+   - "camel:core"
+   - "camel:aws2-s3"
+   - "camel:kamelet"
   template:
     from:
       uri: "kamelet:source"
       steps:
-      - choice:
+       -
+        choice:
           when:
-          - simple: "${header[file]}"
+           -
+            simple: "${header[file]}"
             steps:
-            - set-header:
+             -
+              set-header:
                 name: "CamelAwsS3Key"
                 simple: "${header[file]}"
-          - simple: "${header[ce-file]}"
+           -
+            simple: "${header[ce-file]}"
             steps:
-            - set-header:
+             -
+              set-header:
                 name: "CamelAwsS3Key"
                 simple: "${header[ce-file]}"
-          - simple: "'{{?keyName}}' == ''"
+           -
+            simple: "'{{?keyName}}' == ''"
             steps:
-            - set-header:
+             -
+              set-header:
                 name: "CamelAwsS3Key"
                 simple: "${exchangeId}"
-      - to:
+       -
+        to:
           uri: "aws2-s3:{{bucketNameOrArn}}"
           parameters:
             secretKey: "{{?secretKey}}"
diff --git a/library/camel-kamelets/src/main/resources/kamelets/aws-s3-source.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/aws-s3-source.kamelet.yaml
index 78f85fbb..e1efbffe 100644
--- a/library/camel-kamelets/src/main/resources/kamelets/aws-s3-source.kamelet.yaml
+++ b/library/camel-kamelets/src/main/resources/kamelets/aws-s3-source.kamelet.yaml
@@ -1,4 +1,19 @@
----
+# ---------------------------------------------------------------------------
+# 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.
+# ------------------------------------------------------------------------------
 apiVersion: "camel.apache.org/v1alpha1"
 kind: "Kamelet"
 metadata:
@@ -11,79 +26,57 @@ metadata:
   labels:
     camel.apache.org/kamelet.type: "source"
   name: "aws-s3-source"
+  headers:
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
+    CamelMessageTimestamp: "The timestamp of the message"
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header."
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
+    CamelAwsS3StorageClass: "The storage class of this object."
   Headers:
-    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object\
-      \ in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
-    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying\
-      \ what content encodings have been applied to the object and what decoding mechanisms\
-      \ must be applied in order to obtain the media-type referenced by the Content-Type\
-      \ field."
-    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer)\
-      \ The hex encoded 128-bit MD5 digest of the associated object according to RFC\
-      \ 1864. This data is used as an integrity check to verify that the data received\
-      \ by the caller is the same data that was sent by Amazon S3."
-    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject,\
-      \ deleteObject, listBuckets, deleteBucket, listObjects"
-    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link\
-      \ in milliseconds"
-    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the\
-      \ service (not needed when BrowserCompatible is true)"
-    CamelAwsS3DestinationKey: "The Destination key which will be used for the current\
-      \ operation"
-    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used\
-      \ for the current operation"
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
+    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link in milliseconds"
+    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3DestinationKey: "The Destination key which will be used for the current operation"
+    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used for the current operation"
     CamelMessageTimestamp: "The timestamp of the message"
-    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which\
-      \ specifies presentational information such as the recommended filename for\
-      \ the object to be saved as."
-    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type\
-      \ of content stored in the associated object. The value of this header is a\
-      \ standard MIME type."
-    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the\
-      \ date and time at which Amazon S3 last recorded a modification to the associated\
-      \ object."
-    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket\
-      \ lifecycle), the response includes this header."
-    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows\
-      \ the user to specify caching behavior along the HTTP request/reply chain."
-    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when\
-      \ encrypting the object using AWS-managed keys. For example use AES256."
-    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the\
-      \ service (not needed when BrowserCompatible is true)"
-    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded\
-      \ object. (consumer) The version ID of the associated Amazon S3 object if available.\
-      \ Version IDs are only assigned to objects when an object is uploaded to an\
-      \ Amazon S3 bucket that has object versioning enabled."
-    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves\
-      \ a bucket that is either a source or destination in a replication rule."
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
+    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
+    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule."
     CamelAwsS3Acl: "A well constructed Amazon S3 Access Control List object."
     CamelAwsS3RangeStart: "The position of the first byte to get"
-    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL\
-      \ for allowed values."
-    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser\
-      \ compatible"
-    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which\
-      \ will be used for the current operation or in which this object is contained."
-    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated\
-      \ object (content - not including headers) according to RFC 1864. This data\
-      \ is used as a message integrity check to verify that the data received by Amazon\
-      \ S3 is the same data that the caller sent."
-    CamelAwsS3Key: "The key under which this object is stored or will be stored or\
-      \ which will be used for the current operation"
-    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of\
-      \ the associated object in bytes."
+    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values."
+    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser compatible"
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
     CamelAwsS3StorageClass: "The storage class of this object."
     CamelAwsS3RangeEnd: "The position of the last byte to get"
 spec:
   definition:
-    description: "Receive data from an Amazon S3 Bucket.\n\nThe basic authentication\
-      \ method for the S3 service is to specify an access key and a secret key. These\
-      \ parameters are optional because the Kamelet provides a default credentials\
-      \ provider.\n\nIf you use the default credentials provider, the S3 client loads\
-      \ the credentials through this provider and doesn't use the basic authentication\
-      \ method.\n\nTwo headers will be duplicated with different names for clarity\
-      \ at sink level, CamelAwsS3Key will be duplicated into aws.s3.key and CamelAwsS3BucketName\
-      \ will be duplicated in aws.s3.bucket.name"
+    description: "Receive data from an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nTwo headers will be duplicated with different names for clarity at sink level, CamelAw [...]
     properties:
       bucketNameOrArn:
         description: "The S3 Bucket name or Amazon Resource Name (ARN)."
@@ -95,61 +88,61 @@ spec:
         title: "Auto-delete Objects"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       accessKey:
         description: "The access key obtained from AWS."
         format: "password"
         title: "Access Key"
         type: "string"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:password"
-        - "urn:camel:group:credentials"
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       secretKey:
         description: "The secret key obtained from AWS."
         format: "password"
         title: "Secret Key"
         type: "string"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:password"
-        - "urn:camel:group:credentials"
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       region:
         description: "The AWS region to access."
         enum:
-        - "ap-south-1"
-        - "eu-south-1"
-        - "us-gov-east-1"
-        - "me-central-1"
-        - "ca-central-1"
-        - "eu-central-1"
-        - "us-iso-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-northeast-2"
-        - "ap-northeast-1"
-        - "me-south-1"
-        - "sa-east-1"
-        - "ap-east-1"
-        - "cn-north-1"
-        - "us-gov-west-1"
-        - "ap-southeast-1"
-        - "ap-southeast-2"
-        - "us-iso-east-1"
-        - "ap-southeast-3"
-        - "us-east-1"
-        - "us-east-2"
-        - "cn-northwest-1"
-        - "us-isob-east-1"
-        - "aws-global"
-        - "aws-cn-global"
-        - "aws-us-gov-global"
-        - "aws-iso-global"
-        - "aws-iso-b-global"
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
         title: "AWS Region"
         type: "string"
       autoCreateBucket:
@@ -158,16 +151,14 @@ spec:
         title: "Autocreate Bucket"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       includeBody:
         default: true
-        description: "If true, the exchange is consumed and put into the body and\
-          \ closed. If false, the S3Object stream is put raw into the body and the\
-          \ headers are set with the S3 object metadata."
+        description: "If true, the exchange is consumed and put into the body and closed. If false, the S3Object stream is put raw into the body and the headers are set with the S3 object metadata."
         title: "Include Body"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       prefix:
         description: "The AWS S3 bucket prefix to consider while searching."
         example: "folder/"
@@ -175,63 +166,61 @@ spec:
         type: "string"
       ignoreBody:
         default: false
-        description: "If true, the S3 Object body is ignored. Setting this to true\
-          \ overrides any behavior defined by the `includeBody` option. If false,\
-          \ the S3 object is put in the body."
+        description: "If true, the S3 Object body is ignored. Setting this to true overrides any behavior defined by the `includeBody` option. If false, the S3 object is put in the body."
         title: "Ignore Body"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       useDefaultCredentialsProvider:
         default: false
-        description: "If true, the S3 client loads credentials through a default credentials\
-          \ provider. If false, it uses the basic authentication method (access key\
-          \ and secret key)."
+        description: "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
         title: "Default Credentials Provider"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        description: "The overriding endpoint URI. To use this option, you must also\
-          \ select the `overrideEndpoint` option."
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
         title: "Overwrite Endpoint URI"
         type: "string"
       overrideEndpoint:
         default: false
-        description: "Select this option to override the endpoint URI. To use this\
-          \ option, you must also provide a URI for the `uriEndpointOverride` option."
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
         title: "Endpoint Overwrite"
         type: "boolean"
         x-descriptors:
-        - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       delay:
         default: 500
-        description: "The number of milliseconds before the next poll of the selected\
-          \ bucket."
+        description: "The number of milliseconds before the next poll of the selected bucket."
         title: "Delay"
         type: "integer"
     required:
-    - "bucketNameOrArn"
-    - "region"
+     - "bucketNameOrArn"
+     - "region"
     title: "AWS S3 Source"
     type: "object"
   dependencies:
-  - "camel:core"
-  - "camel:aws2-s3"
-  - "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
-  - "camel:kamelet"
+   - "camel:core"
+   - "camel:aws2-s3"
+   - "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
+   - "camel:kamelet"
   template:
     beans:
-    - name: "renameHeaders"
+     -
+      name: "renameHeaders"
       type: "#class:org.apache.camel.kamelets.utils.headers.DuplicateNamingHeaders"
       property:
-      - key: "prefix"
+       -
+        key: "prefix"
         value: "CamelAwsS3"
-      - key: "renamingPrefix"
+       -
+        key: "renamingPrefix"
         value: "aws.s3."
-      - key: "mode"
+       -
+        key: "mode"
         value: "filtering"
-      - key: "selectedHeaders"
+       -
+        key: "selectedHeaders"
         value: "CamelAwsS3Key,CamelAwsS3BucketName"
     from:
       uri: "aws2-s3:{{bucketNameOrArn}}"
@@ -249,6 +238,8 @@ spec:
         overrideEndpoint: "{{overrideEndpoint}}"
         delay: "{{delay}}"
       steps:
-      - process:
+       -
+        process:
           ref: "{{renameHeaders}}"
-      - to: "kamelet:sink"
+       -
+        to: "kamelet:sink"
diff --git a/library/camel-kamelets/src/main/resources/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml
index e327a23b..ca1e1d4b 100644
--- a/library/camel-kamelets/src/main/resources/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml
+++ b/library/camel-kamelets/src/main/resources/kamelets/aws-s3-streaming-upload-sink.kamelet.yaml
@@ -13,12 +13,10 @@
 # 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.
-# ---------------------------------------------------------------------------
-
-apiVersion: camel.apache.org/v1alpha1
-kind: Kamelet
+# ------------------------------------------------------------------------------
+apiVersion: "camel.apache.org/v1alpha1"
+kind: "Kamelet"
 metadata:
-  name: aws-s3-streaming-upload-sink
   annotations:
     camel.apache.org/kamelet.support.level: "Stable"
     camel.apache.org/catalog.version: "main-SNAPSHOT"
@@ -27,120 +25,201 @@ metadata:
     camel.apache.org/kamelet.group: "AWS S3"
   labels:
     camel.apache.org/kamelet.type: "sink"
+  name: "aws-s3-sink"
+  headers:
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
+    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link in milliseconds"
+    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3DestinationKey: "The Destination key which will be used for the current operation"
+    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used for the current operation"
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
+    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
+    CamelAwsS3Acl: "A well constructed Amazon S3 Access Control List object."
+    CamelAwsS3RangeStart: "The position of the first byte to get"
+    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values."
+    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser compatible"
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
+    CamelAwsS3StorageClass: "The storage class of this object."
+    CamelAwsS3RangeEnd: "The position of the last byte to get"
+  Headers:
+    CamelAwsS3Metadata: "A map of metadata to be stored or stored with the object in S3. More details about metadata https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.htmlhere."
+    CamelAwsS3ContentEncoding: "The optional Content-Encoding HTTP header specifying what content encodings have been applied to the object and what decoding mechanisms must be applied in order to obtain the media-type referenced by the Content-Type field."
+    CamelAwsS3ETag: "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same data that was sent by Amazon S3."
+    CamelAwsS3Operation: "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects"
+    CamelAwsS3DowloadLinkExpirationTime: "The expiration time of the download link in milliseconds"
+    CamelAwsS3DownloadLinkSignedPayload: "The request payload that is needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3DestinationKey: "The Destination key which will be used for the current operation"
+    CamelAwsS3BucketDestinationName: "The bucket Destination Name which will be used for the current operation"
+    CamelMessageTimestamp: "The timestamp of the message"
+    CamelAwsS3ContentDisposition: "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as."
+    CamelAwsS3ContentType: "The Content-Type HTTP header, which indicates the type of content stored in the associated object. The value of this header is a standard MIME type."
+    CamelAwsS3LastModified: "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object."
+    CamelAwsS3ExpirationTime: "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header."
+    CamelAwsS3ContentControl: "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request/reply chain."
+    CamelAwsS3ServerSideEncryption: "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256."
+    CamelAwsS3DownloadLinkHttpRequestHeaders: "The headers that are needed by the service (not needed when BrowserCompatible is true)"
+    CamelAwsS3VersionId: "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has object versioning enabled."
+    CamelAwsS3ReplicationStatus: "Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule."
+    CamelAwsS3Acl: "A well constructed Amazon S3 Access Control List object."
+    CamelAwsS3RangeStart: "The position of the first byte to get"
+    CamelAwsS3CannedAcl: "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values."
+    CamelAwsS3DownloadLinkBrowserCompatible: "Whether the download link is browser compatible"
+    CamelAwsS3BucketName: "The bucket Name which this object will be stored or which will be used for the current operation or in which this object is contained."
+    CamelAwsS3ContentMD5: "The base64 encoded 128-bit MD5 digest of the associated object (content - not including headers) according to RFC 1864. This data is used as a message integrity check to verify that the data received by Amazon S3 is the same data that the caller sent."
+    CamelAwsS3Key: "The key under which this object is stored or will be stored or which will be used for the current operation"
+    CamelAwsS3ContentLength: "The Content-Length HTTP header indicating the size of the associated object in bytes."
+    CamelAwsS3StorageClass: "The storage class of this object."
+    CamelAwsS3RangeEnd: "The position of the last byte to get"
 spec:
   definition:
-    title: "AWS S3 Streaming upload Sink"
-    description: |-
-      Upload data to AWS S3 in streaming upload mode.
-
-      Access Key/Secret Key are the basic method for authenticating to the AWS S3 Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.
-      
-      When using a default Credentials Provider the S3 client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.
-    required:
-      - bucketNameOrArn
-      - region
-      - keyName
-    type: object
+    description: "Upload data to an Amazon S3 Bucket.\n\nThe basic authentication method for the S3 service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the S3 client loads the credentials through this provider and doesn't use the basic authentication method.\n\nIn the header, you can optionally set the `file` / `ce-partition` property to specify the [...]
     properties:
       bucketNameOrArn:
-        title: Bucket Name
-        description: The S3 Bucket name or Amazon Resource Name (ARN)..
-        type: string
+        description: "The S3 Bucket name or Amazon Resource Name (ARN)."
+        title: "Bucket Name"
+        type: "string"
       accessKey:
-        title: Access Key
-        description: The access key obtained from AWS.
-        type: string
-        format: password
+        description: "The access key obtained from AWS."
+        format: "password"
+        title: "Access Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       secretKey:
-        title: Secret Key
-        description: The secret key obtained from AWS.
-        type: string
-        format: password
+        description: "The secret key obtained from AWS."
+        format: "password"
+        title: "Secret Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       region:
-        title: AWS Region
-        description: The AWS region to access.
-        type: string
-        enum: ["ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-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-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "a [...]
+        description: "The AWS region to access."
+        enum:
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
+        title: "AWS Region"
+        type: "string"
       autoCreateBucket:
-        title: Autocreate Bucket
-        description: Setting the autocreation of the S3 bucket bucketName.
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
-      restartingPolicy:
-        title: Restarting Policy
-        description: The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of override, lastPart
-        type: string
-        default: "lastPart"
-      batchMessageNumber:
-        title: Batch Message Number
-        description: The number of messages composing a batch in streaming upload mode
-        type: integer
-        default: 10
-      batchSize:
-        title: Batch Size
-        description: The batch size (in bytes) in streaming upload mode
-        type: integer
-        default: 1000000
-      streamingUploadTimeout:
-        title: Streaming Upload Timeout
-        description: While streaming upload mode is true, this option set the timeout to complete upload
-        type: integer
-      namingStrategy:
-        title: Naming Strategy
-        description: The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of progressive, random
-        type: string
-        default: "progressive"
-      keyName: 
-        title: Key Name
-        description: Setting the key name for an element in the bucket through endpoint parameter. In Streaming Upload, with the default configuration, this will be the base for the progressive creation of files.
-        type: string
-      useDefaultCredentialsProvider:
-        title: Default Credentials Provider
-        description: Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.
-        type: boolean
+        description: "Specifies to automatically create the S3 bucket."
+        title: "Autocreate Bucket"
+        type: "boolean"
         x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+      useDefaultCredentialsProvider:
         default: false
+        description: "If true, the S3 client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
+        title: "Default Credentials Provider"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        title: Overwrite Endpoint URI
-        description: The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.
-        type: string
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
+        title: "Overwrite Endpoint URI"
+        type: "string"
       overrideEndpoint:
-        title: Endpoint Overwrite
-        description: Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.
-        type: boolean
-        x-descriptors:
-          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
+        title: "Endpoint Overwrite"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+      keyName:
+        description: "The key name for saving an element in the bucket."
+        title: "Key Name"
+        type: "string"
+    required:
+     - "bucketNameOrArn"
+     - "region"
+    title: "AWS S3 Sink"
+    type: "object"
   dependencies:
-    - "camel:aws2-s3"
-    - "camel:kamelet"
+   - "camel:core"
+   - "camel:aws2-s3"
+   - "camel:kamelet"
   template:
     from:
       uri: "kamelet:source"
       steps:
-      - to:
+       -
+        choice:
+          when:
+           -
+            simple: "${header[file]}"
+            steps:
+             -
+              set-header:
+                name: "CamelAwsS3Key"
+                simple: "${header[file]}"
+           -
+            simple: "${header[ce-file]}"
+            steps:
+             -
+              set-header:
+                name: "CamelAwsS3Key"
+                simple: "${header[ce-file]}"
+           -
+            simple: "'{{?keyName}}' == ''"
+            steps:
+             -
+              set-header:
+                name: "CamelAwsS3Key"
+                simple: "${exchangeId}"
+       -
+        to:
           uri: "aws2-s3:{{bucketNameOrArn}}"
           parameters:
             secretKey: "{{?secretKey}}"
             accessKey: "{{?accessKey}}"
             region: "{{region}}"
             autoCreateBucket: "{{autoCreateBucket}}"
-            streamingUploadMode: "true"
-            restartingPolicy: "{{restartingPolicy}}"
-            batchMessageNumber: "{{batchMessageNumber}}"
-            batchSize: "{{batchSize}}"
-            namingStrategy: "{{namingStrategy}}"
-            keyName: "{{keyName}}"
-            streamingUploadTimeout: "{{?streamingUploadTimeout}}"
             useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
             uriEndpointOverride: "{{?uriEndpointOverride}}"
             overrideEndpoint: "{{overrideEndpoint}}"
+            keyName: "{{?keyName}}"
diff --git a/library/camel-kamelets/src/main/resources/kamelets/aws-sqs-sink.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/aws-sqs-sink.kamelet.yaml
index 81f952e0..af05d598 100644
--- a/library/camel-kamelets/src/main/resources/kamelets/aws-sqs-sink.kamelet.yaml
+++ b/library/camel-kamelets/src/main/resources/kamelets/aws-sqs-sink.kamelet.yaml
@@ -13,12 +13,10 @@
 # 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.
-# ---------------------------------------------------------------------------
-
-apiVersion: camel.apache.org/v1alpha1
-kind: Kamelet
+# ------------------------------------------------------------------------------
+apiVersion: "camel.apache.org/v1alpha1"
+kind: "Kamelet"
 metadata:
-  name: aws-sqs-sink
   annotations:
     camel.apache.org/kamelet.support.level: "Stable"
     camel.apache.org/catalog.version: "main-SNAPSHOT"
@@ -26,90 +24,138 @@ metadata:
     camel.apache.org/provider: "Apache Software Foundation"
     camel.apache.org/kamelet.group: "AWS SQS"
   labels:
-    camel.apache.org/kamelet.type: sink
+    camel.apache.org/kamelet.type: "sink"
+  name: "aws-sqs-sink"
+  headers:
+    CamelAwsSqsPrefix: "A string to use for filtering the list results."
+    CamelAwsSqsReceiptHandle: "The Amazon SQS message receipt handle."
+    CamelAwsSqsMessageId: "The Amazon SQS message ID."
+    CamelAwsSqsMD5OfBody: "The MD5 checksum of the Amazon SQS message."
+    CamelAwsSqsDelaySeconds: "The delay seconds that the Amazon SQS message can be see by others."
+    CamelAwsSqsOperation: "The operation we want to perform"
+  Headers:
+    CamelAwsSqsPrefix: "A string to use for filtering the list results."
+    CamelAwsSqsReceiptHandle: "The Amazon SQS message receipt handle."
+    CamelAwsSqsMessageId: "The Amazon SQS message ID."
+    CamelAwsSqsMessageAttributes: "The Amazon SQS message attributes."
+    CamelAwsSqsMD5OfBody: "The MD5 checksum of the Amazon SQS message."
+    CamelAwsSqsAttributes: "A map of the attributes requested in ReceiveMessage to their respective values."
+    CamelAwsSqsDelaySeconds: "The delay seconds that the Amazon SQS message can be see by others."
+    CamelAwsSqsOperation: "The operation we want to perform"
 spec:
   definition:
-    title: AWS SQS Sink
-    description: |-
-      Send messages to an Amazon Simple Queue Service (SQS) queue.
-
-      The basic authentication method for the SQS service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.
-      
-      If you use the default credentials provider, the SQS client loads the credentials through this provider and doesn't use the basic authentication method.
-    required:
-      - queueNameOrArn
-      - region
-    type: object
+    description: "Send messages to an Amazon Simple Queue Service (SQS) queue.\n\nThe basic authentication method for the SQS service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.\n\nIf you use the default credentials provider, the SQS client loads the credentials through this provider and doesn't use the basic authentication method."
     properties:
       queueNameOrArn:
-        title: Queue Name
-        description: The SQS Queue name or or Amazon Resource Name (ARN).
-        type: string
+        description: "The SQS Queue name or or Amazon Resource Name (ARN)."
+        title: "Queue Name"
+        type: "string"
       accessKey:
-        title: Access Key
-        description: The access key obtained from AWS.
-        type: string
-        format: password
+        description: "The access key obtained from AWS."
+        format: "password"
+        title: "Access Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       secretKey:
-        title: Secret Key
-        description: The secret key obtained from AWS.
-        type: string
-        format: password
+        description: "The secret key obtained from AWS."
+        format: "password"
+        title: "Secret Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
       region:
-        title: AWS Region
-        description: The AWS region to access.
-        type: string
-        enum: ["ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-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-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "a [...]
+        description: "The AWS region to access."
+        enum:
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
+        title: "AWS Region"
+        type: "string"
       autoCreateQueue:
-        title: Autocreate Queue
-        description: Automatically create the SQS queue. 
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "Automatically create the SQS queue."
+        title: "Autocreate Queue"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       amazonAWSHost:
-        title: AWS Host
-        description: The hostname of the Amazon AWS cloud. 
-        type: string
-        default: amazonaws.com
+        default: "amazonaws.com"
+        description: "The hostname of the Amazon AWS cloud."
+        title: "AWS Host"
+        type: "string"
       protocol:
-        title: Protocol
-        description: The underlying protocol used to communicate with SQS.
-        type: string
-        example: http or https
-        default: https
+        default: "https"
+        description: "The underlying protocol used to communicate with SQS."
+        example: "http or https"
+        title: "Protocol"
+        type: "string"
       useDefaultCredentialsProvider:
-        title: Default Credentials Provider
-        description: If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
+        title: "Default Credentials Provider"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        title: Overwrite Endpoint URI
-        description: The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.
-        type: string
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
+        title: "Overwrite Endpoint URI"
+        type: "string"
       overrideEndpoint:
-        title: Endpoint Overwrite
-        description: Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.
-        type: boolean
+        default: false
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
+        title: "Endpoint Overwrite"
+        type: "boolean"
         x-descriptors:
-          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
-        default: false    
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+    required:
+     - "queueNameOrArn"
+     - "region"
+    title: "AWS SQS Sink"
+    type: "object"
   dependencies:
-    - "camel:aws2-sqs"
-    - "camel:kamelet"
+   - "camel:aws2-sqs"
+   - "camel:kamelet"
   template:
     from:
-      uri: kamelet:source
+      uri: "kamelet:source"
       steps:
-      - to:
+       -
+        to:
           uri: "aws2-sqs:{{queueNameOrArn}}"
           parameters:
             autoCreateQueue: "{{autoCreateQueue}}"
@@ -120,4 +166,4 @@ spec:
             protocol: "{{?protocol}}"
             useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
             uriEndpointOverride: "{{?uriEndpointOverride}}"
-            overrideEndpoint: "{{overrideEndpoint}}"            
+            overrideEndpoint: "{{overrideEndpoint}}"
diff --git a/library/camel-kamelets/src/main/resources/kamelets/aws-sqs-source.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/aws-sqs-source.kamelet.yaml
index 00846eb1..1b00d339 100644
--- a/library/camel-kamelets/src/main/resources/kamelets/aws-sqs-source.kamelet.yaml
+++ b/library/camel-kamelets/src/main/resources/kamelets/aws-sqs-source.kamelet.yaml
@@ -13,12 +13,10 @@
 # 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.
-# ---------------------------------------------------------------------------
-
-apiVersion: camel.apache.org/v1alpha1
-kind: Kamelet
+# ------------------------------------------------------------------------------
+apiVersion: "camel.apache.org/v1alpha1"
+kind: "Kamelet"
 metadata:
-  name: aws-sqs-source
   annotations:
     camel.apache.org/kamelet.support.level: "Stable"
     camel.apache.org/catalog.version: "main-SNAPSHOT"
@@ -28,134 +26,176 @@ metadata:
     camel.apache.org/keda.type: "aws-sqs-queue"
   labels:
     camel.apache.org/kamelet.type: "source"
+  name: "aws-sqs-source"
+  headers:
+    CamelAwsSqsPrefix: "A string to use for filtering the list results."
+    CamelAwsSqsReceiptHandle: "The Amazon SQS message receipt handle."
+    CamelAwsSqsMessageId: "The Amazon SQS message ID."
+    CamelAwsSqsMessageAttributes: "The Amazon SQS message attributes."
+    CamelAwsSqsMD5OfBody: "The MD5 checksum of the Amazon SQS message."
+    CamelAwsSqsAttributes: "A map of the attributes requested in ReceiveMessage to their respective values."
+    CamelAwsSqsOperation: "The operation we want to perform"
 spec:
   definition:
-    title: "AWS SQS Source"
-    description: |-
-      Receive data from AWS SQS.
-
-      Access Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.
-      
-      When using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.
-
-      Two headers will be duplicated with different names for clarity at sink level, CamelAwsSqsMessageId will be duplicated into aws.sqs.message.id and CamelAwsSqsReceiptHandle will be duplicated in aws.sqs.receipt.handle
-    required:
-      - queueNameOrArn
-      - region
-    type: object
+    description: "Receive data from AWS SQS.\n\nAccess Key/Secret Key are the basic method for authenticating to the AWS SQS Service. These parameters are optional because the Kamelet provides the 'useDefaultCredentialsProvider'.\n\nWhen using a default Credentials Provider the SQS client will load the credentials through this provider and won't use the static credential. This is reason for not having the access key and secret key as mandatory parameter for this Kamelet.\n\nTwo headers w [...]
     properties:
       queueNameOrArn:
-        title: Queue Name
-        description: The SQS Queue Name or ARN
-        type: string
+        description: "The SQS Queue Name or ARN"
+        title: "Queue Name"
+        type: "string"
       deleteAfterRead:
-        title: Auto-delete Messages
-        description: Delete messages after consuming them
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: true
+        description: "Delete messages after consuming them"
+        title: "Auto-delete Messages"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       accessKey:
-        title: Access Key
-        description: The access key obtained from AWS.
-        type: string
-        format: password
+        description: "The access key obtained from AWS."
+        format: "password"
+        title: "Access Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
-        - urn:keda:authentication:awsAccessKeyID
-        - urn:keda:required
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
+         - "urn:keda:authentication:awsAccessKeyID"
+         - "urn:keda:required"
       secretKey:
-        title: Secret Key
-        description: The secret key obtained from AWS.
-        type: string
-        format: password
+        description: "The secret key obtained from AWS."
+        format: "password"
+        title: "Secret Key"
+        type: "string"
         x-descriptors:
-        - urn:alm:descriptor:com.tectonic.ui:password
-        - urn:camel:group:credentials
-        - urn:keda:authentication:awsSecretAccessKey
-        - urn:keda:required
+         - "urn:alm:descriptor:com.tectonic.ui:password"
+         - "urn:camel:group:credentials"
+         - "urn:keda:authentication:awsSecretAccessKey"
+         - "urn:keda:required"
       region:
-        title: AWS Region
-        description: The AWS region to access.
-        type: string
+        description: "The AWS region to access."
+        enum:
+         - "ap-south-1"
+         - "eu-south-1"
+         - "us-gov-east-1"
+         - "me-central-1"
+         - "ca-central-1"
+         - "eu-central-1"
+         - "us-iso-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-northeast-2"
+         - "ap-northeast-1"
+         - "me-south-1"
+         - "sa-east-1"
+         - "ap-east-1"
+         - "cn-north-1"
+         - "us-gov-west-1"
+         - "ap-southeast-1"
+         - "ap-southeast-2"
+         - "us-iso-east-1"
+         - "ap-southeast-3"
+         - "us-east-1"
+         - "us-east-2"
+         - "cn-northwest-1"
+         - "us-isob-east-1"
+         - "aws-global"
+         - "aws-cn-global"
+         - "aws-us-gov-global"
+         - "aws-iso-global"
+         - "aws-iso-b-global"
+        title: "AWS Region"
+        type: "string"
         x-descriptors:
-        - urn:keda:metadata:awsRegion
-        - urn:keda:required
-        enum: ["ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-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-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "a [...]
+         - "urn:keda:metadata:awsRegion"
+         - "urn:keda:required"
       autoCreateQueue:
-        title: Autocreate Queue
-        description: Setting the autocreation of the SQS queue. 
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "Setting the autocreation of the SQS queue."
+        title: "Autocreate Queue"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       amazonAWSHost:
-        title: AWS Host
-        description: The hostname of the Amazon AWS cloud. 
-        type: string
-        default: amazonaws.com
+        default: "amazonaws.com"
+        description: "The hostname of the Amazon AWS cloud."
+        title: "AWS Host"
+        type: "string"
       protocol:
-        title: Protocol
-        description: The underlying protocol used to communicate with SQS
-        type: string
-        example: http or https
-        default: https
+        default: "https"
+        description: "The underlying protocol used to communicate with SQS"
+        example: "http or https"
+        title: "Protocol"
+        type: "string"
       queueURL:
-        title: Queue URL
-        description: The full SQS Queue URL (required if using KEDA)
-        type: string
+        description: "The full SQS Queue URL (required if using KEDA)"
+        title: "Queue URL"
+        type: "string"
         x-descriptors:
-        - urn:keda:metadata:queueURL
-        - urn:keda:required
+         - "urn:keda:metadata:queueURL"
+         - "urn:keda:required"
       useDefaultCredentialsProvider:
-        title: Default Credentials Provider
-        description: If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).
-        type: boolean
-        x-descriptors:
-        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "If true, the SQS client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key)."
+        title: "Default Credentials Provider"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       uriEndpointOverride:
-        title: Overwrite Endpoint URI
-        description: The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.
-        type: string
+        description: "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
+        title: "Overwrite Endpoint URI"
+        type: "string"
       overrideEndpoint:
-        title: Endpoint Overwrite
-        description: Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.
-        type: boolean
-        x-descriptors:
-          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option."
+        title: "Endpoint Overwrite"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
       delay:
-        title: Delay
-        description: The number of milliseconds before the next poll of the selected stream
-        type: integer
         default: 500
+        description: "The number of milliseconds before the next poll of the selected stream"
+        title: "Delay"
+        type: "integer"
       greedy:
-        title: Greedy Scheduler
-        description: If greedy is enabled, then the polling will happen immediately again, if the previous run polled 1 or more messages.
-        type: boolean
-        x-descriptors:
-          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
         default: false
+        description: "If greedy is enabled, then the polling will happen immediately again, if the previous run polled 1 or more messages."
+        title: "Greedy Scheduler"
+        type: "boolean"
+        x-descriptors:
+         - "urn:alm:descriptor:com.tectonic.ui:checkbox"
+    required:
+     - "queueNameOrArn"
+     - "region"
+    title: "AWS SQS Source"
+    type: "object"
   dependencies:
-    - "camel:core"
-    - "camel:aws2-sqs"
-    - "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
-    - "camel:kamelet"
+   - "camel:core"
+   - "camel:aws2-sqs"
+   - "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
+   - "camel:kamelet"
   template:
     beans:
-      - name: renameHeaders
-        type: "#class:org.apache.camel.kamelets.utils.headers.DuplicateNamingHeaders"
-        property:
-          - key: prefix
-            value: 'CamelAwsSqs'
-          - key: renamingPrefix
-            value: 'aws.sqs.'
-          - key: mode
-            value: 'filtering'
-          - key: selectedHeaders
-            value: 'CamelAwsSqsReceiptHandle,CamelAwsSqsMessageId'
+     -
+      name: "renameHeaders"
+      type: "#class:org.apache.camel.kamelets.utils.headers.DuplicateNamingHeaders"
+      property:
+       -
+        key: "prefix"
+        value: "CamelAwsSqs"
+       -
+        key: "renamingPrefix"
+        value: "aws.sqs."
+       -
+        key: "mode"
+        value: "filtering"
+       -
+        key: "selectedHeaders"
+        value: "CamelAwsSqsReceiptHandle,CamelAwsSqsMessageId"
     from:
       uri: "aws2-sqs:{{queueNameOrArn}}"
       parameters:
@@ -172,6 +212,8 @@ spec:
         delay: "{{delay}}"
         greedy: "{{greedy}}"
       steps:
-      - process:
+       -
+        process:
           ref: "{{renameHeaders}}"
-      - to: "kamelet:sink"
+       -
+        to: "kamelet:sink"
diff --git a/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/EnrichKameletsMojo.java b/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/EnrichKameletsMojo.java
index eec0749f..b35d8e3f 100644
--- a/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/EnrichKameletsMojo.java
+++ b/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/EnrichKameletsMojo.java
@@ -19,10 +19,12 @@ package org.apache.camel.kamelets.maven.plugin;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
+import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator;
 import io.fabric8.camelk.v1alpha1.Kamelet;
 import org.apache.camel.catalog.DefaultCamelCatalog;
 import org.apache.camel.kamelets.catalog.KameletsCatalog;
 import org.apache.camel.tooling.model.ComponentModel;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -31,18 +33,15 @@ import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 
+import java.io.BufferedOutputStream;
+import java.io.DataOutputStream;
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Arrays;
+import java.io.OutputStream;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Copy the properties from a source POM to a different destination POM for syncing purposes.
@@ -68,7 +67,25 @@ public class EnrichKameletsMojo extends AbstractMojo {
     @Parameter(property = "kamelets.failOnError", defaultValue = "true")
     private boolean failOnError = true;
 
-    private static final ObjectMapper MAPPER = new ObjectMapper(new YAMLFactory()).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+    private static final String license = "# ---------------------------------------------------------------------------\n" +
+            "# Licensed to the Apache Software Foundation (ASF) under one or more\n" +
+            "# contributor license agreements.  See the NOTICE file distributed with\n" +
+            "# this work for additional information regarding copyright ownership.\n" +
+            "# The ASF licenses this file to You under the Apache License, Version 2.0\n" +
+            "# (the \"License\"); you may not use this file except in compliance with\n" +
+            "# the License.  You may obtain a copy of the License at\n" +
+            "#\n" +
+            "#      http://www.apache.org/licenses/LICENSE-2.0\n" +
+            "#\n" +
+            "# Unless required by applicable law or agreed to in writing, software\n" +
+            "# distributed under the License is distributed on an \"AS IS\" BASIS,\n" +
+            "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" +
+            "# See the License for the specific language governing permissions and\n" +
+            "# limitations under the License.\n" +
+            "# ---------------------------------------------------------------------------";
+
+    private static final ObjectMapper MAPPER = new ObjectMapper(new YAMLFactory().configure(YAMLGenerator.Feature.SPLIT_LINES, false)
+                        .configure(YAMLGenerator.Feature.INDENT_ARRAYS, true)).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
 
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
@@ -82,18 +99,14 @@ public class EnrichKameletsMojo extends AbstractMojo {
                 try {
                     Kamelet local = MAPPER.readValue(file, Kamelet.class);
                     if (!(local.getMetadata().getLabels().get("camel.apache.org/kamelet.type").equalsIgnoreCase("action"))) {
+                        String camelType = determineCamelType(local);
                         String kameletName = local.getMetadata().getName();
                         int lastIndex = kameletName.lastIndexOf("-");
-                        String schemeName = local.getMetadata().getName().substring(0, lastIndex);
+                        String prefixName = local.getMetadata().getName().substring(0, lastIndex);
                         Map<String, Object> selectedHeaders = new HashMap<>();
-                        if (schemeName.equalsIgnoreCase("aws-s3")) {
-                            List<ComponentModel.EndpointHeaderModel> headers = cc.componentModel("aws2-s3").getEndpointHeaders();
-                            for (ComponentModel.EndpointHeaderModel e : headers
-                            ) {
-                                selectedHeaders.put(e.getName(), e.getDescription());
-                            }
-                            local.getMetadata().getAdditionalProperties().put("Headers", selectedHeaders);
-                            MAPPER.writeValue(file, local);
+                        String schemeName = enumValue(prefixName);
+                        if (ObjectHelper.isNotEmpty(schemeName)) {
+                            writeHeaders(cc, file, local, camelType, selectedHeaders, schemeName);
                         }
                     }
                 } catch (IOException e) {
@@ -103,4 +116,38 @@ public class EnrichKameletsMojo extends AbstractMojo {
             }
         }
     }
+
+    private String determineCamelType(Kamelet local) {
+        String camelType;
+        String kameletType = local.getMetadata().getLabels().get("camel.apache.org/kamelet.type");
+        if (kameletType.equalsIgnoreCase("sink")) {
+            camelType = "producer"; } else {
+            camelType = "consumer"; }
+        return camelType;
+    }
+
+    private void writeHeaders(DefaultCamelCatalog cc, File file, Kamelet local, String camelType, Map<String, Object> selectedHeaders, String schemeName) throws IOException {
+        List<ComponentModel.EndpointHeaderModel> headers = cc.componentModel(schemeName).getEndpointHeaders();
+        if (ObjectHelper.isNotEmpty(headers)) {
+            for (ComponentModel.EndpointHeaderModel e : headers) {
+                if (ObjectHelper.isEmpty(e.getLabel()) || e.getLabel().equalsIgnoreCase(camelType)) {
+                    selectedHeaders.put(e.getName(), e.getDescription());
+                }
+            }
+            local.getMetadata().getAdditionalProperties().put("headers", selectedHeaders);
+            FileOutputStream fos = new FileOutputStream(file.getPath());
+            OutputStream outStream = new DataOutputStream(new BufferedOutputStream(fos));
+            String kameletValue = MAPPER.writeValueAsString(local);
+            outStream.write(license.getBytes());
+            outStream.write(kameletValue.getBytes());
+            outStream.close();
+        }
+    }
+
+    private String enumValue(String prefix){
+            for (KameletPrefixSchemeEnum c : KameletPrefixSchemeEnum.values()) {
+                if (c.prefix.equals(prefix)) return c.label;
+            }
+            return null;
+        }
     }
diff --git a/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/KameletPrefixSchemeEnum.java b/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/KameletPrefixSchemeEnum.java
new file mode 100644
index 00000000..9952ce0c
--- /dev/null
+++ b/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/KameletPrefixSchemeEnum.java
@@ -0,0 +1,43 @@
+/*
+ * 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.kamelets.maven.plugin;
+
+public enum KameletPrefixSchemeEnum {
+    aws_cloudwatch("aws-s3","aws2-cw"),
+    aws_ddb("aws-ddb","aws2-ddb"),
+    aws_ddb_streams("aws-ddb","aws2-ddbstream"),
+    aws_ec2("aws-ec2","aws2-ec2"),
+    aws_eventbridge("aws-eventbridge","aws2-eventbridge"),
+    aws_lambda("aws-lambda","aws2-lambda"),
+    aws_redshift("aws-redshift","sql"),
+    aws_s3("aws-s3","aws2-s3"),
+    aws_secrets_manager("aws-secrets-manager","aws-secrets-manager"),
+    aws_ses("aws-ses","aws2-ses"),
+    aws_sns("aws-sns","aws2-sns"),
+    aws_sns_fifo("aws-sns-fifo","aws2-sns"),
+    aws_sqs("aws-sqs","aws2-sqs"),
+    aws_sqs_batch("aws-sqs-batch","aws2-sqs"),
+    aws_sqs_fifo("aws-sqs-fifo","aws2-sqs");;
+
+    public final String label;
+    public final String prefix;
+
+    private KameletPrefixSchemeEnum(String prefix, String label) {
+        this.prefix = prefix;
+        this.label = label;
+    }
+}