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

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

commit bd44f0422a0291e449fd411c775983f6232a0c8a
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Feb 25 08:19:22 2021 +0100

    CAMEL-16115 - Remove Camel-AWS-* components - AWS-S3
---
 .../org/apache/camel/catalog/components.properties |   1 -
 .../apache/camel/catalog/components/aws-s3.json    | 128 -----
 .../org/apache/camel/catalog/docs.properties       |   1 -
 .../camel/catalog/docs/aws-s3-component.adoc       | 553 --------------------
 .../component/ComponentsBuilderFactory.java        |   2 +-
 .../src/generated/resources/metadata.json          |  23 -
 .../builder/endpoint/EndpointBuilderFactory.java   |   1 -
 .../camel/builder/endpoint/EndpointBuilders.java   |   1 -
 .../builder/endpoint/StaticEndpointBuilders.java   |   2 +-
 docs/components/modules/ROOT/nav.adoc              |   1 -
 .../modules/ROOT/pages/aws-s3-component.adoc       | 555 ---------------------
 11 files changed, 2 insertions(+), 1266 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index 6848cd5..507c780 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -18,7 +18,6 @@ atomix-queue
 atomix-set
 atomix-value
 avro
-aws-s3
 aws-swf
 aws2-athena
 aws2-cw
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-s3.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-s3.json
deleted file mode 100644
index f919a34..0000000
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-s3.json
+++ /dev/null
@@ -1,128 +0,0 @@
-{
-  "component": {
-    "kind": "component",
-    "name": "aws-s3",
-    "title": "AWS S3 Storage Service",
-    "description": "Store and retrieve objects from AWS S3 Storage Service.",
-    "deprecated": true,
-    "deprecatedSince": "3.8.0",
-    "firstVersion": "2.8.0",
-    "label": "cloud,file",
-    "javaType": "org.apache.camel.component.aws.s3.S3Component",
-    "supportLevel": "Stable",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-aws-s3",
-    "version": "3.9.0-SNAPSHOT",
-    "scheme": "aws-s3",
-    "extendsScheme": "",
-    "syntax": "aws-s3:\/\/bucketNameOrArn",
-    "async": false,
-    "api": false,
-    "consumerOnly": false,
-    "producerOnly": false,
-    "lenientProperties": false
-  },
-  "componentProperties": {
-    "amazonS3Client": { "kind": "property", "displayName": "Amazon S3 Client", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "com.amazonaws.services.s3.AmazonS3", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Reference to a 
com.amazonaws.services.s3.AmazonS3 in the registry." },
-    "autoCreateBucket": { "kind": "property", "displayName": "Auto Create 
Bucket", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Setting the autocreation of the bucket" },
-    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover 
Client", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Setting the autoDiscoverClient mechanism, if 
true, the component will look for a client instance [...]
-    "configuration": { "kind": "property", "displayName": "Configuration", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.aws.s3.S3Configuration", "deprecated": 
false, "autowired": false, "secret": false, "description": "The component 
configuration" },
-    "endpointConfiguration": { "kind": "property", "displayName": "Endpoint 
Configuration", "group": "common", "label": "", "required": false, "type": 
"object", "javaType": 
"com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Endpoint Configuration" },
-    "pathStyleAccess": { "kind": "property", "displayName": "Path Style 
Access", "group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Whether or not the S3 client should use path 
style access" },
-    "policy": { "kind": "property", "displayName": "Policy", "group": 
"common", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "The policy for this 
queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() 
method." },
-    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": 
"common", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "To define a proxy host 
when instantiating the S3 client" },
-    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": 
"common", "label": "", "required": false, "type": "integer", "javaType": 
"java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "Specify a proxy port to 
be used inside the client definition." },
-    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"HTTPS", "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when instantiating 
the S3 client" },
-    "region": { "kind": "property", "displayName": "Region", "group": 
"common", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "The region in which S3 
client needs to work. When using this parameter, the configuration will expect 
the capitalized name of the region (for  [...]
-    "useIAMCredentials": { "kind": "property", "displayName": "Use 
IAMCredentials", "group": "common", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load credentials on an EC2 instance or to expect static crede [...]
-    "encryptionMaterials": { "kind": "property", "displayName": "Encryption 
Materials", "group": "common (advanced)", "label": "common,advanced", 
"required": false, "type": "object", "javaType": 
"com.amazonaws.services.s3.model.EncryptionMaterials", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The encryption materials to use in case of 
Symmetric\/ [...]
-    "useEncryption": { "kind": "property", "displayName": "Use Encryption", 
"group": "common (advanced)", "label": "common,advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define if encryption must be used or not" },
-    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Allows for bridging the 
consumer to the Camel routing Error Handler, which mean any exceptions occurred 
while the consumer is trying to pickup incoming messages, or the likes, will 
now be processed as a me [...]
-    "deleteAfterRead": { "kind": "property", "displayName": "Delete After 
Read", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Delete objects from S3 after they have been 
retrieved. The delete is only performed if the Exchang [...]
-    "delimiter": { "kind": "property", "displayName": "Delimiter", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The delimiter which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are intereste [...]
-    "doneFileName": { "kind": "property", "displayName": "Done File Name", 
"group": "consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "If provided, Camel will only consume files if 
a done file exists." },
-    "fileName": { "kind": "property", "displayName": "File Name", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "To get the object from the bucket with the 
given file name" },
-    "includeBody": { "kind": "property", "displayName": "Include Body", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "If it is true, the exchange body will be set 
to a stream to the contents of the file. If false, the headers [...]
-    "prefix": { "kind": "property", "displayName": "Prefix", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in." },
-    "autocloseBody": { "kind": "property", "displayName": "Autoclose Body", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "If this option is true 
and includeBody is true, then the S3Object.close() method wi [...]
-    "deleteAfterWrite": { "kind": "property", "displayName": "Delete After 
Write", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Delete file object after the S3 file has been 
uploaded" },
-    "keyName": { "kind": "property", "displayName": "Key Name", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Setting the key name for an element in the 
bucket through endpoint parameter" },
-    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Whether the producer 
should be started lazy (on the first message). By starting lazy you can use 
this to allow CamelContext and routes to startup in situations where a producer 
may otherwise fail during star [...]
-    "multiPartUpload": { "kind": "property", "displayName": "Multi Part 
Upload", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "If it is true, camel will upload the file with 
multi part format, the part size is decided by the [...]
-    "operation": { "kind": "property", "displayName": "Operation", "group": 
"producer", "label": "producer", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.aws.s3.S3Operations", "enum": [ 
"copyObject", "deleteBucket", "listBuckets", "downloadLink" ], "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The operation to do in  [...]
-    "partSize": { "kind": "property", "displayName": "Part Size", "group": 
"producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 26214400, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Setup the partSize which is used in multi part 
upload, the default size is 25M." },
-    "serverSideEncryption": { "kind": "property", "displayName": "Server Side 
Encryption", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Sets the server-side encryption algorithm when 
encrypting the object using AWS-managed keys. For examp [...]
-    "storageClass": { "kind": "property", "displayName": "Storage Class", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request." },
-    "awsKMSKeyId": { "kind": "property", "displayName": "Aws KMSKey Id", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define the id of KMS key to use in case KMS is 
enabled" },
-    "useAwsKMS": { "kind": "property", "displayName": "Use Aws KMS", "group": 
"producer (advanced)", "label": "producer,advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define if KMS must be used or not" },
-    "accelerateModeEnabled": { "kind": "property", "displayName": "Accelerate 
Mode Enabled", "group": " advanced", "label": "common, advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "Define if Accelerate 
Mode enabled is true or false" },
-    "chunkedEncodingDisabled": { "kind": "property", "displayName": "Chunked 
Encoding Disabled", "group": " advanced", "label": "common, advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "Define if disabled 
Chunked Encoding is true or false" },
-    "dualstackEnabled": { "kind": "property", "displayName": "Dualstack 
Enabled", "group": " advanced", "label": "common, advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define if Dualstack enabled is true or false" 
},
-    "forceGlobalBucketAccessEnabled": { "kind": "property", "displayName": 
"Force Global Bucket Access Enabled", "group": " advanced", "label": "common, 
advanced", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define if Force Global Bucket Access enabled 
is true or  [...]
-    "payloadSigningEnabled": { "kind": "property", "displayName": "Payload 
Signing Enabled", "group": " advanced", "label": "common, advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "Define if Payload 
Signing enabled is true or false" },
-    "autowiredEnabled": { "kind": "property", "displayName": "Autowired 
Enabled", "group": "advanced", "label": "advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether autowiring is 
enabled. This is used for automatic autowiring options (the option must be 
marked as autowired) by looking up in the registry to find if there is a single 
instance of matching type, which t [...]
-    "accessKey": { "kind": "property", "displayName": "Access Key", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" }
-  },
-  "properties": {
-    "bucketNameOrArn": { "kind": "path", "displayName": "Bucket Name Or Arn", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Bucket name or ARN" },
-    "amazonS3Client": { "kind": "parameter", "displayName": "Amazon S3 
Client", "group": "common", "label": "", "required": false, "type": "object", 
"javaType": "com.amazonaws.services.s3.AmazonS3", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Reference to a 
com.amazonaws.services.s3.AmazonS3 in the registry." },
-    "autoCreateBucket": { "kind": "parameter", "displayName": "Auto Create 
Bucket", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Setting the autocreation of the bucket" },
-    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover 
Client", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Setting the autoDiscoverClient mechanism, if 
true, the component will look for a client instanc [...]
-    "endpointConfiguration": { "kind": "parameter", "displayName": "Endpoint 
Configuration", "group": "common", "label": "", "required": false, "type": 
"object", "javaType": 
"com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Endpoint Configuration" },
-    "pathStyleAccess": { "kind": "parameter", "displayName": "Path Style 
Access", "group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Whether or not the S3 client should use path 
style access" },
-    "policy": { "kind": "parameter", "displayName": "Policy", "group": 
"common", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "The policy for this 
queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() 
method." },
-    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": 
"common", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "To define a proxy host 
when instantiating the S3 client" },
-    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": 
"common", "label": "", "required": false, "type": "integer", "javaType": 
"java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "Specify a proxy port to 
be used inside the client definition." },
-    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"HTTPS", "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "To define a proxy protocol when instantiating 
the S3 client" },
-    "region": { "kind": "parameter", "displayName": "Region", "group": 
"common", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "The region in which S3 
client needs to work. When using this parameter, the configuration will expect 
the capitalized name of the region (for [...]
-    "useIAMCredentials": { "kind": "parameter", "displayName": "Use 
IAMCredentials", "group": "common", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Set whether the S3 client should expect to 
load credentials on an EC2 instance or to expect static cred [...]
-    "encryptionMaterials": { "kind": "parameter", "displayName": "Encryption 
Materials", "group": "common (advanced)", "label": "common,advanced", 
"required": false, "type": "object", "javaType": 
"com.amazonaws.services.s3.model.EncryptionMaterials", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The encryption materials to use in case of 
Symmetric\ [...]
-    "useEncryption": { "kind": "parameter", "displayName": "Use Encryption", 
"group": "common (advanced)", "label": "common,advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define if encryption must be used or not" },
-    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Allows for bridging the 
consumer to the Camel routing Error Handler, which mean any exceptions occurred 
while the consumer is trying to pickup incoming messages, or the likes, will 
now be processed as a m [...]
-    "deleteAfterRead": { "kind": "parameter", "displayName": "Delete After 
Read", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Delete objects from S3 after they have been 
retrieved. The delete is only performed if the Exchan [...]
-    "delimiter": { "kind": "parameter", "displayName": "Delimiter", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The delimiter which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interest [...]
-    "doneFileName": { "kind": "parameter", "displayName": "Done File Name", 
"group": "consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "If provided, Camel will only consume files if 
a done file exists." },
-    "fileName": { "kind": "parameter", "displayName": "File Name", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "To get the object from the bucket with the 
given file name" },
-    "includeBody": { "kind": "parameter", "displayName": "Include Body", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "If it is true, the exchange body will be set 
to a stream to the contents of the file. If false, the header [...]
-    "maxConnections": { "kind": "parameter", "displayName": "Max Connections", 
"group": "consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 60, "description": "Set the maxConnections parameter in the S3 
client configuration" },
-    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages 
Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "description": "Gets the maximum number of 
messages as a limit to poll at each polling. Gets the maximum number of 
messages as a limit to poll at each polling. The default value is 10. Use 0 or 
a negative number to set it as u [...]
-    "prefix": { "kind": "parameter", "displayName": "Prefix", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in." },
-    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send 
Empty Message When Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": "If 
the polling consumer did not poll any files, you can enable this option to send 
an empty message (no body) instead." },
-    "autocloseBody": { "kind": "parameter", "displayName": "Autoclose Body", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "If this option is true 
and includeBody is true, then the S3Object.close() method w [...]
-    "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By default the 
con [...]
-    "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the exchange pattern when the consumer creates an 
exchange." },
-    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, 
"autowired": false, "secret": false, "description": "A pluggable 
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your 
custom implementation to control error handling usually occurred during the 
poll operation  [...]
-    "deleteAfterWrite": { "kind": "parameter", "displayName": "Delete After 
Write", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Delete file object after the S3 file has been 
uploaded" },
-    "keyName": { "kind": "parameter", "displayName": "Key Name", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Setting the key name for an element in the 
bucket through endpoint parameter" },
-    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Whether the producer 
should be started lazy (on the first message). By starting lazy you can use 
this to allow CamelContext and routes to startup in situations where a producer 
may otherwise fail during sta [...]
-    "multiPartUpload": { "kind": "parameter", "displayName": "Multi Part 
Upload", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "If it is true, camel will upload the file with 
multi part format, the part size is decided by th [...]
-    "operation": { "kind": "parameter", "displayName": "Operation", "group": 
"producer", "label": "producer", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.aws.s3.S3Operations", "enum": [ 
"copyObject", "deleteBucket", "listBuckets", "downloadLink" ], "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The operation to do in [...]
-    "partSize": { "kind": "parameter", "displayName": "Part Size", "group": 
"producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 26214400, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Setup the partSize which is used in multi part 
upload, the default size is 25M." },
-    "serverSideEncryption": { "kind": "parameter", "displayName": "Server Side 
Encryption", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Sets the server-side encryption algorithm when 
encrypting the object using AWS-managed keys. For exam [...]
-    "storageClass": { "kind": "parameter", "displayName": "Storage Class", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request." },
-    "awsKMSKeyId": { "kind": "parameter", "displayName": "Aws KMSKey Id", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define the id of KMS key to use in case KMS is 
enabled" },
-    "useAwsKMS": { "kind": "parameter", "displayName": "Use Aws KMS", "group": 
"producer (advanced)", "label": "producer,advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define if KMS must be used or not" },
-    "accelerateModeEnabled": { "kind": "parameter", "displayName": "Accelerate 
Mode Enabled", "group": " advanced", "label": "common, advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "Define if Accelerate 
Mode enabled is true or false" },
-    "chunkedEncodingDisabled": { "kind": "parameter", "displayName": "Chunked 
Encoding Disabled", "group": " advanced", "label": "common, advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "Define if disabled 
Chunked Encoding is true or false" },
-    "dualstackEnabled": { "kind": "parameter", "displayName": "Dualstack 
Enabled", "group": " advanced", "label": "common, advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define if Dualstack enabled is true or false" 
},
-    "forceGlobalBucketAccessEnabled": { "kind": "parameter", "displayName": 
"Force Global Bucket Access Enabled", "group": " advanced", "label": "common, 
advanced", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Define if Force Global Bucket Access enabled 
is true or [...]
-    "payloadSigningEnabled": { "kind": "parameter", "displayName": "Payload 
Signing Enabled", "group": " advanced", "label": "common, advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", 
"configurationField": "configuration", "description": "Define if Payload 
Signing enabled is true or false" },
-    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff 
Error Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"autowired": false, "secret": false, "description": "The number of subsequent 
error polls (failed due some error) that should happen before the 
backoffMultipler should kick-in." },
-    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff 
Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"autowired": false, "secret": false, "description": "The number of subsequent 
idle polls that should happen before the backoffMultipler should kick-in." },
-    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff 
Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "description": "To let the scheduled polling consumer 
backoff if there has been a number of subsequent idles\/errors in a row. The 
multiplier is then the number of polls that will be skipped before the next 
actual attempt is happening agai [...]
-    "delay": { "kind": "parameter", "displayName": "Delay", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 500, "description": "Milliseconds before the 
next poll." },
-    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "If greedy is enabled, 
then the ScheduledPollConsumer will run immediately again, if the previous run 
polled 1 or more messages." },
-    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 1000, "description": "Milliseconds before the 
first poll starts." },
-    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "description": "Specifies a maximum limit 
of number of fires. So if you set it to 1, the scheduler will only fire once. 
If you set it to 5, it will only fire five times. A value of zero or negative 
means fire forever." },
-    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging 
Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, 
"type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ 
"TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "TRACE", "description": 
"The consumer logs a start\/complete log line when it polls. This option allows 
you to configure the logging level  [...]
-    "scheduledExecutorService": { "kind": "parameter", "displayName": 
"Scheduled Executor Service", "group": "scheduler", "label": 
"consumer,scheduler", "required": false, "type": "object", "javaType": 
"java.util.concurrent.ScheduledExecutorService", "deprecated": false, 
"autowired": false, "secret": false, "description": "Allows for configuring a 
custom\/shared thread pool to use for the consumer. By default each consumer 
has its own single threaded thread pool." },
-    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"object", "javaType": "java.lang.Object", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "none", "description": "To use a cron 
scheduler from either camel-spring or camel-quartz component. Use value spring 
or quartz for built in scheduler" },
-    "schedulerProperties": { "kind": "parameter", "displayName": "Scheduler 
Properties", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "object", "javaType": "java.util.Map<java.lang.String, 
java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": 
false, "autowired": false, "secret": false, "description": "To configure 
additional properties when using a custom scheduler or any of the Quartz, 
Spring based scheduler." },
-    "startScheduler": { "kind": "parameter", "displayName": "Start Scheduler", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether the scheduler 
should be auto started." },
-    "timeUnit": { "kind": "parameter", "displayName": "Time Unit", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", 
"MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"MILLISECONDS", "description": "Time unit for initialDelay and delay options." 
},
-    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Controls if fixed delay 
or fixed rate is used. See ScheduledExecutorService in JDK for details." },
-    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.aws.s3.S3Configuration", "configurationField": 
"configuration", "description": "Amazon AWS Secret Key" }
-  }
-}
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
index 7df465c..877381d 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
@@ -22,7 +22,6 @@ atomix-value-component
 attachments
 avro-component
 avro-dataformat
-aws-s3-component
 aws-swf-component
 aws-xray
 aws2-athena-component
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-s3-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-s3-component.adoc
deleted file mode 100644
index 738a334..0000000
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-s3-component.adoc
+++ /dev/null
@@ -1,553 +0,0 @@
-[[aws-s3-component]]
-= AWS S3 Storage Service Component (deprecated)
-:docTitle: AWS S3 Storage Service
-:artifactId: camel-aws-s3
-:description: Store and retrieve objects from AWS S3 Storage Service.
-:since: 2.8
-:supportLevel: Stable-deprecated
-:deprecated: *deprecated*
-:component-header: Both producer and consumer are supported
-include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws-s3.adoc[opts=optional]
-//Manually maintained attributes
-:group: AWS
-
-*Since Camel {since}*
-
-*{component-header}*
-
-The S3 component supports storing and retrieving objects from/to
-https://aws.amazon.com/s3[Amazon's S3] service.
-
-Prerequisites
-
-You must have a valid Amazon Web Services developer account, and be
-signed up to use Amazon S3. More information is available at
-https://aws.amazon.com/s3[Amazon S3].
-
-== URI Format
-
-[source,java]
-------------------------------
-aws-s3://[bucketName|arn][?options]
-------------------------------
-
-The bucket will be created if it don't already exists. +
- You can append query options to the URI in the following format,
-?options=value&option2=value&...
-
-For example in order to read file `hello.txt` from bucket `helloBucket`, use 
the following snippet:
-
-[source,java]
---------------------------------------------------------------------------------
-from("aws-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt")
-  .to("file:/var/downloaded");
---------------------------------------------------------------------------------
-
-
-== URI Options
-
-
-// component options: START
-The AWS S3 Storage Service component supports 40 options, which are listed 
below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *amazonS3Client* (common) | Reference to a 
com.amazonaws.services.s3.AmazonS3 in the registry. |  | AmazonS3
-| *autoCreateBucket* (common) | Setting the autocreation of the bucket | true 
| boolean
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if 
true, the component will look for a client instance in the registry 
automatically otherwise it will skip that checking. | true | boolean
-| *configuration* (common) | The component configuration |  | S3Configuration
-| *endpointConfiguration* (common) | Amazon AWS Endpoint Configuration |  | 
EndpointConfiguration
-| *pathStyleAccess* (common) | Whether or not the S3 client should use path 
style access | false | boolean
-| *policy* (common) | The policy for this queue to set in the 
com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method. |  | String
-| *proxyHost* (common) | To define a proxy host when instantiating the S3 
client |  | String
-| *proxyPort* (common) | Specify a proxy port to be used inside the client 
definition. |  | Integer
-| *proxyProtocol* (common) | To define a proxy protocol when instantiating the 
S3 client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | 
Protocol
-| *region* (common) | The region in which S3 client needs to work. When using 
this parameter, the configuration will expect the capitalized name of the 
region (for example AP_EAST_1) You'll need to use the name 
Regions.EU_WEST_1.name() |  | String
-| *useIAMCredentials* (common) | Set whether the S3 client should expect to 
load credentials on an EC2 instance or to expect static credentials to be 
passed in. | false | boolean
-| *encryptionMaterials* (common) | The encryption materials to use in case of 
Symmetric/Asymmetric client usage |  | EncryptionMaterials
-| *useEncryption* (common) | Define if encryption must be used or not | false 
| boolean
-| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
-| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been 
retrieved. The delete is only performed if the Exchange is committed. If a 
rollback occurs, the object is not deleted. If this option is false, then the 
same objects will be retrieve over and over again on the polls. Therefore you 
need to use the Idempotent Consumer EIP in the route to filter out duplicates. 
You can filter using the S3Constants#BUCKET_NAME and S3Constants#KEY headers, 
or only the S3Constants#KEY [...]
-| *delimiter* (consumer) | The delimiter which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
-| *doneFileName* (consumer) | If provided, Camel will only consume files if a 
done file exists. |  | String
-| *fileName* (consumer) | To get the object from the bucket with the given 
file name |  | String
-| *includeBody* (consumer) | If it is true, the exchange body will be set to a 
stream to the contents of the file. If false, the headers will be set with the 
S3 object metadata, but the body will be null. This option is strongly related 
to autocloseBody option. In case of setting includeBody to true and 
autocloseBody to false, it will be up to the caller to close the S3Object 
stream. Setting autocloseBody to true, will close the S3Object stream 
automatically. | true | boolean
-| *prefix* (consumer) | The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
-| *autocloseBody* (consumer) | If this option is true and includeBody is true, 
then the S3Object.close() method will be called on exchange completion. This 
option is strongly related to includeBody option. In case of setting 
includeBody to true and autocloseBody to false, it will be up to the caller to 
close the S3Object stream. Setting autocloseBody to true, will close the 
S3Object stream automatically. | true | boolean
-| *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
-| *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy 
(on the first message). By starting lazy you can use this to allow CamelContext 
and routes to startup in situations where a producer may otherwise fail during 
starting and cause the route to fail being started. By deferring this startup 
to be lazy then the startup failure can be handled during routing messages via 
Camel's routing error handlers. Beware that when the first message is processed 
then creating and [...]
-| *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 4 enums and the value can be one of: copyObject, 
deleteBucket, listBuckets, downloadLink |  | S3Operations
-| *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
-| *serverSideEncryption* (producer) | Sets the server-side encryption 
algorithm when encrypting the object using AWS-managed keys. For example use 
AES256. |  | String
-| *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
-| *awsKMSKeyId* (producer) | Define the id of KMS key to use in case KMS is 
enabled |  | String
-| *useAwsKMS* (producer) | Define if KMS must be used or not | false | boolean
-| *accelerateModeEnabled* ( advanced) | Define if Accelerate Mode enabled is 
true or false | false | boolean
-| *chunkedEncodingDisabled* ( advanced) | Define if disabled Chunked Encoding 
is true or false | false | boolean
-| *dualstackEnabled* ( advanced) | Define if Dualstack enabled is true or 
false | false | boolean
-| *forceGlobalBucketAccessEnabled* ( advanced) | Define if Force Global Bucket 
Access enabled is true or false | false | boolean
-| *payloadSigningEnabled* ( advanced) | Define if Payload Signing enabled is 
true or false | false | boolean
-| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used 
for automatic autowiring options (the option must be marked as autowired) by 
looking up in the registry to find if there is a single instance of matching 
type, which then gets configured on the component. This can be used for 
automatic configuring JDBC data sources, JMS connection factories, AWS Clients, 
etc. | true | boolean
-| *accessKey* (security) | Amazon AWS Access Key |  | String
-| *secretKey* (security) | Amazon AWS Secret Key |  | String
-|===
-// component options: END
-
-
-
-
-
-
-
-
-
-
-
-// endpoint options: START
-The AWS S3 Storage Service endpoint is configured using URI syntax:
-
-----
-aws-s3://bucketNameOrArn
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (1 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *bucketNameOrArn* | *Required* Bucket name or ARN |  | String
-|===
-
-
-=== Query Parameters (58 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *amazonS3Client* (common) | Reference to a 
com.amazonaws.services.s3.AmazonS3 in the registry. |  | AmazonS3
-| *autoCreateBucket* (common) | Setting the autocreation of the bucket | true 
| boolean
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if 
true, the component will look for a client instance in the registry 
automatically otherwise it will skip that checking. | true | boolean
-| *endpointConfiguration* (common) | Amazon AWS Endpoint Configuration |  | 
EndpointConfiguration
-| *pathStyleAccess* (common) | Whether or not the S3 client should use path 
style access | false | boolean
-| *policy* (common) | The policy for this queue to set in the 
com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method. |  | String
-| *proxyHost* (common) | To define a proxy host when instantiating the S3 
client |  | String
-| *proxyPort* (common) | Specify a proxy port to be used inside the client 
definition. |  | Integer
-| *proxyProtocol* (common) | To define a proxy protocol when instantiating the 
S3 client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | 
Protocol
-| *region* (common) | The region in which S3 client needs to work. When using 
this parameter, the configuration will expect the capitalized name of the 
region (for example AP_EAST_1) You'll need to use the name 
Regions.EU_WEST_1.name() |  | String
-| *useIAMCredentials* (common) | Set whether the S3 client should expect to 
load credentials on an EC2 instance or to expect static credentials to be 
passed in. | false | boolean
-| *encryptionMaterials* (common) | The encryption materials to use in case of 
Symmetric/Asymmetric client usage |  | EncryptionMaterials
-| *useEncryption* (common) | Define if encryption must be used or not | false 
| boolean
-| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
-| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been 
retrieved. The delete is only performed if the Exchange is committed. If a 
rollback occurs, the object is not deleted. If this option is false, then the 
same objects will be retrieve over and over again on the polls. Therefore you 
need to use the Idempotent Consumer EIP in the route to filter out duplicates. 
You can filter using the S3Constants#BUCKET_NAME and S3Constants#KEY headers, 
or only the S3Constants#KEY [...]
-| *delimiter* (consumer) | The delimiter which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
-| *doneFileName* (consumer) | If provided, Camel will only consume files if a 
done file exists. |  | String
-| *fileName* (consumer) | To get the object from the bucket with the given 
file name |  | String
-| *includeBody* (consumer) | If it is true, the exchange body will be set to a 
stream to the contents of the file. If false, the headers will be set with the 
S3 object metadata, but the body will be null. This option is strongly related 
to autocloseBody option. In case of setting includeBody to true and 
autocloseBody to false, it will be up to the caller to close the S3Object 
stream. Setting autocloseBody to true, will close the S3Object stream 
automatically. | true | boolean
-| *maxConnections* (consumer) | Set the maxConnections parameter in the S3 
client configuration | 60 | int
-| *maxMessagesPerPoll* (consumer) | Gets the maximum number of messages as a 
limit to poll at each polling. Gets the maximum number of messages as a limit 
to poll at each polling. The default value is 10. Use 0 or a negative number to 
set it as unlimited. | 10 | int
-| *prefix* (consumer) | The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
-| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll 
any files, you can enable this option to send an empty message (no body) 
instead. | false | boolean
-| *autocloseBody* (consumer) | If this option is true and includeBody is true, 
then the S3Object.close() method will be called on exchange completion. This 
option is strongly related to includeBody option. In case of setting 
includeBody to true and autocloseBody to false, it will be up to the caller to 
close the S3Object stream. Setting autocloseBody to true, will close the 
S3Object stream automatically. | true | boolean
-| *exceptionHandler* (consumer) | To let the consumer use a custom 
ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this 
option is not in use. By default the consumer will deal with exceptions, that 
will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
-| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer 
creates an exchange. There are 3 enums and the value can be one of: InOnly, 
InOut, InOptionalOut |  | ExchangePattern
-| *pollStrategy* (consumer) | A pluggable 
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your 
custom implementation to control error handling usually occurred during the 
poll operation before an Exchange have been created and being routed in Camel. 
|  | PollingConsumerPollStrategy
-| *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
-| *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy 
(on the first message). By starting lazy you can use this to allow CamelContext 
and routes to startup in situations where a producer may otherwise fail during 
starting and cause the route to fail being started. By deferring this startup 
to be lazy then the startup failure can be handled during routing messages via 
Camel's routing error handlers. Beware that when the first message is processed 
then creating and [...]
-| *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 4 enums and the value can be one of: copyObject, 
deleteBucket, listBuckets, downloadLink |  | S3Operations
-| *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
-| *serverSideEncryption* (producer) | Sets the server-side encryption 
algorithm when encrypting the object using AWS-managed keys. For example use 
AES256. |  | String
-| *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
-| *awsKMSKeyId* (producer) | Define the id of KMS key to use in case KMS is 
enabled |  | String
-| *useAwsKMS* (producer) | Define if KMS must be used or not | false | boolean
-| *accelerateModeEnabled* ( advanced) | Define if Accelerate Mode enabled is 
true or false | false | boolean
-| *chunkedEncodingDisabled* ( advanced) | Define if disabled Chunked Encoding 
is true or false | false | boolean
-| *dualstackEnabled* ( advanced) | Define if Dualstack enabled is true or 
false | false | boolean
-| *forceGlobalBucketAccessEnabled* ( advanced) | Define if Force Global Bucket 
Access enabled is true or false | false | boolean
-| *payloadSigningEnabled* ( advanced) | Define if Payload Signing enabled is 
true or false | false | boolean
-| *backoffErrorThreshold* (scheduler) | The number of subsequent error polls 
(failed due some error) that should happen before the backoffMultipler should 
kick-in. |  | int
-| *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls 
that should happen before the backoffMultipler should kick-in. |  | int
-| *backoffMultiplier* (scheduler) | To let the scheduled polling consumer 
backoff if there has been a number of subsequent idles/errors in a row. The 
multiplier is then the number of polls that will be skipped before the next 
actual attempt is happening again. When this option is in use then 
backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | 
int
-| *delay* (scheduler) | Milliseconds before the next poll. | 500 | long
-| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer 
will run immediately again, if the previous run polled 1 or more messages. | 
false | boolean
-| *initialDelay* (scheduler) | Milliseconds before the first poll starts. | 
1000 | long
-| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So 
if you set it to 1, the scheduler will only fire once. If you set it to 5, it 
will only fire five times. A value of zero or negative means fire forever. | 0 
| long
-| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line 
when it polls. This option allows you to configure the logging level for that. 
There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, 
OFF | TRACE | LoggingLevel
-| *scheduledExecutorService* (scheduler) | Allows for configuring a 
custom/shared thread pool to use for the consumer. By default each consumer has 
its own single threaded thread pool. |  | ScheduledExecutorService
-| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring 
or camel-quartz component. Use value spring or quartz for built in scheduler | 
none | Object
-| *schedulerProperties* (scheduler) | To configure additional properties when 
using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
-| *startScheduler* (scheduler) | Whether the scheduler should be auto started. 
| true | boolean
-| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. There 
are 7 enums and the value can be one of: NANOSECONDS, MICROSECONDS, 
MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
-| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. 
See ScheduledExecutorService in JDK for details. | true | boolean
-| *accessKey* (security) | Amazon AWS Access Key |  | String
-| *secretKey* (security) | Amazon AWS Secret Key |  | String
-|===
-// endpoint options: END
-
-
-
-
-
-
-
-
-
-
-Required S3 component options
-
-You have to provide the amazonS3Client in the
-Registry or your accessKey and secretKey to access
-the https://aws.amazon.com/s3[Amazon's S3].
-
-== Batch Consumer
-
-This component implements the Batch Consumer.
-
-This allows you for instance to know how many messages exists in this
-batch and for instance let the Aggregator
-aggregate this number of messages.
-
-== Usage
-
-=== Message headers evaluated by the S3 producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsS3BucketName` |`String` |The bucket Name which this object will be 
stored or which will be used for the current operation
-
-|`CamelAwsS3BucketDestinationName` |`String` |The bucket Destination Name 
which will be used for the current operation
-
-|`CamelAwsS3ContentLength` |`Long` |The content length of this object.
-
-|`CamelAwsS3ContentType` |`String` |The content type of this object.
-
-|`CamelAwsS3ContentControl` |`String` |The content control of this object.
-
-|`CamelAwsS3ContentDisposition` |`String` |The content disposition of this 
object.
-
-|`CamelAwsS3ContentEncoding` |`String` |The content encoding of this object.
-
-|`CamelAwsS3ContentMD5` |`String` |The md5 checksum of this object.
-
-|`CamelAwsS3DestinationKey` |`String` |The Destination key which will be used 
for the current operation
-
-|`CamelAwsS3Key` |`String` |The key under which this object will be stored or 
which will be used for the current operation
-
-|`CamelAwsS3LastModified` |`java.util.Date` |The last modified timestamp of 
this object.
-
-|`CamelAwsS3Operation` |`String` |The operation to perform. Permitted values 
are copyObject, deleteObject, listBuckets, deleteBucket, downloadLink, 
listObjects
-
-|`CamelAwsS3StorageClass` |`String` |The storage class of this object.
-
-|`CamelAwsS3CannedAcl` |`String` |The canned acl that will be applied to the 
object. see
-`com.amazonaws.services.s3.model.CannedAccessControlList` for allowed
-values.
-
-|`CamelAwsS3Acl` |`com.amazonaws.services.s3.model.AccessControlList` |A well 
constructed Amazon S3 Access Control List object.
-see `com.amazonaws.services.s3.model.AccessControlList` for more details
-
-|`CamelAwsS3Headers` |`Map<String,String>` |Support to get or set custom 
objectMetadata headers.
-
-|`CamelAwsS3ServerSideEncryption` |String |Sets the server-side encryption 
algorithm when encrypting
-the object using AWS-managed keys. For example use AES256.
-
-|`CamelAwsS3VersionId` |`String` |The version Id of the object to be stored or 
returned from the current operation
-|=======================================================================
-
-=== Message headers set by the S3 producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-|`CamelAwsS3ETag` |`String` |The ETag value for the newly uploaded object.
-
-|`CamelAwsS3VersionId` |`String` |The *optional* version ID of the newly 
uploaded object.
-
-|`CamelAwsS3DownloadLinkExpiration` | `String` | The expiration (millis) of 
URL download link. The link will be stored into *CamelAwsS3DownloadLink* 
response header.
-
-|=======================================================================
-
-=== Message headers set by the S3 consumer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsS3Key` |`String` |The key under which this object is stored.
-
-|`CamelAwsS3BucketName` |`String` |The name of the bucket in which this object 
is contained.
-
-|`CamelAwsS3ETag` |`String` |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.
-
-|`CamelAwsS3LastModified` |`Date` |The value of the Last-Modified header, 
indicating the date and time at
-which Amazon S3 last recorded a modification to the associated object.
-
-|`CamelAwsS3VersionId` |`String` |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.
-
-|`CamelAwsS3ContentType` |`String` |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.
-
-|`CamelAwsS3ContentMD5` |`String` |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.
-
-|`CamelAwsS3ContentLength` |`Long` |The Content-Length HTTP header indicating 
the size of the associated
-object in bytes.
-
-|`CamelAwsS3ContentEncoding` |`String` |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.
-
-|`CamelAwsS3ContentDisposition` |`String` |The *optional* Content-Disposition 
HTTP header, which specifies
-presentational information such as the recommended filename for the
-object to be saved as.
-
-|`CamelAwsS3ContentControl` |`String` |The *optional* Cache-Control HTTP 
header which allows the user to
-specify caching behavior along the HTTP request/reply chain.
-
-|`CamelAwsS3ServerSideEncryption` |String |The server-side encryption 
algorithm when encrypting the
-object using AWS-managed keys.
-|=======================================================================
-
-=== S3 Producer operations
-
-Camel-AWS s3 component provides the following operation on the producer side:
-
-- copyObject
-- deleteObject
-- listBuckets
-- deleteBucket
-- downloadLink
-- listObjects
-- getObject (this will return an S3Object instance)
-- getObjectRange (this will return an S3Object instance)
-
-=== Advanced AmazonS3 configuration
-
-If your Camel Application is running behind a firewall or if you need to
-have more control over the `AmazonS3` instance configuration, you can
-create your own instance:
-
-[source,java]
---------------------------------------------------------------------------------------
-AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", 
"mySecretKey");
-
-ClientConfiguration clientConfiguration = new ClientConfiguration();
-clientConfiguration.setProxyHost("http://myProxyHost";);
-clientConfiguration.setProxyPort(8080);
-
-AmazonS3 client = new AmazonS3Client(awsCredentials, clientConfiguration);
-
-registry.bind("client", client);
---------------------------------------------------------------------------------------
-
-and refer to it in your Camel aws-s3 component configuration:
-
-[source,java]
---------------------------------------------------------------------------------
-from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
-.to("mock:result");
---------------------------------------------------------------------------------
-
-=== Use KMS with the S3 component
-
-To use AWS KMS to encrypt/decrypt data by using AWS infrastructure you can use 
the options introduced in 2.21.x like in the following example
-
-[source,java]
---------------------------------------------------------------------------------
-from("file:tmp/test?fileName=test.txt")
-     .setHeader(S3Constants.KEY, constant("testFile"))
-     
.to("aws-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
---------------------------------------------------------------------------------
-
-In this way you'll ask to S3, to use the KMS key 
3f0637ad-296a-3dfe-a796-e60654fb128c, to encrypt the file test.txt. When you'll 
ask to download this file, the decryption will be done directly before the 
download.
-
-=== Use "useIAMCredentials" with the s3 component
-
-To use AWS IAM credentials, you must first verify that the EC2 in which you 
are launching the Camel application on has an IAM role associated with it 
containing the appropriate policies attached to run effectively.
-Keep in mind that this feature should only be set to "true" on remote 
instances. To clarify even further, you must still use static credentials 
locally since IAM is an AWS specific component,
-but AWS environments should now be easier to manage. After this is implemented 
and understood, you can set the query parameter "useIAMCredentials" to "true" 
for AWS environments! To effectively toggle this
-on and off based on local and remote environments, you can consider enabling 
this query parameter with system environment variables. For example, your code 
could set the "useIAMCredentials" query parameter to "true",
-when the system environment variable called "isRemote" is set to true (there 
are many other ways to do this and this should act as a simple example). 
Although it doesn't take away the need for static credentials completely,
-using IAM credentials on AWS environments takes away the need to refresh on 
remote environments and adds a major security boost (IAM credentials are 
refreshed automatically every 6 hours and update when their
-policies are updated). This is the AWS recommended way to manage credentials 
and therefore should be used as often as possible.
-
-=== S3 Producer Operation examples
-
-- CopyObject: this operation copy an object from one bucket to a different one
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.BUCKET_DESTINATION_NAME, 
"camelDestinationBucket");
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
-          exchange.getIn().setHeader(S3Constants.DESTINATION_KEY, 
"camelDestinationKey");   
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=copyObject")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will copy the object with the name expressed in the header 
camelDestinationKey to the camelDestinationBucket bucket, from the bucket 
mycamelbucket.
-
-- DeleteObject: this operation deletes an object from a bucket
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey"); 
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteObject")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will delete the object camelKey from the bucket mycamelbucket.
-
-- ListBuckets: this operation list the buckets for this account in this region
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start")
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listBuckets")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will list the buckets for this account
-
-- DeleteBucket: this operation delete the bucket specified as URI parameter or 
header
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start")
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteBucket")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will delete the bucket mycamelbucket
-
-- DownloadLink: this operation create a download link for the file specified 
in the key header
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey"); 
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=downloadLink")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will create a downloadLink for the file camelKey in the bucket 
mycamelbucket
-
-- ListObjects: this operation list object in a specific bucket
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start")
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listObjects")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will list the objects in the mycamelbucket bucket
-
-- GetObject: this operation get a single object in a specific bucket
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey"); 
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObject")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will return an S3Object instance related to the camelKey object 
in mycamelbucket bucket.
-
-- GetObjectRange: this operation get a single object range in a specific bucket
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
-          exchange.getIn().setHeader(S3Constants.RANGE_START, "0");
-          exchange.getIn().setHeader(S3Constants.RANGE_END, "9");
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObjectRange")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will return an S3Object instance related to the camelKey object 
in mycamelbucket bucket, containing a the bytes from 0 to 9.
-
-== Bucket Autocreation
-
-With the option `autoCreateBucket` users are able to avoid the autocreation of 
an S3 Bucket in case it doesn't exist. The default for this option is `true`.
-If set to false any operation on a not-existent bucket in AWS won't be 
successful and an error will be returned.
-
-== Automatic detection of AmazonS3 client in registry
-
-The component is capable of detecting the presence of an AmazonS3 bean into 
the registry.
-If it's the only instance of that type it will be used as client and you won't 
have to define it as uri parameter, like the example above.
-This may be really useful for smarter configuration of the endpoint.
-
-== Moving stuff between a bucket and another bucket
-
-Some users like to consume stuff from a bucket and move the content in a 
different one without using the copyObject feature of this component.
-If this is case for you, don't forget to remove the bucketName header from the 
incoming exchange of the consumer, otherwise the file will be always 
overwritten on the same 
-original bucket.
-
-== Dependencies
-
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
-
-[source,xml]
----------------------------------------
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-aws-s3</artifactId>
-    <version>${camel-version}</version>
-</dependency>
----------------------------------------
-
-where `$\{camel-version}` must be replaced by the actual version of Camel.
-
-
-include::camel-spring-boot::page$aws-s3-starter.adoc[]
diff --git 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index 6ba1c62..02d2bdc 100644
--- 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -4652,4 +4652,4 @@ public interface ComponentsBuilderFactory {
     static 
org.apache.camel.builder.component.dsl.ZookeeperMasterComponentBuilderFactory.ZookeeperMasterComponentBuilder
 zookeeperMaster() {
         return 
org.apache.camel.builder.component.dsl.ZookeeperMasterComponentBuilderFactory.zookeeperMaster();
     }
-}
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/generated/resources/metadata.json 
b/core/camel-componentdsl/src/generated/resources/metadata.json
index ef93029..97972c1 100644
--- a/core/camel-componentdsl/src/generated/resources/metadata.json
+++ b/core/camel-componentdsl/src/generated/resources/metadata.json
@@ -906,29 +906,6 @@
     "producerOnly": true,
     "lenientProperties": false
   },
-  "AwsS3ComponentBuilderFactory": {
-    "kind": "component",
-    "name": "aws-s3",
-    "title": "AWS S3 Storage Service",
-    "description": "Store and retrieve objects from AWS S3 Storage Service.",
-    "deprecated": true,
-    "deprecatedSince": "3.8.0",
-    "firstVersion": "2.8.0",
-    "label": "cloud,file",
-    "javaType": "org.apache.camel.component.aws.s3.S3Component",
-    "supportLevel": "Stable",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-aws-s3",
-    "version": "3.9.0-SNAPSHOT",
-    "scheme": "aws-s3",
-    "extendsScheme": "",
-    "syntax": "aws-s3:\/\/bucketNameOrArn",
-    "async": false,
-    "api": false,
-    "consumerOnly": false,
-    "producerOnly": false,
-    "lenientProperties": false
-  },
   "AwsSwfComponentBuilderFactory": {
     "kind": "component",
     "name": "aws-swf",
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index 0dc0c1a..789d80f 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -280,7 +280,6 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory.ResteasyBuilders,
             
org.apache.camel.builder.endpoint.dsl.RobotFrameworkEndpointBuilderFactory.RobotFrameworkBuilders,
             
org.apache.camel.builder.endpoint.dsl.RssEndpointBuilderFactory.RssBuilders,
-            
org.apache.camel.builder.endpoint.dsl.S3EndpointBuilderFactory.S3Builders,
             
org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory.STS2Builders,
             
org.apache.camel.builder.endpoint.dsl.SWFEndpointBuilderFactory.SWFBuilders,
             
org.apache.camel.builder.endpoint.dsl.SagaEndpointBuilderFactory.SagaBuilders,
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index a6450c8..48e9894 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -277,7 +277,6 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.RobotFrameworkEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RssEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.S3EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.SWFEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.SagaEndpointBuilderFactory,
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index 240a486..765667f 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -16352,4 +16352,4 @@ public class StaticEndpointBuilders {
         return 
org.apache.camel.builder.endpoint.dsl.ZooKeeperMasterEndpointBuilderFactory.endpointBuilder(componentName,
 path);
     }
 }
-//CHECKSTYLE:ON
+//CHECKSTYLE:ON
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/nav.adoc 
b/docs/components/modules/ROOT/nav.adoc
index 265b3d1..4abda9d 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -21,7 +21,6 @@
 ** xref:atomix-set-component.adoc[Atomix Set]
 ** xref:atomix-value-component.adoc[Atomix Value]
 ** xref:avro-component.adoc[Avro RPC]
-*** xref:aws-s3-component.adoc[AWS S3 Storage Service]
 *** xref:aws-swf-component.adoc[AWS Simple Workflow (SWF)]
 ** xref:aws2-summary.adoc[AWS 2]
 *** xref:aws2-athena-component.adoc[AWS 2 Athena]
diff --git a/docs/components/modules/ROOT/pages/aws-s3-component.adoc 
b/docs/components/modules/ROOT/pages/aws-s3-component.adoc
deleted file mode 100644
index 6760738..0000000
--- a/docs/components/modules/ROOT/pages/aws-s3-component.adoc
+++ /dev/null
@@ -1,555 +0,0 @@
-[[aws-s3-component]]
-= AWS S3 Storage Service Component (deprecated)
-//THIS FILE IS COPIED: EDIT THE SOURCE FILE:
-:page-source: components/camel-aws-s3/src/main/docs/aws-s3-component.adoc
-:docTitle: AWS S3 Storage Service
-:artifactId: camel-aws-s3
-:description: Store and retrieve objects from AWS S3 Storage Service.
-:since: 2.8
-:supportLevel: Stable-deprecated
-:deprecated: *deprecated*
-:component-header: Both producer and consumer are supported
-include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws-s3.adoc[opts=optional]
-//Manually maintained attributes
-:group: AWS
-
-*Since Camel {since}*
-
-*{component-header}*
-
-The S3 component supports storing and retrieving objects from/to
-https://aws.amazon.com/s3[Amazon's S3] service.
-
-Prerequisites
-
-You must have a valid Amazon Web Services developer account, and be
-signed up to use Amazon S3. More information is available at
-https://aws.amazon.com/s3[Amazon S3].
-
-== URI Format
-
-[source,java]
-------------------------------
-aws-s3://[bucketName|arn][?options]
-------------------------------
-
-The bucket will be created if it don't already exists. +
- You can append query options to the URI in the following format,
-?options=value&option2=value&...
-
-For example in order to read file `hello.txt` from bucket `helloBucket`, use 
the following snippet:
-
-[source,java]
---------------------------------------------------------------------------------
-from("aws-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt")
-  .to("file:/var/downloaded");
---------------------------------------------------------------------------------
-
-
-== URI Options
-
-
-// component options: START
-The AWS S3 Storage Service component supports 40 options, which are listed 
below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *amazonS3Client* (common) | Reference to a 
com.amazonaws.services.s3.AmazonS3 in the registry. |  | AmazonS3
-| *autoCreateBucket* (common) | Setting the autocreation of the bucket | true 
| boolean
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if 
true, the component will look for a client instance in the registry 
automatically otherwise it will skip that checking. | true | boolean
-| *configuration* (common) | The component configuration |  | S3Configuration
-| *endpointConfiguration* (common) | Amazon AWS Endpoint Configuration |  | 
EndpointConfiguration
-| *pathStyleAccess* (common) | Whether or not the S3 client should use path 
style access | false | boolean
-| *policy* (common) | The policy for this queue to set in the 
com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method. |  | String
-| *proxyHost* (common) | To define a proxy host when instantiating the S3 
client |  | String
-| *proxyPort* (common) | Specify a proxy port to be used inside the client 
definition. |  | Integer
-| *proxyProtocol* (common) | To define a proxy protocol when instantiating the 
S3 client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | 
Protocol
-| *region* (common) | The region in which S3 client needs to work. When using 
this parameter, the configuration will expect the capitalized name of the 
region (for example AP_EAST_1) You'll need to use the name 
Regions.EU_WEST_1.name() |  | String
-| *useIAMCredentials* (common) | Set whether the S3 client should expect to 
load credentials on an EC2 instance or to expect static credentials to be 
passed in. | false | boolean
-| *encryptionMaterials* (common) | The encryption materials to use in case of 
Symmetric/Asymmetric client usage |  | EncryptionMaterials
-| *useEncryption* (common) | Define if encryption must be used or not | false 
| boolean
-| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
-| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been 
retrieved. The delete is only performed if the Exchange is committed. If a 
rollback occurs, the object is not deleted. If this option is false, then the 
same objects will be retrieve over and over again on the polls. Therefore you 
need to use the Idempotent Consumer EIP in the route to filter out duplicates. 
You can filter using the S3Constants#BUCKET_NAME and S3Constants#KEY headers, 
or only the S3Constants#KEY [...]
-| *delimiter* (consumer) | The delimiter which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
-| *doneFileName* (consumer) | If provided, Camel will only consume files if a 
done file exists. |  | String
-| *fileName* (consumer) | To get the object from the bucket with the given 
file name |  | String
-| *includeBody* (consumer) | If it is true, the exchange body will be set to a 
stream to the contents of the file. If false, the headers will be set with the 
S3 object metadata, but the body will be null. This option is strongly related 
to autocloseBody option. In case of setting includeBody to true and 
autocloseBody to false, it will be up to the caller to close the S3Object 
stream. Setting autocloseBody to true, will close the S3Object stream 
automatically. | true | boolean
-| *prefix* (consumer) | The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
-| *autocloseBody* (consumer) | If this option is true and includeBody is true, 
then the S3Object.close() method will be called on exchange completion. This 
option is strongly related to includeBody option. In case of setting 
includeBody to true and autocloseBody to false, it will be up to the caller to 
close the S3Object stream. Setting autocloseBody to true, will close the 
S3Object stream automatically. | true | boolean
-| *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
-| *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy 
(on the first message). By starting lazy you can use this to allow CamelContext 
and routes to startup in situations where a producer may otherwise fail during 
starting and cause the route to fail being started. By deferring this startup 
to be lazy then the startup failure can be handled during routing messages via 
Camel's routing error handlers. Beware that when the first message is processed 
then creating and [...]
-| *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 4 enums and the value can be one of: copyObject, 
deleteBucket, listBuckets, downloadLink |  | S3Operations
-| *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
-| *serverSideEncryption* (producer) | Sets the server-side encryption 
algorithm when encrypting the object using AWS-managed keys. For example use 
AES256. |  | String
-| *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
-| *awsKMSKeyId* (producer) | Define the id of KMS key to use in case KMS is 
enabled |  | String
-| *useAwsKMS* (producer) | Define if KMS must be used or not | false | boolean
-| *accelerateModeEnabled* ( advanced) | Define if Accelerate Mode enabled is 
true or false | false | boolean
-| *chunkedEncodingDisabled* ( advanced) | Define if disabled Chunked Encoding 
is true or false | false | boolean
-| *dualstackEnabled* ( advanced) | Define if Dualstack enabled is true or 
false | false | boolean
-| *forceGlobalBucketAccessEnabled* ( advanced) | Define if Force Global Bucket 
Access enabled is true or false | false | boolean
-| *payloadSigningEnabled* ( advanced) | Define if Payload Signing enabled is 
true or false | false | boolean
-| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used 
for automatic autowiring options (the option must be marked as autowired) by 
looking up in the registry to find if there is a single instance of matching 
type, which then gets configured on the component. This can be used for 
automatic configuring JDBC data sources, JMS connection factories, AWS Clients, 
etc. | true | boolean
-| *accessKey* (security) | Amazon AWS Access Key |  | String
-| *secretKey* (security) | Amazon AWS Secret Key |  | String
-|===
-// component options: END
-
-
-
-
-
-
-
-
-
-
-
-// endpoint options: START
-The AWS S3 Storage Service endpoint is configured using URI syntax:
-
-----
-aws-s3://bucketNameOrArn
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (1 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *bucketNameOrArn* | *Required* Bucket name or ARN |  | String
-|===
-
-
-=== Query Parameters (58 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *amazonS3Client* (common) | Reference to a 
com.amazonaws.services.s3.AmazonS3 in the registry. |  | AmazonS3
-| *autoCreateBucket* (common) | Setting the autocreation of the bucket | true 
| boolean
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if 
true, the component will look for a client instance in the registry 
automatically otherwise it will skip that checking. | true | boolean
-| *endpointConfiguration* (common) | Amazon AWS Endpoint Configuration |  | 
EndpointConfiguration
-| *pathStyleAccess* (common) | Whether or not the S3 client should use path 
style access | false | boolean
-| *policy* (common) | The policy for this queue to set in the 
com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method. |  | String
-| *proxyHost* (common) | To define a proxy host when instantiating the S3 
client |  | String
-| *proxyPort* (common) | Specify a proxy port to be used inside the client 
definition. |  | Integer
-| *proxyProtocol* (common) | To define a proxy protocol when instantiating the 
S3 client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | 
Protocol
-| *region* (common) | The region in which S3 client needs to work. When using 
this parameter, the configuration will expect the capitalized name of the 
region (for example AP_EAST_1) You'll need to use the name 
Regions.EU_WEST_1.name() |  | String
-| *useIAMCredentials* (common) | Set whether the S3 client should expect to 
load credentials on an EC2 instance or to expect static credentials to be 
passed in. | false | boolean
-| *encryptionMaterials* (common) | The encryption materials to use in case of 
Symmetric/Asymmetric client usage |  | EncryptionMaterials
-| *useEncryption* (common) | Define if encryption must be used or not | false 
| boolean
-| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
-| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been 
retrieved. The delete is only performed if the Exchange is committed. If a 
rollback occurs, the object is not deleted. If this option is false, then the 
same objects will be retrieve over and over again on the polls. Therefore you 
need to use the Idempotent Consumer EIP in the route to filter out duplicates. 
You can filter using the S3Constants#BUCKET_NAME and S3Constants#KEY headers, 
or only the S3Constants#KEY [...]
-| *delimiter* (consumer) | The delimiter which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
-| *doneFileName* (consumer) | If provided, Camel will only consume files if a 
done file exists. |  | String
-| *fileName* (consumer) | To get the object from the bucket with the given 
file name |  | String
-| *includeBody* (consumer) | If it is true, the exchange body will be set to a 
stream to the contents of the file. If false, the headers will be set with the 
S3 object metadata, but the body will be null. This option is strongly related 
to autocloseBody option. In case of setting includeBody to true and 
autocloseBody to false, it will be up to the caller to close the S3Object 
stream. Setting autocloseBody to true, will close the S3Object stream 
automatically. | true | boolean
-| *maxConnections* (consumer) | Set the maxConnections parameter in the S3 
client configuration | 60 | int
-| *maxMessagesPerPoll* (consumer) | Gets the maximum number of messages as a 
limit to poll at each polling. Gets the maximum number of messages as a limit 
to poll at each polling. The default value is 10. Use 0 or a negative number to 
set it as unlimited. | 10 | int
-| *prefix* (consumer) | The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
-| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll 
any files, you can enable this option to send an empty message (no body) 
instead. | false | boolean
-| *autocloseBody* (consumer) | If this option is true and includeBody is true, 
then the S3Object.close() method will be called on exchange completion. This 
option is strongly related to includeBody option. In case of setting 
includeBody to true and autocloseBody to false, it will be up to the caller to 
close the S3Object stream. Setting autocloseBody to true, will close the 
S3Object stream automatically. | true | boolean
-| *exceptionHandler* (consumer) | To let the consumer use a custom 
ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this 
option is not in use. By default the consumer will deal with exceptions, that 
will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
-| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer 
creates an exchange. There are 3 enums and the value can be one of: InOnly, 
InOut, InOptionalOut |  | ExchangePattern
-| *pollStrategy* (consumer) | A pluggable 
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your 
custom implementation to control error handling usually occurred during the 
poll operation before an Exchange have been created and being routed in Camel. 
|  | PollingConsumerPollStrategy
-| *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
-| *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy 
(on the first message). By starting lazy you can use this to allow CamelContext 
and routes to startup in situations where a producer may otherwise fail during 
starting and cause the route to fail being started. By deferring this startup 
to be lazy then the startup failure can be handled during routing messages via 
Camel's routing error handlers. Beware that when the first message is processed 
then creating and [...]
-| *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 4 enums and the value can be one of: copyObject, 
deleteBucket, listBuckets, downloadLink |  | S3Operations
-| *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
-| *serverSideEncryption* (producer) | Sets the server-side encryption 
algorithm when encrypting the object using AWS-managed keys. For example use 
AES256. |  | String
-| *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
-| *awsKMSKeyId* (producer) | Define the id of KMS key to use in case KMS is 
enabled |  | String
-| *useAwsKMS* (producer) | Define if KMS must be used or not | false | boolean
-| *accelerateModeEnabled* ( advanced) | Define if Accelerate Mode enabled is 
true or false | false | boolean
-| *chunkedEncodingDisabled* ( advanced) | Define if disabled Chunked Encoding 
is true or false | false | boolean
-| *dualstackEnabled* ( advanced) | Define if Dualstack enabled is true or 
false | false | boolean
-| *forceGlobalBucketAccessEnabled* ( advanced) | Define if Force Global Bucket 
Access enabled is true or false | false | boolean
-| *payloadSigningEnabled* ( advanced) | Define if Payload Signing enabled is 
true or false | false | boolean
-| *backoffErrorThreshold* (scheduler) | The number of subsequent error polls 
(failed due some error) that should happen before the backoffMultipler should 
kick-in. |  | int
-| *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls 
that should happen before the backoffMultipler should kick-in. |  | int
-| *backoffMultiplier* (scheduler) | To let the scheduled polling consumer 
backoff if there has been a number of subsequent idles/errors in a row. The 
multiplier is then the number of polls that will be skipped before the next 
actual attempt is happening again. When this option is in use then 
backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | 
int
-| *delay* (scheduler) | Milliseconds before the next poll. | 500 | long
-| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer 
will run immediately again, if the previous run polled 1 or more messages. | 
false | boolean
-| *initialDelay* (scheduler) | Milliseconds before the first poll starts. | 
1000 | long
-| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So 
if you set it to 1, the scheduler will only fire once. If you set it to 5, it 
will only fire five times. A value of zero or negative means fire forever. | 0 
| long
-| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line 
when it polls. This option allows you to configure the logging level for that. 
There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, 
OFF | TRACE | LoggingLevel
-| *scheduledExecutorService* (scheduler) | Allows for configuring a 
custom/shared thread pool to use for the consumer. By default each consumer has 
its own single threaded thread pool. |  | ScheduledExecutorService
-| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring 
or camel-quartz component. Use value spring or quartz for built in scheduler | 
none | Object
-| *schedulerProperties* (scheduler) | To configure additional properties when 
using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
-| *startScheduler* (scheduler) | Whether the scheduler should be auto started. 
| true | boolean
-| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. There 
are 7 enums and the value can be one of: NANOSECONDS, MICROSECONDS, 
MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
-| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. 
See ScheduledExecutorService in JDK for details. | true | boolean
-| *accessKey* (security) | Amazon AWS Access Key |  | String
-| *secretKey* (security) | Amazon AWS Secret Key |  | String
-|===
-// endpoint options: END
-
-
-
-
-
-
-
-
-
-
-Required S3 component options
-
-You have to provide the amazonS3Client in the
-Registry or your accessKey and secretKey to access
-the https://aws.amazon.com/s3[Amazon's S3].
-
-== Batch Consumer
-
-This component implements the Batch Consumer.
-
-This allows you for instance to know how many messages exists in this
-batch and for instance let the Aggregator
-aggregate this number of messages.
-
-== Usage
-
-=== Message headers evaluated by the S3 producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsS3BucketName` |`String` |The bucket Name which this object will be 
stored or which will be used for the current operation
-
-|`CamelAwsS3BucketDestinationName` |`String` |The bucket Destination Name 
which will be used for the current operation
-
-|`CamelAwsS3ContentLength` |`Long` |The content length of this object.
-
-|`CamelAwsS3ContentType` |`String` |The content type of this object.
-
-|`CamelAwsS3ContentControl` |`String` |The content control of this object.
-
-|`CamelAwsS3ContentDisposition` |`String` |The content disposition of this 
object.
-
-|`CamelAwsS3ContentEncoding` |`String` |The content encoding of this object.
-
-|`CamelAwsS3ContentMD5` |`String` |The md5 checksum of this object.
-
-|`CamelAwsS3DestinationKey` |`String` |The Destination key which will be used 
for the current operation
-
-|`CamelAwsS3Key` |`String` |The key under which this object will be stored or 
which will be used for the current operation
-
-|`CamelAwsS3LastModified` |`java.util.Date` |The last modified timestamp of 
this object.
-
-|`CamelAwsS3Operation` |`String` |The operation to perform. Permitted values 
are copyObject, deleteObject, listBuckets, deleteBucket, downloadLink, 
listObjects
-
-|`CamelAwsS3StorageClass` |`String` |The storage class of this object.
-
-|`CamelAwsS3CannedAcl` |`String` |The canned acl that will be applied to the 
object. see
-`com.amazonaws.services.s3.model.CannedAccessControlList` for allowed
-values.
-
-|`CamelAwsS3Acl` |`com.amazonaws.services.s3.model.AccessControlList` |A well 
constructed Amazon S3 Access Control List object.
-see `com.amazonaws.services.s3.model.AccessControlList` for more details
-
-|`CamelAwsS3Headers` |`Map<String,String>` |Support to get or set custom 
objectMetadata headers.
-
-|`CamelAwsS3ServerSideEncryption` |String |Sets the server-side encryption 
algorithm when encrypting
-the object using AWS-managed keys. For example use AES256.
-
-|`CamelAwsS3VersionId` |`String` |The version Id of the object to be stored or 
returned from the current operation
-|=======================================================================
-
-=== Message headers set by the S3 producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-|`CamelAwsS3ETag` |`String` |The ETag value for the newly uploaded object.
-
-|`CamelAwsS3VersionId` |`String` |The *optional* version ID of the newly 
uploaded object.
-
-|`CamelAwsS3DownloadLinkExpiration` | `String` | The expiration (millis) of 
URL download link. The link will be stored into *CamelAwsS3DownloadLink* 
response header.
-
-|=======================================================================
-
-=== Message headers set by the S3 consumer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsS3Key` |`String` |The key under which this object is stored.
-
-|`CamelAwsS3BucketName` |`String` |The name of the bucket in which this object 
is contained.
-
-|`CamelAwsS3ETag` |`String` |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.
-
-|`CamelAwsS3LastModified` |`Date` |The value of the Last-Modified header, 
indicating the date and time at
-which Amazon S3 last recorded a modification to the associated object.
-
-|`CamelAwsS3VersionId` |`String` |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.
-
-|`CamelAwsS3ContentType` |`String` |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.
-
-|`CamelAwsS3ContentMD5` |`String` |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.
-
-|`CamelAwsS3ContentLength` |`Long` |The Content-Length HTTP header indicating 
the size of the associated
-object in bytes.
-
-|`CamelAwsS3ContentEncoding` |`String` |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.
-
-|`CamelAwsS3ContentDisposition` |`String` |The *optional* Content-Disposition 
HTTP header, which specifies
-presentational information such as the recommended filename for the
-object to be saved as.
-
-|`CamelAwsS3ContentControl` |`String` |The *optional* Cache-Control HTTP 
header which allows the user to
-specify caching behavior along the HTTP request/reply chain.
-
-|`CamelAwsS3ServerSideEncryption` |String |The server-side encryption 
algorithm when encrypting the
-object using AWS-managed keys.
-|=======================================================================
-
-=== S3 Producer operations
-
-Camel-AWS s3 component provides the following operation on the producer side:
-
-- copyObject
-- deleteObject
-- listBuckets
-- deleteBucket
-- downloadLink
-- listObjects
-- getObject (this will return an S3Object instance)
-- getObjectRange (this will return an S3Object instance)
-
-=== Advanced AmazonS3 configuration
-
-If your Camel Application is running behind a firewall or if you need to
-have more control over the `AmazonS3` instance configuration, you can
-create your own instance:
-
-[source,java]
---------------------------------------------------------------------------------------
-AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", 
"mySecretKey");
-
-ClientConfiguration clientConfiguration = new ClientConfiguration();
-clientConfiguration.setProxyHost("http://myProxyHost";);
-clientConfiguration.setProxyPort(8080);
-
-AmazonS3 client = new AmazonS3Client(awsCredentials, clientConfiguration);
-
-registry.bind("client", client);
---------------------------------------------------------------------------------------
-
-and refer to it in your Camel aws-s3 component configuration:
-
-[source,java]
---------------------------------------------------------------------------------
-from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
-.to("mock:result");
---------------------------------------------------------------------------------
-
-=== Use KMS with the S3 component
-
-To use AWS KMS to encrypt/decrypt data by using AWS infrastructure you can use 
the options introduced in 2.21.x like in the following example
-
-[source,java]
---------------------------------------------------------------------------------
-from("file:tmp/test?fileName=test.txt")
-     .setHeader(S3Constants.KEY, constant("testFile"))
-     
.to("aws-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
---------------------------------------------------------------------------------
-
-In this way you'll ask to S3, to use the KMS key 
3f0637ad-296a-3dfe-a796-e60654fb128c, to encrypt the file test.txt. When you'll 
ask to download this file, the decryption will be done directly before the 
download.
-
-=== Use "useIAMCredentials" with the s3 component
-
-To use AWS IAM credentials, you must first verify that the EC2 in which you 
are launching the Camel application on has an IAM role associated with it 
containing the appropriate policies attached to run effectively.
-Keep in mind that this feature should only be set to "true" on remote 
instances. To clarify even further, you must still use static credentials 
locally since IAM is an AWS specific component,
-but AWS environments should now be easier to manage. After this is implemented 
and understood, you can set the query parameter "useIAMCredentials" to "true" 
for AWS environments! To effectively toggle this
-on and off based on local and remote environments, you can consider enabling 
this query parameter with system environment variables. For example, your code 
could set the "useIAMCredentials" query parameter to "true",
-when the system environment variable called "isRemote" is set to true (there 
are many other ways to do this and this should act as a simple example). 
Although it doesn't take away the need for static credentials completely,
-using IAM credentials on AWS environments takes away the need to refresh on 
remote environments and adds a major security boost (IAM credentials are 
refreshed automatically every 6 hours and update when their
-policies are updated). This is the AWS recommended way to manage credentials 
and therefore should be used as often as possible.
-
-=== S3 Producer Operation examples
-
-- CopyObject: this operation copy an object from one bucket to a different one
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.BUCKET_DESTINATION_NAME, 
"camelDestinationBucket");
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
-          exchange.getIn().setHeader(S3Constants.DESTINATION_KEY, 
"camelDestinationKey");   
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=copyObject")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will copy the object with the name expressed in the header 
camelDestinationKey to the camelDestinationBucket bucket, from the bucket 
mycamelbucket.
-
-- DeleteObject: this operation deletes an object from a bucket
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey"); 
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteObject")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will delete the object camelKey from the bucket mycamelbucket.
-
-- ListBuckets: this operation list the buckets for this account in this region
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start")
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listBuckets")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will list the buckets for this account
-
-- DeleteBucket: this operation delete the bucket specified as URI parameter or 
header
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start")
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteBucket")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will delete the bucket mycamelbucket
-
-- DownloadLink: this operation create a download link for the file specified 
in the key header
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey"); 
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=downloadLink")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will create a downloadLink for the file camelKey in the bucket 
mycamelbucket
-
-- ListObjects: this operation list object in a specific bucket
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start")
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listObjects")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will list the objects in the mycamelbucket bucket
-
-- GetObject: this operation get a single object in a specific bucket
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey"); 
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObject")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will return an S3Object instance related to the camelKey object 
in mycamelbucket bucket.
-
-- GetObjectRange: this operation get a single object range in a specific bucket
-
-[source,java]
---------------------------------------------------------------------------------
-  from("direct:start").process(new Processor() {
-                    
-      @Override
-      public void process(Exchange exchange) throws Exception {
-          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
-          exchange.getIn().setHeader(S3Constants.RANGE_START, "0");
-          exchange.getIn().setHeader(S3Constants.RANGE_END, "9");
-      }
-  })
-  
.to("aws-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObjectRange")
-  .to("mock:result");
---------------------------------------------------------------------------------
-
-This operation will return an S3Object instance related to the camelKey object 
in mycamelbucket bucket, containing a the bytes from 0 to 9.
-
-== Bucket Autocreation
-
-With the option `autoCreateBucket` users are able to avoid the autocreation of 
an S3 Bucket in case it doesn't exist. The default for this option is `true`.
-If set to false any operation on a not-existent bucket in AWS won't be 
successful and an error will be returned.
-
-== Automatic detection of AmazonS3 client in registry
-
-The component is capable of detecting the presence of an AmazonS3 bean into 
the registry.
-If it's the only instance of that type it will be used as client and you won't 
have to define it as uri parameter, like the example above.
-This may be really useful for smarter configuration of the endpoint.
-
-== Moving stuff between a bucket and another bucket
-
-Some users like to consume stuff from a bucket and move the content in a 
different one without using the copyObject feature of this component.
-If this is case for you, don't forget to remove the bucketName header from the 
incoming exchange of the consumer, otherwise the file will be always 
overwritten on the same 
-original bucket.
-
-== Dependencies
-
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
-
-[source,xml]
----------------------------------------
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-aws-s3</artifactId>
-    <version>${camel-version}</version>
-</dependency>
----------------------------------------
-
-where `$\{camel-version}` must be replaced by the actual version of Camel.
-
-
-include::camel-spring-boot::page$aws-s3-starter.adoc[]

Reply via email to