This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch s3head in repository https://gitbox.apache.org/repos/asf/camel.git
commit 7d7dbefd1fe05bd4065788607bc209fbb72bb80e Author: Claus Ibsen <[email protected]> AuthorDate: Tue Oct 15 12:45:10 2024 +0200 CAMEL-21347: camel-aws-s3 - Head bucket operation to store header with true|false instead of throwing exception --- .../apache/camel/catalog/components/aws2-s3.json | 67 +++++++++++----------- .../apache/camel/component/aws2/s3/aws2-s3.json | 67 +++++++++++----------- .../camel/component/aws2/s3/AWS2S3Constants.java | 3 + .../camel/component/aws2/s3/AWS2S3Producer.java | 13 ++++- .../aws2/s3/integration/S3HeadBucketIT.java | 27 ++++----- .../ROOT/pages/camel-4x-upgrade-guide-4_9.adoc | 10 ++++ .../endpoint/dsl/AWS2S3EndpointBuilderFactory.java | 12 ++++ 7 files changed, 117 insertions(+), 82 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-s3.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-s3.json index 8a3360ed82c..386dfdd7ac2 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-s3.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-s3.json @@ -89,39 +89,40 @@ "CamelAwsS3BucketName": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The bucket Name (can be dynamic using the simple language in the producer) which this object will be stored or which will be used for the current operation or in which this object is contained.", "constantName": "org.apache.camel.component.aws [...] "CamelAwsS3ProducedBucketName": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The computed bucket name that was used by the producer such as to get or put an s3 object", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PRODUCED_BUCKET_NAME" }, "CamelAwsS3BucketDestinationName": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The bucket Destination Name which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#BUCKET_DESTINATION_NAME" }, - "CamelAwsS3ContentControl": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request\/reply chain.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CACHE_CONTROL" }, - "CamelAwsS3ContentDisposition": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_DISP [...] - "CamelAwsS3ContentEncoding": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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.", "constantNa [...] - "CamelAwsS3ContentLength": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Content-Length HTTP header indicating the size of the associated object in bytes.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_LENGTH" }, - "CamelAwsS3ContentMD5": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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 call [...] - "CamelAwsS3ContentType": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_TYPE" }, - "CamelAwsS3ETag": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same [...] - "CamelAwsS3Key": { "index": 10, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key (can be dynamic using the simple language in the producer) under which this object is stored or will be stored or which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#KEY" }, - "CamelAwsS3ProducedKey": { "index": 11, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The computed key that was used for retrieving this object", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PRODUCED_KEY" }, - "CamelAwsS3DestinationKey": { "index": 12, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Destination key which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DESTINATION_KEY" }, - "CamelAwsS3LastModified": { "index": 13, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#LAST_MODIFIED" }, - "CamelAwsS3StorageClass": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The storage class of this object.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#STORAGE_CLASS" }, - "CamelAwsS3VersionId": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has obj [...] - "CamelAwsS3CannedAcl": { "index": 16, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CANNED_ACL" }, - "CamelAwsS3Acl": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "software.amazon.awssdk.services.s3.model.BucketCannedACL", "enum": [ "private", "public-read", "public-read-write", "authenticated-read", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A well constructed Amazon S3 Access Control List object.", "constantName": "org.apache.camel.compone [...] - "CamelAwsS3Operation": { "index": 18, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#S3_OPERATION" }, - "CamelAwsS3ServerSideEncryption": { "index": 19, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#SERVER_SIDE_ENCRYPTION" }, - "CamelAwsS3ExpirationTime": { "index": 20, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#EXPIRATION_TIME" }, - "CamelAwsS3ReplicationStatus": { "index": 21, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "software.amazon.awssdk.services.s3.model.ReplicationStatus", "enum": [ "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Amazon S3 can return this if your request involves a bucket that is either a source or destinati [...] - "CamelAwsS3RangeStart": { "index": 22, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The position of the first byte to get", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#RANGE_START" }, - "CamelAwsS3RangeEnd": { "index": 23, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The position of the last byte to get", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#RANGE_END" }, - "CamelAwsS3DowloadLinkExpirationTime": { "index": 24, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration time of the download link in milliseconds", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_EXPIRATION_TIME" }, - "CamelAwsS3DownloadLinkBrowserCompatible": { "index": 25, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the download link is browser compatible", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_BROWSER_COMPATIBLE" }, - "CamelAwsS3DownloadLinkHttpRequestHeaders": { "index": 26, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, List<String>>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The headers that are needed by the service (not needed when BrowserCompatible is true)", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_HTTP_REQUEST_HEADERS" }, - "CamelAwsS3DownloadLinkSignedPayload": { "index": 27, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The request payload that is needed by the service (not needed when BrowserCompatible is true)", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_SIGNED_PAYLOAD" }, - "CamelAwsS3Metadata": { "index": 28, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A map of metadata to be stored or stored with the object in S3. More details about metadata https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/UsingMetadata.htmlhere.", "constantName": "org.apache.camel.component.aws2.s3.A [...] - "CamelMessageTimestamp": { "index": 29, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timestamp of the message", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#MESSAGE_TIMESTAMP" }, - "CamelAwsS3Prefix": { "index": 30, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only list objects we are interested in", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PREFIX" }, - "CamelAwsS3Delimiter": { "index": 31, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only list objects we are interested in", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DELIMITER" }, - "CamelAwsS3IfMatchCondition": { "index": 32, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if its entity tag (ETag) is the same as the one specified in this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_MATCH_CONDITION" }, - "CamelAwsS3IfModifiedSinceCondition": { "index": 33, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if it has been modified since the specified time; otherwise, return a 304 Not Modified error.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_MODIFIED_SINCE_CONDITION" }, - "CamelAwsS3IfNoneMatchCondition": { "index": 34, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if its entity tag (ETag) is different from the one specified in this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_NONE_MATCH_CONDITION" }, - "CamelAwsS3IfUnmodifiedSinceCondition": { "index": 35, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if it has not been modified since the specified time.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_UNMODIFIED_SINCE_CONDITION" } + "CamelAwsS3BucketExists": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the bucket exists when using the headBucket operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#BUCKET_EXISTS" }, + "CamelAwsS3ContentControl": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request\/reply chain.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CACHE_CONTROL" }, + "CamelAwsS3ContentDisposition": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_DISP [...] + "CamelAwsS3ContentEncoding": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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.", "constantNa [...] + "CamelAwsS3ContentLength": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Content-Length HTTP header indicating the size of the associated object in bytes.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_LENGTH" }, + "CamelAwsS3ContentMD5": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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 call [...] + "CamelAwsS3ContentType": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_TYPE" }, + "CamelAwsS3ETag": { "index": 10, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the sam [...] + "CamelAwsS3Key": { "index": 11, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key (can be dynamic using the simple language in the producer) under which this object is stored or will be stored or which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#KEY" }, + "CamelAwsS3ProducedKey": { "index": 12, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The computed key that was used for retrieving this object", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PRODUCED_KEY" }, + "CamelAwsS3DestinationKey": { "index": 13, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Destination key which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DESTINATION_KEY" }, + "CamelAwsS3LastModified": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#LAST_MODIFIED" }, + "CamelAwsS3StorageClass": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The storage class of this object.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#STORAGE_CLASS" }, + "CamelAwsS3VersionId": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has obj [...] + "CamelAwsS3CannedAcl": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CANNED_ACL" }, + "CamelAwsS3Acl": { "index": 18, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "software.amazon.awssdk.services.s3.model.BucketCannedACL", "enum": [ "private", "public-read", "public-read-write", "authenticated-read", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A well constructed Amazon S3 Access Control List object.", "constantName": "org.apache.camel.compone [...] + "CamelAwsS3Operation": { "index": 19, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#S3_OPERATION" }, + "CamelAwsS3ServerSideEncryption": { "index": 20, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#SERVER_SIDE_ENCRYPTION" }, + "CamelAwsS3ExpirationTime": { "index": 21, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#EXPIRATION_TIME" }, + "CamelAwsS3ReplicationStatus": { "index": 22, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "software.amazon.awssdk.services.s3.model.ReplicationStatus", "enum": [ "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Amazon S3 can return this if your request involves a bucket that is either a source or destinati [...] + "CamelAwsS3RangeStart": { "index": 23, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The position of the first byte to get", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#RANGE_START" }, + "CamelAwsS3RangeEnd": { "index": 24, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The position of the last byte to get", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#RANGE_END" }, + "CamelAwsS3DowloadLinkExpirationTime": { "index": 25, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration time of the download link in milliseconds", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_EXPIRATION_TIME" }, + "CamelAwsS3DownloadLinkBrowserCompatible": { "index": 26, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the download link is browser compatible", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_BROWSER_COMPATIBLE" }, + "CamelAwsS3DownloadLinkHttpRequestHeaders": { "index": 27, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, List<String>>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The headers that are needed by the service (not needed when BrowserCompatible is true)", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_HTTP_REQUEST_HEADERS" }, + "CamelAwsS3DownloadLinkSignedPayload": { "index": 28, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The request payload that is needed by the service (not needed when BrowserCompatible is true)", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_SIGNED_PAYLOAD" }, + "CamelAwsS3Metadata": { "index": 29, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A map of metadata to be stored or stored with the object in S3. More details about metadata https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/UsingMetadata.htmlhere.", "constantName": "org.apache.camel.component.aws2.s3.A [...] + "CamelMessageTimestamp": { "index": 30, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timestamp of the message", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#MESSAGE_TIMESTAMP" }, + "CamelAwsS3Prefix": { "index": 31, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only list objects we are interested in", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PREFIX" }, + "CamelAwsS3Delimiter": { "index": 32, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only list objects we are interested in", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DELIMITER" }, + "CamelAwsS3IfMatchCondition": { "index": 33, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if its entity tag (ETag) is the same as the one specified in this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_MATCH_CONDITION" }, + "CamelAwsS3IfModifiedSinceCondition": { "index": 34, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if it has been modified since the specified time; otherwise, return a 304 Not Modified error.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_MODIFIED_SINCE_CONDITION" }, + "CamelAwsS3IfNoneMatchCondition": { "index": 35, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if its entity tag (ETag) is different from the one specified in this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_NONE_MATCH_CONDITION" }, + "CamelAwsS3IfUnmodifiedSinceCondition": { "index": 36, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if it has not been modified since the specified time.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_UNMODIFIED_SINCE_CONDITION" } }, "properties": { "bucketNameOrArn": { "index": 0, "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" }, diff --git a/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/component/aws2/s3/aws2-s3.json b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/component/aws2/s3/aws2-s3.json index 8a3360ed82c..386dfdd7ac2 100644 --- a/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/component/aws2/s3/aws2-s3.json +++ b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/org/apache/camel/component/aws2/s3/aws2-s3.json @@ -89,39 +89,40 @@ "CamelAwsS3BucketName": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The bucket Name (can be dynamic using the simple language in the producer) which this object will be stored or which will be used for the current operation or in which this object is contained.", "constantName": "org.apache.camel.component.aws [...] "CamelAwsS3ProducedBucketName": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The computed bucket name that was used by the producer such as to get or put an s3 object", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PRODUCED_BUCKET_NAME" }, "CamelAwsS3BucketDestinationName": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The bucket Destination Name which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#BUCKET_DESTINATION_NAME" }, - "CamelAwsS3ContentControl": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request\/reply chain.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CACHE_CONTROL" }, - "CamelAwsS3ContentDisposition": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_DISP [...] - "CamelAwsS3ContentEncoding": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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.", "constantNa [...] - "CamelAwsS3ContentLength": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Content-Length HTTP header indicating the size of the associated object in bytes.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_LENGTH" }, - "CamelAwsS3ContentMD5": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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 call [...] - "CamelAwsS3ContentType": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_TYPE" }, - "CamelAwsS3ETag": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the same [...] - "CamelAwsS3Key": { "index": 10, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key (can be dynamic using the simple language in the producer) under which this object is stored or will be stored or which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#KEY" }, - "CamelAwsS3ProducedKey": { "index": 11, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The computed key that was used for retrieving this object", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PRODUCED_KEY" }, - "CamelAwsS3DestinationKey": { "index": 12, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Destination key which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DESTINATION_KEY" }, - "CamelAwsS3LastModified": { "index": 13, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#LAST_MODIFIED" }, - "CamelAwsS3StorageClass": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The storage class of this object.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#STORAGE_CLASS" }, - "CamelAwsS3VersionId": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has obj [...] - "CamelAwsS3CannedAcl": { "index": 16, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CANNED_ACL" }, - "CamelAwsS3Acl": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "software.amazon.awssdk.services.s3.model.BucketCannedACL", "enum": [ "private", "public-read", "public-read-write", "authenticated-read", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A well constructed Amazon S3 Access Control List object.", "constantName": "org.apache.camel.compone [...] - "CamelAwsS3Operation": { "index": 18, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#S3_OPERATION" }, - "CamelAwsS3ServerSideEncryption": { "index": 19, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#SERVER_SIDE_ENCRYPTION" }, - "CamelAwsS3ExpirationTime": { "index": 20, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#EXPIRATION_TIME" }, - "CamelAwsS3ReplicationStatus": { "index": 21, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "software.amazon.awssdk.services.s3.model.ReplicationStatus", "enum": [ "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Amazon S3 can return this if your request involves a bucket that is either a source or destinati [...] - "CamelAwsS3RangeStart": { "index": 22, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The position of the first byte to get", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#RANGE_START" }, - "CamelAwsS3RangeEnd": { "index": 23, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The position of the last byte to get", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#RANGE_END" }, - "CamelAwsS3DowloadLinkExpirationTime": { "index": 24, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration time of the download link in milliseconds", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_EXPIRATION_TIME" }, - "CamelAwsS3DownloadLinkBrowserCompatible": { "index": 25, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the download link is browser compatible", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_BROWSER_COMPATIBLE" }, - "CamelAwsS3DownloadLinkHttpRequestHeaders": { "index": 26, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, List<String>>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The headers that are needed by the service (not needed when BrowserCompatible is true)", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_HTTP_REQUEST_HEADERS" }, - "CamelAwsS3DownloadLinkSignedPayload": { "index": 27, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The request payload that is needed by the service (not needed when BrowserCompatible is true)", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_SIGNED_PAYLOAD" }, - "CamelAwsS3Metadata": { "index": 28, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A map of metadata to be stored or stored with the object in S3. More details about metadata https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/UsingMetadata.htmlhere.", "constantName": "org.apache.camel.component.aws2.s3.A [...] - "CamelMessageTimestamp": { "index": 29, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timestamp of the message", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#MESSAGE_TIMESTAMP" }, - "CamelAwsS3Prefix": { "index": 30, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only list objects we are interested in", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PREFIX" }, - "CamelAwsS3Delimiter": { "index": 31, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only list objects we are interested in", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DELIMITER" }, - "CamelAwsS3IfMatchCondition": { "index": 32, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if its entity tag (ETag) is the same as the one specified in this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_MATCH_CONDITION" }, - "CamelAwsS3IfModifiedSinceCondition": { "index": 33, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if it has been modified since the specified time; otherwise, return a 304 Not Modified error.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_MODIFIED_SINCE_CONDITION" }, - "CamelAwsS3IfNoneMatchCondition": { "index": 34, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if its entity tag (ETag) is different from the one specified in this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_NONE_MATCH_CONDITION" }, - "CamelAwsS3IfUnmodifiedSinceCondition": { "index": 35, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if it has not been modified since the specified time.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_UNMODIFIED_SINCE_CONDITION" } + "CamelAwsS3BucketExists": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the bucket exists when using the headBucket operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#BUCKET_EXISTS" }, + "CamelAwsS3ContentControl": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The optional Cache-Control HTTP header which allows the user to specify caching behavior along the HTTP request\/reply chain.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CACHE_CONTROL" }, + "CamelAwsS3ContentDisposition": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The optional Content-Disposition HTTP header, which specifies presentational information such as the recommended filename for the object to be saved as.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_DISP [...] + "CamelAwsS3ContentEncoding": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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.", "constantNa [...] + "CamelAwsS3ContentLength": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Content-Length HTTP header indicating the size of the associated object in bytes.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_LENGTH" }, + "CamelAwsS3ContentMD5": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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 call [...] + "CamelAwsS3ContentType": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "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.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CONTENT_TYPE" }, + "CamelAwsS3ETag": { "index": 10, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The ETag value for the newly uploaded object. (consumer) The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864. This data is used as an integrity check to verify that the data received by the caller is the sam [...] + "CamelAwsS3Key": { "index": 11, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key (can be dynamic using the simple language in the producer) under which this object is stored or will be stored or which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#KEY" }, + "CamelAwsS3ProducedKey": { "index": 12, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The computed key that was used for retrieving this object", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PRODUCED_KEY" }, + "CamelAwsS3DestinationKey": { "index": 13, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Destination key which will be used for the current operation", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DESTINATION_KEY" }, + "CamelAwsS3LastModified": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value of the Last-Modified header, indicating the date and time at which Amazon S3 last recorded a modification to the associated object.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#LAST_MODIFIED" }, + "CamelAwsS3StorageClass": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The storage class of this object.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#STORAGE_CLASS" }, + "CamelAwsS3VersionId": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The optional version ID of the newly uploaded object. (consumer) The version ID of the associated Amazon S3 object if available. Version IDs are only assigned to objects when an object is uploaded to an Amazon S3 bucket that has obj [...] + "CamelAwsS3CannedAcl": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#CANNED_ACL" }, + "CamelAwsS3Acl": { "index": 18, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "software.amazon.awssdk.services.s3.model.BucketCannedACL", "enum": [ "private", "public-read", "public-read-write", "authenticated-read", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A well constructed Amazon S3 Access Control List object.", "constantName": "org.apache.camel.compone [...] + "CamelAwsS3Operation": { "index": 19, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#S3_OPERATION" }, + "CamelAwsS3ServerSideEncryption": { "index": 20, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#SERVER_SIDE_ENCRYPTION" }, + "CamelAwsS3ExpirationTime": { "index": 21, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#EXPIRATION_TIME" }, + "CamelAwsS3ReplicationStatus": { "index": 22, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "software.amazon.awssdk.services.s3.model.ReplicationStatus", "enum": [ "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Amazon S3 can return this if your request involves a bucket that is either a source or destinati [...] + "CamelAwsS3RangeStart": { "index": 23, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The position of the first byte to get", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#RANGE_START" }, + "CamelAwsS3RangeEnd": { "index": 24, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The position of the last byte to get", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#RANGE_END" }, + "CamelAwsS3DowloadLinkExpirationTime": { "index": 25, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration time of the download link in milliseconds", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_EXPIRATION_TIME" }, + "CamelAwsS3DownloadLinkBrowserCompatible": { "index": 26, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the download link is browser compatible", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_BROWSER_COMPATIBLE" }, + "CamelAwsS3DownloadLinkHttpRequestHeaders": { "index": 27, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, List<String>>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The headers that are needed by the service (not needed when BrowserCompatible is true)", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_HTTP_REQUEST_HEADERS" }, + "CamelAwsS3DownloadLinkSignedPayload": { "index": 28, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The request payload that is needed by the service (not needed when BrowserCompatible is true)", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DOWNLOAD_LINK_SIGNED_PAYLOAD" }, + "CamelAwsS3Metadata": { "index": 29, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A map of metadata to be stored or stored with the object in S3. More details about metadata https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/UsingMetadata.htmlhere.", "constantName": "org.apache.camel.component.aws2.s3.A [...] + "CamelMessageTimestamp": { "index": 30, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timestamp of the message", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#MESSAGE_TIMESTAMP" }, + "CamelAwsS3Prefix": { "index": 31, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only list objects we are interested in", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#PREFIX" }, + "CamelAwsS3Delimiter": { "index": 32, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only list objects we are interested in", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#DELIMITER" }, + "CamelAwsS3IfMatchCondition": { "index": 33, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if its entity tag (ETag) is the same as the one specified in this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_MATCH_CONDITION" }, + "CamelAwsS3IfModifiedSinceCondition": { "index": 34, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if it has been modified since the specified time; otherwise, return a 304 Not Modified error.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_MODIFIED_SINCE_CONDITION" }, + "CamelAwsS3IfNoneMatchCondition": { "index": 35, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if its entity tag (ETag) is different from the one specified in this header.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_NONE_MATCH_CONDITION" }, + "CamelAwsS3IfUnmodifiedSinceCondition": { "index": 36, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Return\/copy the object only if it has not been modified since the specified time.", "constantName": "org.apache.camel.component.aws2.s3.AWS2S3Constants#IF_UNMODIFIED_SINCE_CONDITION" } }, "properties": { "bucketNameOrArn": { "index": 0, "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" }, diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Constants.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Constants.java index c7a916e5bee..43409579bd5 100644 --- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Constants.java +++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Constants.java @@ -34,6 +34,9 @@ public interface AWS2S3Constants { @Metadata(label = "producer", description = "The bucket Destination Name which will be used for the current operation", javaType = "String") String BUCKET_DESTINATION_NAME = "CamelAwsS3BucketDestinationName"; + @Metadata(description = "Whether the bucket exists when using the headBucket operation", + javaType = "boolean") + String BUCKET_EXISTS = "CamelAwsS3BucketExists"; @Metadata(description = "The *optional* Cache-Control HTTP header which allows the user to\n" + "specify caching behavior along the HTTP request/reply chain.", javaType = "String") diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Producer.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Producer.java index b7edba14061..b46a68ac5e8 100644 --- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Producer.java +++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Producer.java @@ -709,10 +709,17 @@ public class AWS2S3Producer extends DefaultProducer { throw new IllegalArgumentException( "Head Bucket operation requires to specify a bucket name via Header"); } - HeadBucketResponse headBucketResponse = s3Client.headBucket(HeadBucketRequest.builder().bucket(bucketName).build()); - Message message = getMessageForResponse(exchange); - message.setBody(headBucketResponse); + boolean exists = true; + try { + HeadBucketResponse headBucketResponse = s3Client.headBucket(HeadBucketRequest.builder().bucket(bucketName).build()); + if (!getConfiguration().isIgnoreBody()) { + message.setBody(headBucketResponse); + } + } catch (NoSuchBucketException e) { + exists = false; + } + message.setHeader(AWS2S3Constants.BUCKET_EXISTS, exists); } private void headObject(S3Client s3Client, Exchange exchange) { diff --git a/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/integration/S3HeadBucketIT.java b/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/integration/S3HeadBucketIT.java index 61b469296df..58a15b2dafc 100644 --- a/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/integration/S3HeadBucketIT.java +++ b/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/integration/S3HeadBucketIT.java @@ -26,25 +26,26 @@ import org.apache.camel.component.aws2.s3.AWS2S3Constants; import org.apache.camel.component.aws2.s3.AWS2S3Operations; import org.apache.camel.component.mock.MockEndpoint; import org.junit.jupiter.api.Test; -import software.amazon.awssdk.services.s3.model.NoSuchBucketException; public class S3HeadBucketIT extends Aws2S3Base { @EndpointInject private ProducerTemplate template; - @EndpointInject("mock:bucket") - private MockEndpoint bucket; + @EndpointInject("mock:exists") + private MockEndpoint exists; - @EndpointInject("mock:noBucket") - private MockEndpoint noBucket; + @EndpointInject("mock:result") + private MockEndpoint result; @Test public void sendInHeadBucket() throws Exception { - bucket.expectedMessageCount(0); - noBucket.expectedMessageCount(1); + exists.expectedMessageCount(0); + result.expectedBodiesReceived("Hello World"); + result.expectedHeaderReceived(AWS2S3Constants.BUCKET_EXISTS, false); Exchange res = template.send("direct:headBucket", exchange -> { + exchange.getIn().setBody("Hello World"); exchange.getIn().setHeader(AWS2S3Constants.S3_OPERATION, AWS2S3Operations.headBucket); exchange.getIn().setHeader(AWS2S3Constants.BUCKET_NAME, "doesnotexist" + UUID.randomUUID().toString()); }); @@ -60,14 +61,14 @@ public class S3HeadBucketIT extends Aws2S3Base { return new RouteBuilder() { @Override public void configure() { - String awsEndpoint = "aws2-s3://test-ss3-s3"; + String awsEndpoint = "aws2-s3://test-ss3-s3?ignoreBody=true"; from("direct:headBucket") - .doTry() - .to(awsEndpoint).log("${body}").to("mock:bucket") - .doCatch(NoSuchBucketException.class) - .to("mock:noBucket") - .end(); + .to(awsEndpoint) + .filter(header(AWS2S3Constants.BUCKET_EXISTS)) + .to("mock:exists") + .end() + .to("mock:result"); } }; } diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc index e22aa69fb68..2ff3aa765b4 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc @@ -85,6 +85,16 @@ to this You could find more details on CAMEL-21179 issue +=== camel-aws + +The `camel-aws2-s3` when using `headBucket` operation will now store the result +in a header named `CamelAwsS3BucketExists` whether the bucket exists or not. + +Previously an `software.amazon.awssdk.services.s3.model.NoSuchBucketException` was thrown, +however this would require to use error handling to just check whether the bucket existed. +Returning a boolean makes it easier in Camel routes to decide what to do. +You may also set the option `ignoreBody=true` to not change the message body. + === camel-test The `CamelTestSupport` class was modified so that the JUnit 5 extension code that was part of the class itself, diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java index 4d21a4f9e58..f3bc2695a1f 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java @@ -3626,6 +3626,18 @@ public interface AWS2S3EndpointBuilderFactory { public String awsS3BucketDestinationName() { return "CamelAwsS3BucketDestinationName"; } + /** + * Whether the bucket exists when using the headBucket operation. + * + * The option is a: {@code boolean} type. + * + * Group: common + * + * @return the name of the header {@code AwsS3BucketExists}. + */ + public String awsS3BucketExists() { + return "CamelAwsS3BucketExists"; + } /** * The optional Cache-Control HTTP header which allows the user to * specify caching behavior along the HTTP request/reply chain.
