You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2022/03/16 19:13:20 UTC

[camel] 31/33: CAMEL-17792: Add doc about the message headers of camel-azure-storage-blob

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

nfilotto pushed a commit to branch CAMEL-17792/doc-message-headers
in repository https://gitbox.apache.org/repos/asf/camel.git

commit bfa5b28d9cdb8090314e03bd64705e90d588874e
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Mar 16 18:10:40 2022 +0100

    CAMEL-17792: Add doc about the message headers of camel-azure-storage-blob
---
 .../azure/storage/blob/azure-storage-blob.json     |  64 ++++++++
 .../main/docs/azure-storage-blob-component.adoc    |  82 +----------
 .../azure/storage/blob/BlobConstants.java          | 164 ++++++++++++++++++++-
 .../component/azure/storage/blob/BlobEndpoint.java |   3 +-
 4 files changed, 232 insertions(+), 81 deletions(-)

diff --git a/components/camel-azure/camel-azure-storage-blob/src/generated/resources/org/apache/camel/component/azure/storage/blob/azure-storage-blob.json b/components/camel-azure/camel-azure-storage-blob/src/generated/resources/org/apache/camel/component/azure/storage/blob/azure-storage-blob.json
index 6e8378d..e8a7dd5 100644
--- a/components/camel-azure/camel-azure-storage-blob/src/generated/resources/org/apache/camel/component/azure/storage/blob/azure-storage-blob.json
+++ b/components/camel-azure/camel-azure-storage-blob/src/generated/resources/org/apache/camel/component/azure/storage/blob/azure-storage-blob.json
@@ -54,6 +54,70 @@
     "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.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Access key for the associated azure account name to be used for authentication with azure blob services" },
     "sourceBlobAccessKey": { "kind": "property", "displayName": "Source Blob 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.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Source Blob Access Key: for copyblob operation, sadly, we need to have an accessKey for th [...]
   },
+  "headers": {
+    "CamelAzureStorageBlobOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition", "enum": [ "listBlobContainers", "createBlobContainer", "deleteBlobContainer", "listBlobs", "getBlob", "deleteBlob", "downloadBlobToFile", "downloadLink", "uploadBlockBlob", "stageBlockBlobList", "commitBlobBlockList", "getBlobBlockList", "createAppendBlob", "commitApp [...]
+    "CamelAzureStorageBlobHttpHeaders": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "BlobHttpHeaders", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(uploadBlockBlob, commitBlobBlockList, createAppendBlob, createPageBlob) Additional parameters for a set of operations." },
+    "CamelAzureStorageBlobETag": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The E Tag of the blob" },
+    "CamelAzureStorageBlobCreationTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "OffsetDateTime", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Creation time of the blob." },
+    "CamelAzureStorageBlobLastModified": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "OffsetDateTime", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Datetime when the blob was last modified." },
+    "CamelAzureStorageBlobContentType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Content type specified for the blob." },
+    "CamelAzureStorageBlobContentMD5": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "byte[]", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) (Most operations related to upload blob) Most operations related to upload blob|An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport. When this header is specified, the storage ser [...]
+    "CamelAzureStorageBlobContentEncoding": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Content encoding specified for the blob." },
+    "CamelAzureStorageBlobContentDisposition": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Content disposition specified for the blob." },
+    "CamelAzureStorageBlobContentLanguage": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Content language specified for the blob." },
+    "CamelAzureStorageBlobCacheControl": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cache control specified for the blob." },
+    "CamelAzureStorageBlobBlobSize": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The size of the blob." },
+    "CamelAzureStorageBlobSequenceNumber": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) (createPageBlob) A user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1. The default value is 0.\n(consumer) The current sequence number for a page blob." },
+    "CamelAzureStorageBlobBlobType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.apache.camel.component.azure.storage.blob.BlobType", "enum": [ "blockblob", "appendblob", "pageblob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of the blob." },
+    "CamelAzureStorageBlobLeaseStatus": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "com.azure.storage.blob.models.LeaseStatusType", "enum": [ "locked", "unlocked" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Status of the lease on the blob." },
+    "CamelAzureStorageBlobLeaseState": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "com.azure.storage.blob.models.LeaseStateType", "enum": [ "available", "leased", "expired", "breaking", "broken" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "State of the lease on the blob." },
+    "CamelAzureStorageBlobLeaseDuration": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "com.azure.storage.blob.models.LeaseDurationType", "enum": [ "infinite", "fixed" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of lease on the blob." },
+    "CamelAzureStorageBlobCopyId": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Identifier of the last copy operation performed on the blob." },
+    "CamelAzureStorageBlobCopyStatus": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "com.azure.storage.blob.models.CopyStatusType", "enum": [ "pending", "success", "aborted", "failed" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Status of the last copy operation performed on the blob." },
+    "CamelAzureStorageBlobCopySource": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Source of the last copy operation performed on the blob." },
+    "CamelAzureStorageBlobCopyProgress": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Progress of the last copy operation performed on the blob." },
+    "CamelAzureStorageBlobCopyCompletionTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "OffsetDateTime", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Datetime when the last copy operation on the blob completed." },
+    "CamelAzureStorageBlobCopyStatusDescription": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Description of the last copy operation on the blob." },
+    "CamelAzureStorageBlobCopyDestinationSnapshot": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Snapshot identifier of the last incremental copy snapshot for the blob." },
+    "CamelAzureStorageBlobIsServerEncrypted": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Flag indicating if the blob's content is encrypted on the server." },
+    "CamelAzureStorageBlobIsIncrementalCopy": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Flag indicating if the blob was incrementally copied." },
+    "CamelAzureStorageBlobAccessTier": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "AccessTier", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) (uploadBlockBlob, commitBlobBlockList) Defines values for AccessTier.\n(consumer) Access tier of the blob." },
+    "CamelAzureStorageBlobIsAccessTierInferred": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Flag indicating if the access tier of the blob was inferred from properties of the blob." },
+    "CamelAzureStorageBlobArchiveStatus": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "ArchiveStatus", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Archive status of the blob." },
+    "CamelAzureStorageBlobaccessTierChangeTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "OffsetDateTime", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Datetime when the access tier of the blob last changed." },
+    "CamelAzureStorageBlobMetadata": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Map<String,String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) (Operations related to container and blob) Operations related to container and blob| Metadata to associate with the container or blob.\n(consumer) Additional metadata associated with the blob." },
+    "CamelAzureStorageBlobCommittedBlockCount": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Number of blocks committed to an append blob" },
+    "CamelAzureStorageBlobAppendOffset": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The offset at which the block was committed to the block blob." },
+    "CamelAzureStorageBlobRawHttpHeaders": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "HttpHeaders", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns non-parsed httpHeaders that can be used by the user." },
+    "CamelAzureStorageBlobFileName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The downloaded filename from the operation `downloadBlobToFile`." },
+    "CamelAzureStorageBlobDownloadLink": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The download link generated by `downloadLink` operation." },
+    "CamelAzureStorageBlobListBlobOptions": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "ListBlobsOptions", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(listBlobs) Defines options available to configure the behavior of a call to listBlobsFlatSegment on a `BlobContainerClient` object." },
+    "CamelAzureStorageBlobListDetails": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "BlobListDetails", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(listBlobs) The details for listing specific blobs" },
+    "CamelAzureStorageBlobPrefix": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(listBlobs,getBlob) Filters the results to return only blobs whose names begin with the specified prefix. May be null to return all blobs." },
+    "CamelAzureStorageBlobRegex": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(listBlobs,getBlob) Filters the results to return only blobs whose names match the specified regular expression. May be null to return all. If both prefix and regex are set, regex takes the priority and prefix is ignored." },
+    "CamelAzureStorageBlobMaxResultsPerPage": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(listBlobs) Specifies the maximum number of blobs to return, including all BlobPrefix elements. If the request does not specify maxResultsPerPage or specifies a value greater than 5,000, the server will return up to 5,000 items." },
+    "CamelAzureStorageBlobTimeout": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Duration", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(All) An optional timeout value beyond which a `RuntimeException` will be raised." },
+    "CamelAzureStorageBlobPublicAccessType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "PublicAccessType", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(createContainer) Specifies how the data in this container is available to the public. Pass `null` for no public access." },
+    "CamelAzureStorageBlobRequestCondition": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "BlobRequestConditions", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(Operations related to container and blob) This contains values which will restrict the successful operation of a variety of requests to the conditions present. These conditions are entirely optional." },
+    "CamelAzureStorageBlobBlobContainerName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(Operations related to container and blob) Override\/set the container name on the exchange headers." },
+    "CamelAzureStorageBlobBlobName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(Operations related to blob) Override\/set the blob name on the exchange headers." },
+    "CamelAzureStorageBlobFileDir": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(downloadBlobToFile) The file directory where the downloaded blobs will be saved to." },
+    "CamelAzureStorageBlobPageBlobRange": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "PageRange", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(Operations related to page blob) A `PageRange` object. Given that pages must be aligned with 512-byte boundaries, the start offset must be a modulus of 512 and the end offset must be a modulus of 512 - 1. Examples of valid byte [...]
+    "CamelAzureStorageBlobPageBlobSize": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(createPageBlob, resizePageBlob) Specifies the maximum size for the page blob, up to 8 TB. The page blob size must be aligned to a 512-byte boundary." },
+    "CamelAzureStorageBlobCommitBlobBlockListLater": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(stageBlockBlobList) When is set to `true`, the staged blocks will not be committed directly." },
+    "CamelAzureStorageBlobBlockListType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "com.azure.storage.blob.models.BlockListType", "enum": [ "committed", "uncommitted", "all" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(getBlobBlockList) Specifies which type of blocks to return." },
+    "CamelAzureStorageBlobCreateAppendBlob": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(commitAppendBlob) When is set to `true`, the append blocks will be created when committing append blocks." },
+    "CamelAzureStorageBlobCreatePageBlob": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(uploadPageBlob) When is set to `true`, the page blob will be created when uploading page blob." },
+    "CamelAzureStorageBlobDeleteSnapshotsOptionType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "com.azure.storage.blob.models.DeleteSnapshotsOptionType", "enum": [ "include", "only" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(deleteBlob) Specifies the behavior for deleting the snapshots on this blob. `Include` will delete the base blob and all snapshots. `Only`  [...]
+    "CamelAzureStorageBlobListBlobContainersOptions": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "ListBlobContainersOptions", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(listBlobContainers) A `ListBlobContainersOptions` which specifies what data should be returned by the service." },
+    "CamelAzureStorageBlobParallelTransferOptions": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "ParallelTransferOptions", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(downloadBlobToFile) `ParallelTransferOptions` to use to download to file. Number of parallel transfers parameter is ignored." },
+    "CamelAzureStorageBlobDownloadLinkExpiration": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(downloadLink) Override the default expiration (millis) of URL download link." },
+    "CamelAzureStorageBlobSourceBlobAccountName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(copyBlob) The source blob account name to be used as source account name in a copy blob operation" },
+    "CamelAzureStorageBlobSourceBlobContainerName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(copyBlob) The source blob container name to be used as source container name in a copy blob operation" },
+    "CamelAzureStorageBlobChangeFeedStartTime": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "OffsetDateTime", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(getChangeFeed) It filters the results to return events approximately after the start time. Note: A few events belonging to the previous hour can also be returned. A few events belonging to this hour can be missing; t [...]
+    "CamelAzureStorageBlobChangeFeedEndTime": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "OffsetDateTime", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(getChangeFeed) It filters  the results to return events approximately before the end time. Note: A few events belonging to the next hour can also be returned. A few events belonging to this hour can be missing; to ensu [...]
+    "CamelAzureStorageBlobContext": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Context", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(getChangeFeed) This gives additional context that is passed through the Http pipeline during the service call." }
+  },
   "properties": {
     "accountName": { "kind": "path", "displayName": "Account Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Azure account name to be used for authentication with azure blob services" },
     "containerName": { "kind": "path", "displayName": "Container Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "The blob container name" },
diff --git a/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc b/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
index 2112520..269551c 100644
--- a/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
+++ b/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
@@ -89,85 +89,9 @@ from("azure-storage-blob://camelazure/container1?blobName=hello.txt&accessKey=yo
 to("file://blobdirectory");
 --------------------------------------------------------------------------------
 
-=== Message headers evaluated by the component producer
-[width="100%",cols="10%,10%,10%,10%,60%",options="header",]
-|=======================================================================
-|Header |Variable Name |Type |Operations |Description
-
-|`CamelAzureStorageBlobTimeout` |`BlobConstants.TIMEOUT`|`Duration`|All|An optional timeout value beyond which a {@link RuntimeException} will be raised.
-|`CamelAzureStorageBlobMetadata`|`BlobConstants.METADATA`|`Map<String,String>`|Operations related to container and blob| Metadata to associate with the container or blob.
-|`CamelAzureStorageBlobPublicAccessType`|`BlobConstants.PUBLIC_ACCESS_TYPE`|`PublicAccessType`|`createContainer`|Specifies how the data in this container is available to the public. Pass `null` for no public access.
-|`CamelAzureStorageBlobRequestCondition`|`BlobConstants.BLOB_REQUEST_CONDITION`|`BlobRequestConditions`|Operations related to container and blob|This contains values which will restrict the successful operation of a variety of requests to the conditions present. These conditions are entirely optional.
-|`CamelAzureStorageBlobListDetails`|`BlobConstants.BLOB_LIST_DETAILS`|`BlobListDetails`|`listBlobs`|The details for listing specific blobs
-|`CamelAzureStorageBlobPrefix`|`BlobConstants.PREFIX`|`String`|`listBlobs`,`getBlob`|Filters the results to return only blobs whose names begin with the specified prefix. May be null to return all blobs.
-|`CamelAzureStorageBlobMaxResultsPerPage`|`BlobConstants.MAX_RESULTS_PER_PAGE`|`Integer`|`listBlobs`| Specifies the maximum number of blobs to return, including all BlobPrefix elements. If the request does not specify maxResultsPerPage or specifies a value greater than 5,000, the server will return up to 5,000 items.
-|`CamelAzureStorageBlobListBlobOptions`|`BlobConstants.LIST_BLOB_OPTIONS`|`ListBlobsOptions`|`listBlobs`|Defines options available to configure the behavior of a call to listBlobsFlatSegment on a {@link BlobContainerClient} object.
-|`CamelAzureStorageBlobHttpHeaders`|`BlobConstants.BLOB_HTTP_HEADERS`|`BlobHttpHeaders`|`uploadBlockBlob`, `commitBlobBlockList`, `createAppendBlob`, `createPageBlob`|  Additional parameters for a set of operations.
-|`CamelAzureStorageBlobAccessTier`|`BlobConstants.ACCESS_TIER`|`AccessTier`|`uploadBlockBlob`, `commitBlobBlockList`| Defines values for AccessTier.
-|`CamelAzureStorageBlobContentMD5`|`BlobConstants.CONTENT_MD5`|`byte[]`|Most operations related to upload blob|An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport. When this header is specified, the storage service compares the hash of the content that has arrived with this header value. Note that this MD5 hash is not stored with the blob. If the two hashes do not match, the operation will fail.
-|`CamelAzureStorageBlobPageBlobRange`|`BlobConstants.PAGE_BLOB_RANGE`|`PageRange`|Operations related to page blob| A {@link PageRange} object. Given that pages must be aligned with 512-byte boundaries, the start offset must be a modulus of 512 and the end offset must be a modulus of 512 - 1. Examples of valid byte ranges are 0-511, 512-1023, etc.
-|`CamelAzureStorageBlobCommitBlobBlockListLater`|`BlobConstants.COMMIT_BLOCK_LIST_LATER`|`boolean`|`stageBlockBlobList`| When is set to `true`, the staged blocks will not be committed directly.
-|`CamelAzureStorageBlobCreateAppendBlob`|`BlobConstants.CREATE_APPEND_BLOB`|`boolean`|`commitAppendBlob`| When is set to `true`, the append blocks will be created when committing append blocks.
-|`CamelAzureStorageBlobCreatePageBlob`|`BlobConstants.CREATE_PAGE_BLOB`|`boolean`|`uploadPageBlob`| When is set to `true`, the page blob will be created when uploading page blob.
-|`CamelAzureStorageBlobBlockListType`|`BlobConstants.BLOCK_LIST_TYPE`|`BlockListType`|`getBlobBlockList`| Specifies which type of blocks to return.
-|`CamelAzureStorageBlobPageBlobSize`|`BlobConstants.PAGE_BLOB_SIZE`|`Long`|`createPageBlob`, `resizePageBlob`| Specifies the maximum size for the page blob, up to 8 TB. The page blob size must be aligned to a 512-byte boundary.
-|`CamelAzureStorageBlobSequenceNumber`|`BlobConstants.BLOB_SEQUENCE_NUMBER`|`Long`|`createPageBlob`|A user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1.The default value is 0.
-|`CamelAzureStorageBlobDeleteSnapshotsOptionType`|`BlobConstants.DELETE_SNAPSHOT_OPTION_TYPE`|`DeleteSnapshotsOptionType`|`deleteBlob`| Specifies the behavior for deleting the snapshots on this blob. {@code Include} will delete the base blob and all snapshots. {@code Only} will delete only the snapshots. If a snapshot is being deleted, you must pass null.
-|`CamelAzureStorageBlobListBlobContainersOptions`|`BlobConstants.LIST_BLOB_CONTAINERS_OPTIONS`|`ListBlobContainersOptions`|`listBlobContainers`| A {@link ListBlobContainersOptions} which specifies what data should be returned by the service.
-|`CamelAzureStorageBlobParallelTransferOptions`|`BlobConstants.PARALLEL_TRANSFER_OPTIONS`|`ParallelTransferOptions`|`downloadBlobToFile`| {@link ParallelTransferOptions} to use to download to file. Number of parallel transfers parameter is ignored.
-|`CamelAzureStorageBlobFileDir`|`BlobConstants.FILE_DIR`|`String`|`downloadBlobToFile`|The file directory where the downloaded blobs will be saved to.
-|`CamelAzureStorageBlobDownloadLinkExpiration`|`BlobConstants.DOWNLOAD_LINK_EXPIRATION`|`Long`|`downloadLink`| Override the default expiration (millis) of URL download link.
-|`CamelAzureStorageBlobBlobName`|`BlobConstants.BLOB_NAME`|`String`|Operations related to blob| Override/set the blob name on the exchange headers.
-|`CamelAzureStorageBlobContainerName`|`BlobConstants.BLOB_CONTAINER_NAME`|`String`|Operations related to container and blob|Override/set the container name on the exchange headers.
-|`CamelAzureStorageBlobOperation`|`BlobConstants.BLOB_OPERATION`|`BlobOperationsDefinition`|All|Specify the producer operation to execute, please see the doc on this page related to producer operation.
-|`CamelAzureStorageBlobRegex`|`BlobConstants.REGEX`|`String`|`listBlobs`,`getBlob`|Filters the results to return only blobs whose names match the specified regular expression. May be null to return all. If both prefix and regex are set, regex takes the priority and prefix is ignored.
-|`CamelAzureStorageBlobChangeFeedStartTime`|`BlobConstants.CHANGE_FEED_START_TIME`|`OffsetDateTime`|`getChangeFeed`| It filters the results to return events approximately after the start time. Note: A few events belonging to the previous hour can also be returned. A few events belonging to this hour can be missing; to ensure all events from the hour are returned, round the start time down by an hour.
-|`CamelAzureStorageBlobChangeFeedEndTime`|`BlobConstants.CHANGE_FEED_END_TIME`|`OffsetDateTime`|`getChangeFeed`| It filters  the results to return events approximately before the end time. Note: A few events belonging to the next hour can also be returned. A few events belonging to this hour can be missing; to ensure all events from the hour are returned, round the end time up by an hour.
-|`CamelAzureStorageBlobChangeFeedContext`|`BlobConstants.CHANGE_FEED_CONTEXT`|`Context`|`getChangeFeed`| This gives additional context that is passed through the Http pipeline during the service call.
-|`CamelAzureStorageBlobSourceBlobAccountName`|`BlobConstants.SOURCE_BLOB_ACCOUNT_NAME`|`String`|`copyBlob`| The source blob account name to be used as source account name in a copy blob operation
-|`CamelAzureStorageBlobSourceBlobContainerName`|`BlobConstants.SOURCE_BLOB_CONTAINER_NAME`|`String`|`copyBlob`| The source blob container name to be used as source container name in a copy blob operation
-|=======================================================================
-
-=== Message headers set by either component producer or consumer
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Header |Variable Name |Type |Description
-
-|`CamelAzureStorageBlobAccessTier`|`BlobConstants.ACCESS_TIER`|`AccessTier`| Access tier of the blob.
-|`CamelAzureStorageBlobAccessTierChangeTime`|`BlobConstants.ACCESS_TIER_CHANGE_TIME`|`OffsetDateTime`| Datetime when the access tier of the blob last changed.
-|`CamelAzureStorageBlobArchiveStatus`|`BlobConstants.ARCHIVE_STATUS`|`ArchiveStatus`|Archive status of the blob.
-|`CamelAzureStorageBlobCreationTime`|`BlobConstants.CREATION_TIME`|`OffsetDateTime`|Creation time of the blob.
-|`CamelAzureStorageBlobSequenceNumber`|`BlobConstants.BLOB_SEQUENCE_NUMBER`|`Long`|The current sequence number for a page blob.
-|`CamelAzureStorageBlobBlobSize`|`BlobConstants.BLOB_SIZE`|`long`|The size of the blob.
-|`CamelAzureStorageBlobBlobType`|`BlobConstants.BLOB_TYPE`|`BlobType`|The type of the blob.
-|`CamelAzureStorageBlobCacheControl`|`BlobConstants.CACHE_CONTROL`|`String`|Cache control specified for the blob.
-|`CamelAzureStorageBlobCommittedBlockCount`|`BlobConstants.COMMITTED_BLOCK_COUNT`|`Integer`|  Number of blocks committed to an append blob
-|`CamelAzureStorageBlobContentDisposition`|`BlobConstants.CONTENT_DISPOSITION`|`String`|Content disposition specified for the blob.
-|`CamelAzureStorageBlobContentEncoding`|`BlobConstants.CONTENT_ENCODING`|`String`|Content encoding specified for the blob.
-|`CamelAzureStorageBlobContentLanguage`|`BlobConstants.CONTENT_LANGUAGE`|`String`|Content language specified for the blob.
-|`CamelAzureStorageBlobContentMd5`|`BlobConstants.CONTENT_MD5`|`byte[]`|Content MD5 specified for the blob.
-|`CamelAzureStorageBlobContentType`|`BlobConstants.CONTENT_TYPE`|`String`|Content type specified for the blob.
-|`CamelAzureStorageBlobCopyCompletionTime`|`BlobConstants.COPY_COMPILATION_TIME`|`OffsetDateTime`|Datetime when the last copy operation on the blob completed.
-|`CamelAzureStorageBlobCopyDestinationSnapshot`|`BlobConstants.COPY_DESTINATION_SNAPSHOT`|`String`|Snapshot identifier of the last incremental copy snapshot for the blob.
-|`CamelAzureStorageBlobCopyId`|`BlobConstants.COPY_ID`|`String`|Identifier of the last copy operation performed on the blob.
-|`CamelAzureStorageBlobCopyProgress`|`BlobConstants.COPY_PROGRESS`|`String`|Progress of the last copy operation performed on the blob.
-|`CamelAzureStorageBlobCopySource`|`BlobConstants.COPY_SOURCE`|`String`|Source of the last copy operation performed on the blob.
-|`CamelAzureStorageBlobCopyStatus`|`BlobConstants.COPY_STATUS`|`CopyStatusType`|Status of the last copy operation performed on the blob.
-|`CamelAzureStorageBlobCopyStatusDescription` | `BlobConstants.COPY_STATUS_DESCRIPTION`|`String`|Description of the last copy operation on the blob.
-|`CamelAzureStorageBlobETag`|`BlobConstants.E_TAG`|`String`| The E Tag of the blob
-|`CamelAzureStorageBlobIsAccessTierInferred`|`BlobConstants.IS_ACCESS_TIER_INFRRRED`|`boolean`| Flag indicating if the access tier of the blob was inferred from properties of the blob.
-|`CamelAzureStorageBlobIsIncrementalCopy`|`BlobConstants.IS_INCREMENTAL_COPY`|`boolean`|Flag indicating if the blob was incrementally copied.
-|`CamelAzureStorageBlobIsServerEncrypted`|`BlobConstants.IS_SERVER_ENCRYPTED`|`boolean`|Flag indicating if the blob's content is encrypted on the server.
-|`CamelAzureStorageBlobLastModified`|`BlobConstants.LAST_MODIFIED`|`OffsetDateTime`|Datetime when the blob was last modified.
-|`CamelAzureStorageBlobLeaseDuration`|`BlobConstants.LEASE_DURATION`|`LeaseDurationType`|Type of lease on the blob.
-|`CamelAzureStorageBlobLeaseState`|`BlobConstants.LEASE_STATE`|`LeaseStateType`|State of the lease on the blob.
-|`CamelAzureStorageBlobLeaseStatus`|`BlobConstants.LEASE_STATUS`|`LeaseStatusType`|Status of the lease on the blob.
-|`CamelAzureStorageBlobMetadata`|`BlobConstants.METADATA`|`Map<String, String>`| Additional metadata associated with the blob.
-|`CamelAzureStorageBlobAppendOffset`|`BlobConstants.APPEND_OFFSET`|`String`| The offset at which the block was committed to the block blob.
-|`CamelAzureStorageBlobFileName`|`BlobConstants.FILE_NAME`|`String`|The downloaded filename from the operation `downloadBlobToFile`.
-|`CamelAzureStorageBlobDownloadLink`|`BlobConstants.DOWNLOAD_LINK`|`String`|The download link generated by `downloadLink` operation.
-|`CamelAzureStorageBlobRawHttpHeaders`|`BlobConstants.RAW_HTTP_HEADERS`|`HttpHeaders`|Returns non-parsed httpHeaders that can be used by the user.
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Advanced Azure Storage Blob configuration
 
diff --git a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobConstants.java b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobConstants.java
index 5fb7691..ec068d8 100644
--- a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobConstants.java
+++ b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobConstants.java
@@ -16,77 +16,239 @@
  */
 package org.apache.camel.component.azure.storage.blob;
 
+import org.apache.camel.spi.Metadata;
+
 public final class BlobConstants {
     // constants
     public static final Long PAGE_BLOB_DEFAULT_SIZE = 512L;
     private static final String HEADER_PREFIX = "CamelAzureStorageBlob";
     // header names
+    @Metadata(label = "producer",
+              description = "(All) Specify the producer operation to execute, please see the doc on this page related to producer operation.",
+              javaType = "org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition")
     public static final String BLOB_OPERATION = HEADER_PREFIX + "Operation";
+    @Metadata(label = "producer",
+              description = "(uploadBlockBlob, commitBlobBlockList, createAppendBlob, createPageBlob) Additional parameters for a set of operations.",
+              javaType = "BlobHttpHeaders")
     public static final String BLOB_HTTP_HEADERS = HEADER_PREFIX + "HttpHeaders";
+    @Metadata(label = "consumer", description = "The E Tag of the blob", javaType = "String")
     public static final String E_TAG = HEADER_PREFIX + "ETag";
+    @Metadata(label = "consumer", description = "Creation time of the blob.", javaType = "OffsetDateTime")
     public static final String CREATION_TIME = HEADER_PREFIX + "CreationTime";
+    @Metadata(label = "consumer", description = "Datetime when the blob was last modified.", javaType = "OffsetDateTime")
     public static final String LAST_MODIFIED = HEADER_PREFIX + "LastModified";
+    @Metadata(label = "consumer", description = "Content type specified for the blob.", javaType = "String")
     public static final String CONTENT_TYPE = HEADER_PREFIX + "ContentType";
+    @Metadata(description = "(producer) (Most operations related to upload blob) Most operations related to upload blob|An MD5 hash of the block content. "
+                            +
+                            "This hash is used to verify the integrity of the block during transport. " +
+                            "When this header is specified, the storage service compares the hash of the content that has arrived with this header value. "
+                            +
+                            "Note that this MD5 hash is not stored with the blob. If the two hashes do not match, the operation will fail.\n"
+                            +
+                            "(consumer) Content MD5 specified for the blob.",
+              javaType = "byte[]")
     public static final String CONTENT_MD5 = HEADER_PREFIX + "ContentMD5";
+    @Metadata(label = "consumer", description = "Content encoding specified for the blob.", javaType = "String")
     public static final String CONTENT_ENCODING = HEADER_PREFIX + "ContentEncoding";
+    @Metadata(label = "consumer", description = "Content disposition specified for the blob.", javaType = "String")
     public static final String CONTENT_DISPOSITION = HEADER_PREFIX + "ContentDisposition";
+    @Metadata(label = "consumer", description = "Content language specified for the blob.", javaType = "String")
     public static final String CONTENT_LANGUAGE = HEADER_PREFIX + "ContentLanguage";
+    @Metadata(label = "consumer", description = "Cache control specified for the blob.", javaType = "String")
     public static final String CACHE_CONTROL = HEADER_PREFIX + "CacheControl";
+    @Metadata(label = "consumer", description = "The size of the blob.", javaType = "long")
     public static final String BLOB_SIZE = HEADER_PREFIX + "BlobSize";
+    @Metadata(description = "(producer) (createPageBlob) A user-controlled value that you can use to track requests. " +
+                            "The value of the sequence number must be between 0 and 2^63 - 1. The default value is 0.\n" +
+                            "(consumer) The current sequence number for a page blob.",
+              javaType = "Long")
     public static final String BLOB_SEQUENCE_NUMBER = HEADER_PREFIX + "SequenceNumber";
+    @Metadata(label = "consumer", description = "The type of the blob.",
+              javaType = "org.apache.camel.component.azure.storage.blob.BlobType")
     public static final String BLOB_TYPE = HEADER_PREFIX + "BlobType";
+    @Metadata(label = "consumer", description = "Status of the lease on the blob.",
+              javaType = "com.azure.storage.blob.models.LeaseStatusType")
     public static final String LEASE_STATUS = HEADER_PREFIX + "LeaseStatus";
+    @Metadata(label = "consumer", description = "State of the lease on the blob.",
+              javaType = "com.azure.storage.blob.models.LeaseStateType")
     public static final String LEASE_STATE = HEADER_PREFIX + "LeaseState";
+    @Metadata(label = "consumer", description = "Type of lease on the blob.",
+              javaType = "com.azure.storage.blob.models.LeaseDurationType")
     public static final String LEASE_DURATION = HEADER_PREFIX + "LeaseDuration";
+    @Metadata(label = "consumer", description = "Identifier of the last copy operation performed on the blob.",
+              javaType = "String")
     public static final String COPY_ID = HEADER_PREFIX + "CopyId";
+    @Metadata(label = "consumer", description = "Status of the last copy operation performed on the blob.",
+              javaType = "com.azure.storage.blob.models.CopyStatusType")
     public static final String COPY_STATUS = HEADER_PREFIX + "CopyStatus";
+    @Metadata(label = "consumer", description = "Source of the last copy operation performed on the blob.", javaType = "String")
     public static final String COPY_SOURCE = HEADER_PREFIX + "CopySource";
+    @Metadata(label = "consumer", description = "Progress of the last copy operation performed on the blob.",
+              javaType = "String")
     public static final String COPY_PROGRESS = HEADER_PREFIX + "CopyProgress";
+    @Metadata(label = "consumer", description = "Datetime when the last copy operation on the blob completed.",
+              javaType = "OffsetDateTime")
     public static final String COPY_COMPILATION_TIME = HEADER_PREFIX + "CopyCompletionTime";
+    @Metadata(label = "consumer", description = "Description of the last copy operation on the blob.", javaType = "String")
     public static final String COPY_STATUS_DESCRIPTION = HEADER_PREFIX + "CopyStatusDescription";
+    @Metadata(label = "consumer", description = "Snapshot identifier of the last incremental copy snapshot for the blob.",
+              javaType = "String")
     public static final String COPY_DESTINATION_SNAPSHOT = HEADER_PREFIX + "CopyDestinationSnapshot";
+    @Metadata(label = "consumer", description = "Flag indicating if the blob's content is encrypted on the server.",
+              javaType = "boolean")
     public static final String IS_SERVER_ENCRYPTED = HEADER_PREFIX + "IsServerEncrypted";
+    @Metadata(label = "consumer", description = "Flag indicating if the blob was incrementally copied.", javaType = "boolean")
     public static final String IS_INCREMENTAL_COPY = HEADER_PREFIX + "IsIncrementalCopy";
+    @Metadata(description = "(producer) (uploadBlockBlob, commitBlobBlockList) Defines values for AccessTier.\n"
+                            + "(consumer) Access tier of the blob.",
+              javaType = "AccessTier")
     public static final String ACCESS_TIER = HEADER_PREFIX + "AccessTier";
+    @Metadata(label = "consumer",
+              description = "Flag indicating if the access tier of the blob was inferred from properties of the blob.",
+              javaType = "boolean")
     public static final String IS_ACCESS_TIER_INFRRRED = HEADER_PREFIX + "IsAccessTierInferred";
+    @Metadata(label = "consumer", description = "Archive status of the blob.", javaType = "ArchiveStatus")
     public static final String ARCHIVE_STATUS = HEADER_PREFIX + "ArchiveStatus";
     public static final String ENCRYPTION_KEY_SHA_256 = HEADER_PREFIX + "EncryptionKeySha256";
     public static final String ENCRYPTION_SCOPE = HEADER_PREFIX + "EncryptionScope";
+    @Metadata(label = "consumer", description = "Datetime when the access tier of the blob last changed.",
+              javaType = "OffsetDateTime")
     public static final String ACCESS_TIER_CHANGE_TIME = HEADER_PREFIX + "accessTierChangeTime";
+    @Metadata(description = "(producer) (Operations related to container and blob) Operations related to container and blob| Metadata to associate with the container or blob.\n"
+                            + "(consumer) Additional metadata associated with the blob.",
+              javaType = "Map<String,String>")
     public static final String METADATA = HEADER_PREFIX + "Metadata";
+    @Metadata(label = "consumer", description = "Number of blocks committed to an append blob", javaType = "Integer")
     public static final String COMMITTED_BLOCK_COUNT = HEADER_PREFIX + "CommittedBlockCount";
+    @Metadata(label = "consumer", description = "The offset at which the block was committed to the block blob.",
+              javaType = "String")
     public static final String APPEND_OFFSET = HEADER_PREFIX + "AppendOffset";
+    @Metadata(label = "consumer", description = "Returns non-parsed httpHeaders that can be used by the user.",
+              javaType = "HttpHeaders")
     public static final String RAW_HTTP_HEADERS = HEADER_PREFIX + "RawHttpHeaders";
+    @Metadata(label = "consumer", description = "The downloaded filename from the operation `downloadBlobToFile`.",
+              javaType = "String")
     public static final String FILE_NAME = HEADER_PREFIX + "FileName";
+    @Metadata(label = "consumer", description = "The download link generated by `downloadLink` operation.", javaType = "String")
     public static final String DOWNLOAD_LINK = HEADER_PREFIX + "DownloadLink";
     // headers to be retrieved
+    @Metadata(label = "producer",
+              description = "(listBlobs) Defines options available to configure the behavior of a call to listBlobsFlatSegment on a `BlobContainerClient` object.",
+              javaType = "ListBlobsOptions")
     public static final String LIST_BLOB_OPTIONS = HEADER_PREFIX + "ListBlobOptions";
+    @Metadata(label = "producer", description = "(listBlobs) The details for listing specific blobs",
+              javaType = "BlobListDetails")
     public static final String BLOB_LIST_DETAILS = HEADER_PREFIX + "ListDetails";
+    @Metadata(label = "producer",
+              description = "(listBlobs,getBlob) Filters the results to return only blobs whose names begin with the specified prefix. May be null to return all blobs.",
+              javaType = "String")
     public static final String PREFIX = HEADER_PREFIX + "Prefix";
+    @Metadata(label = "producer",
+              description = "(listBlobs,getBlob) Filters the results to return only blobs whose names match the specified regular expression. "
+                            +
+                            "May be null to return all. If both prefix and regex are set, regex takes the priority and prefix is ignored.",
+              javaType = "String")
     public static final String REGEX = HEADER_PREFIX + "Regex";
+    @Metadata(label = "producer",
+              description = "(listBlobs) Specifies the maximum number of blobs to return, including all BlobPrefix elements. " +
+                            "If the request does not specify maxResultsPerPage or specifies a value greater than 5,000, the server will return up to 5,000 items.",
+              javaType = "Integer")
     public static final String MAX_RESULTS_PER_PAGE = HEADER_PREFIX + "MaxResultsPerPage";
+    @Metadata(label = "producer",
+              description = "(All) An optional timeout value beyond which a `RuntimeException` will be raised.",
+              javaType = "Duration")
     public static final String TIMEOUT = HEADER_PREFIX + "Timeout";
+    @Metadata(label = "producer",
+              description = "(createContainer) Specifies how the data in this container is available to the public. Pass `null` for no public access.",
+              javaType = "PublicAccessType")
     public static final String PUBLIC_ACCESS_TYPE = HEADER_PREFIX + "PublicAccessType";
+    @Metadata(label = "producer",
+              description = "(Operations related to container and blob) This contains values which will restrict the successful operation of a variety of requests to the conditions present. "
+                            +
+                            "These conditions are entirely optional.",
+              javaType = "BlobRequestConditions")
     public static final String BLOB_REQUEST_CONDITION = HEADER_PREFIX + "RequestCondition";
+    @Metadata(label = "producer",
+              description = "(Operations related to container and blob) Override/set the container name on the exchange headers.",
+              javaType = "String")
     public static final String BLOB_CONTAINER_NAME = HEADER_PREFIX + "BlobContainerName";
+    @Metadata(label = "producer",
+              description = "(Operations related to blob) Override/set the blob name on the exchange headers.",
+              javaType = "String")
     public static final String BLOB_NAME = HEADER_PREFIX + "BlobName";
+    @Metadata(label = "producer",
+              description = "(downloadBlobToFile) The file directory where the downloaded blobs will be saved to.",
+              javaType = "String")
     public static final String FILE_DIR = HEADER_PREFIX + "FileDir";
+    @Metadata(label = "producer",
+              description = "(Operations related to page blob) A `PageRange` object. Given that pages must be aligned with 512-byte boundaries, "
+                            +
+                            "the start offset must be a modulus of 512 and the end offset must be a modulus of 512 - 1." +
+                            " Examples of valid byte ranges are 0-511, 512-1023, etc.",
+              javaType = "PageRange")
     public static final String PAGE_BLOB_RANGE = HEADER_PREFIX + "PageBlobRange";
+    @Metadata(label = "producer",
+              description = "(createPageBlob, resizePageBlob) Specifies the maximum size for the page blob, up to 8 TB. The page blob size must be aligned to a 512-byte boundary.",
+              javaType = "Long")
     public static final String PAGE_BLOB_SIZE = HEADER_PREFIX + "PageBlobSize";
+    @Metadata(label = "producer",
+              description = "(stageBlockBlobList) When is set to `true`, the staged blocks will not be committed directly.",
+              javaType = "boolean")
     public static final String COMMIT_BLOCK_LIST_LATER = HEADER_PREFIX + "CommitBlobBlockListLater";
+    @Metadata(label = "producer", description = "(getBlobBlockList) Specifies which type of blocks to return.",
+              javaType = "com.azure.storage.blob.models.BlockListType")
     public static final String BLOCK_LIST_TYPE = HEADER_PREFIX + "BlockListType";
+    @Metadata(label = "producer",
+              description = "(commitAppendBlob) When is set to `true`, the append blocks will be created when committing append blocks.",
+              javaType = "boolean")
     public static final String CREATE_APPEND_BLOB = HEADER_PREFIX + "CreateAppendBlob";
+    @Metadata(label = "producer",
+              description = "(uploadPageBlob) When is set to `true`, the page blob will be created when uploading page blob.",
+              javaType = "boolean")
     public static final String CREATE_PAGE_BLOB = HEADER_PREFIX + "CreatePageBlob";
+    @Metadata(label = "producer",
+              description = "(deleteBlob) Specifies the behavior for deleting the snapshots on this blob. `Include` will delete the base blob and all snapshots. "
+                            +
+                            "`Only` will delete only the snapshots. If a snapshot is being deleted, you must pass null.",
+              javaType = "com.azure.storage.blob.models.DeleteSnapshotsOptionType")
     public static final String DELETE_SNAPSHOT_OPTION_TYPE = HEADER_PREFIX + "DeleteSnapshotsOptionType";
+    @Metadata(label = "producer",
+              description = "(listBlobContainers) A `ListBlobContainersOptions` which specifies what data should be returned by the service.",
+              javaType = "ListBlobContainersOptions")
     public static final String LIST_BLOB_CONTAINERS_OPTIONS = HEADER_PREFIX + "ListBlobContainersOptions";
+    @Metadata(label = "producer",
+              description = "(downloadBlobToFile) `ParallelTransferOptions` to use to download to file. Number of parallel transfers parameter is ignored.",
+              javaType = "ParallelTransferOptions")
     public static final String PARALLEL_TRANSFER_OPTIONS = HEADER_PREFIX + "ParallelTransferOptions";
+    @Metadata(label = "producer", description = "(downloadLink) Override the default expiration (millis) of URL download link.",
+              javaType = "Long")
     public static final String DOWNLOAD_LINK_EXPIRATION = HEADER_PREFIX + "DownloadLinkExpiration";
+    @Metadata(label = "producer",
+              description = "(copyBlob) The source blob account name to be used as source account name in a copy blob operation",
+              javaType = "String")
     public static final String SOURCE_BLOB_ACCOUNT_NAME = HEADER_PREFIX + "SourceBlobAccountName";
+    @Metadata(label = "producer",
+              description = "(copyBlob) The source blob container name to be used as source container name in a copy blob operation",
+              javaType = "String")
     public static final String SOURCE_BLOB_CONTAINER_NAME = HEADER_PREFIX + "SourceBlobContainerName";
     public static final String DESTINATION_BLOB_NAME = HEADER_PREFIX + "DestinationBlobContainerName";
-    // changefeed
+    // change feed
+    @Metadata(label = "producer",
+              description = "(getChangeFeed) It filters the results to return events approximately after the start time. " +
+                            "Note: A few events belonging to the previous hour can also be returned. " +
+                            "A few events belonging to this hour can be missing; to ensure all events from the hour are returned, round the start time down by an hour.",
+              javaType = "OffsetDateTime")
     public static final String CHANGE_FEED_START_TIME = HEADER_PREFIX + "ChangeFeedStartTime";
+    @Metadata(label = "producer",
+              description = "(getChangeFeed) It filters  the results to return events approximately before the end time. " +
+                            "Note: A few events belonging to the next hour can also be returned. " +
+                            "A few events belonging to this hour can be missing; to ensure all events from the hour are returned, round the end time up by an hour.",
+              javaType = "OffsetDateTime")
     public static final String CHANGE_FEED_END_TIME = HEADER_PREFIX + "ChangeFeedEndTime";
+    @Metadata(label = "producer",
+              description = "(getChangeFeed) This gives additional context that is passed through the Http pipeline during the service call.",
+              javaType = "Context")
     public static final String CHANGE_FEED_CONTEXT = HEADER_PREFIX + "Context";
 
     private BlobConstants() {
diff --git a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobEndpoint.java b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobEndpoint.java
index 4f0b00d..2afa53d 100644
--- a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobEndpoint.java
+++ b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobEndpoint.java
@@ -37,7 +37,8 @@ import org.apache.camel.util.ObjectHelper;
  * Store and retrieve blobs from Azure Storage Blob Service.
  */
 @UriEndpoint(firstVersion = "3.3.0", scheme = "azure-storage-blob", title = "Azure Storage Blob Service",
-             syntax = "azure-storage-blob:accountName/containerName", category = { Category.CLOUD, Category.FILE })
+             syntax = "azure-storage-blob:accountName/containerName", category = { Category.CLOUD, Category.FILE },
+             headersClass = BlobConstants.class)
 public class BlobEndpoint extends ScheduledPollEndpoint {
 
     @UriParam