azure-storage-blob-source/kamelet.json

309 lines
14 KiB
JSON
Raw Permalink Normal View History

{
"apiVersion": "camel.apache.org/v1",
"kind": "Kamelet",
"metadata": {
"name": "azure-storage-blob-source",
"annotations": {
"camel.apache.org/kamelet.support.level": "Stable",
"camel.apache.org/catalog.version": "4.22.1",
"camel.apache.org/kamelet.icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny41NTggMHptLjIzNCA1Ny45NjRjMCAzLjM1My0yLjgwNSA2LjIyNy02LjA3OCA2LjIyN0gyOC41MmMtMy4yNzMgMC02LjA3OC0yLjg3NC02LjA3OC02LjIyN1YyMi4yNzZjMC0zLjM1MyAyLjgwNS02LjIyOCA2LjA3OC02LjIyOGgyOS45MjJsOS4zNTEgOS41ODF2MzIuMzM1ek00MS42MSA0Ni40NjdjMC0uNDc5LS4yMzQtLjcxOC0uMjM0LS45NThzLS4yMzQtLjQ3OS0uNDY3LS43MTgtLjIzNC0uMjQtLjQ2OC0uMjRoLS43MDFjLS40NjggMC0uNzAyIDAtLjkzNS4yNHMtLjQ2OC40NzktLjcwMS45NTgtLjIzNC45NTgtLjIzNCAxLjQzN3Y0LjU1MWMwIC43MTkuMjM0IDEuMTk3LjQ2OCAxLjQzNy4yMzQuNDc5LjQ2OC43MTkuNzAxLjcxOS4yMzQuMjQuNDY4LjI0LjkzNS4yNC4yMzQgMCAuNDY4IDAgLjcwMS0uMjRhLjUxLjUxIDAgMCAwIC40NjgtLjQ3OWMuMjM0LS4yNC4yMzQtLjQ3OS40NjctLjcxOCAwLS4yNC4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE5LjIzMy0xLjE5OHYtMy4xMTRjLS40NjctLjI0LS40NjctLjQ3OS0uNDY3LS45NTh6bTEwLjUyLTE4LjY4M2MwLS40NzktLjIzNC0uNzE4LS4yMzQtLjk1OHMtLjIzNC0uNDc5LS40NjgtLjcxOS0uMjM0LS4yNC0uNDY4LS4yNGgtLjcwMWMtLjQ2NyAwLS43MDEgMC0uOTM1LjI0cy0uNDY4LjQ3OS0uNzAyLjk1OC0uMjMzLjk1OC0uMjMzIDEuNDM3djQuNTUxYzAgLjcxOS4yMzMgMS4xOTguNDY3IDEuNDM3LjIzNC40NzkuNDY4LjcxOS43MDEuNzE5LjIzNC4yNC40NjcuMjQuOTM1LjI0LjIzNCAwIC40NjcgMCAuNzAxLS4yNGEuNTEuNTEgMCAwIDAgLjQ2OC0uNDc5Yy4yMzQtLjI0LjIzNC0uNDc5LjQ2OC0uNzE5IDAtLjIzOS4yMzQtLjQ3OS4yMzQtLjk1OCAwLS4yMzkgMC0uNzE4LjIzNC0xLjE5OHYtMy4xMTRjLS4yMzQgMC0uMjM0LS40NzktLjQ2Ny0uOTU4em00LjY3NS04LjM4M0gyOC41MTljLTEuNjM2IDAtMi44MDUgMS4xOTgtMi44MDUgMi44NzR2MzUuNjg5YzAgMS42NzcgMS4xNjkgMi44NzQgMi44MDUgMi44NzRoMzMuMTk1YTIuODggMi44OCAwIDAgMCAyLjgwNS0yLjg3NFYyNy4zMDVoLTcuNDh2LTcuOTA0ek0zNiAyNi41ODd2LS40NzlsLjIzNC0uMjQgMi44MDUtMS45MTZoMi41NzF2MTEuNDk3aDIuMzM4bC4yMzMuMjRjLjIzNC4yMzkgMCAuMjM5IDAgLjIzOXYxLjE5N3MwIC4yNC0uMjMzLjI0aC03LjcxNGwtLjIzNC0uMjR2LTEuNDM3czAtLjI0LjIzNC0uMjRoMi44MDV2LTguODYybC0yLjEwNCAxLjE5OGMtLjIzNCAwLS4yMzQuMjM5LS40NjcuMjM5aC0uMjM0czAtLjIzOS0uMjM0LS4yMzl2LTEuMTk4em04LjE4MiAyNS42MjljLS4yMzMuOTU4LS40NjcgMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjM5LTEuNDAzLjQ3OS0yLjMzOC40NzlzLTEuNjM2LS4yNC0yLjMzOC0uNDc5YTIuMTMgMi4xMyAwIDAgMS0xLjQwMy0xLjQzN2MtLjIzNC0uNzE4LS43MDEtMS40MzctLjcwMS0yLjE1Ni0uMjM0LS45NTgtLjIzNC0xLjkxNi0uMjM0LTIuODc0IDAtMS4xOTggMC0yLjE1Ni4yMzQtMi44NzQuMjM0LS45NTguNDY3LTEuNjc3LjkzNS0yLjE1NnMuOTM1LTEuMTk4IDEuNDAzLTEuNDM3Yy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yMzkgMi4zMzcuNDc5YTIuMTMgMi4xMyAwIDAgMSAxLjQwMyAxLjQzN2MuMjM0LjcxOS43MDEgMS40MzcuNzAxIDIuMTU2LjIzNC45NTguMjM0IDEuOTE2LjIzNCAyLjg3NCAwIDEuMTk4IDAgMi4xNTYtLjIzNCAyLjg3NHptMTAuNTIgMy4zNTN2LjI0czAgLjIzOS0uMjM0LjIzOWgtNy43MTRsLS4yMzQtLjIzOXYtMS40MzdzMC0uMjM5LjIzNC0uMjM5aDIuODA1di04Ljg2MmwtMi4xMDQgMS4xOThjLS4yMzQgMC0uMjM0LjIzOS0uNDY4LjIzOWgtLjIzNHMwLS4yMzktLjIzNC0uMjM5VjQ0Ljc5bC4yMzQtLjI0IDIuODA1LTEuOTE2aDIuNTcydjExLjQ5N2gyLjMzOGwuMjM0LjIzOXYxLjE5OHptLjIzNC0yMi4wMzZjLS4yMzQuOTU4LS40NjggMS42NzctLjkzNSAyLjE1Ni0uNDY4LjcxOC0uOTM1IDEuMTk4LTEuNDAzIDEuNDM3LS43MDEuMjQtMS40MDMuNDc5LTIuMzM4LjQ3OXMtMS42MzYtLjI0LTIuMzM4LS40NzlhMi4xMyAyLjEzIDAgMCAxLTEuNDAzLTEuNDM3Yy0uMjM0LS40NzktLjcwMS0xLjQzNy0uNzAxLTIuMTU2cy0uMjM0LTEuOTE2LS4yMzQtMi44NzRjMC0xLjE5OCAwLTIuMTU2LjIzNC0yLjg3NC4yMzQtLjk1OC40NjgtMS42NzcuOTM1LTIuMTU2LjQ2OC0uNzE4LjkzNS0xLjE5OCAxLjQwMy0xLjQzNy43MDEtLjI0IDEuNDAzLS40NzkgMi4zMzgtLjQ3OXMxLjYzNi4yNCAyLjMzOC40NzlhMi4xMyAyLjEzIDAgMCAxIDEuNDAzIDEuNDM3Yy4yMzQuNzE4LjcwMSAxLjQzNy43MDEgMi4xNTYuMjM0Ljk1OC4yMzQgMS45MTYuMjM0IDIuODc0IDAgMS4xOTgtLjIzNCAyLjE1Ni0uMjM0IDIuODc0eiIgZmlsbD0iIzAwNzhkNyIgc3Ryb2tlPSJub25lIi8+PC9zeW1ib2w+PC9zdmc+",
"camel.apache.org/provider": "Apache Software Foundation",
"camel.apache.org/kamelet.group": "Azure Storage Blob",
"camel.apache.org/kamelet.namespace": "Azure"
},
"labels": {
"camel.apache.org/kamelet.type": "source"
}
},
"spec": {
"definition": {
"title": "Azure Storage Blob Source",
"description": "Consume files from Azure Storage Blob.",
"required": [
"accountName",
"containerName"
],
"type": "object",
"properties": {
"accountName": {
"title": "Account Name",
"description": "The Azure Storage Blob account name.",
"type": "string",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"containerName": {
"title": "Container Name",
"description": "The Azure Storage Blob container name.",
"type": "string"
},
"accessKey": {
"title": "Access Key",
"description": "The Azure Storage Blob access key.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"clientId": {
"title": "Client Id",
"description": "The Azure Storage Blob client Id.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"clientSecret": {
"title": "Client Secret",
"description": "The Azure Storage Blob client secret.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"tenantId": {
"title": "Tenant Id",
"description": "The Azure Storage Blob tenant id.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"delay": {
"title": "Delay",
"description": "The number of milliseconds before the next poll of the selected blob.",
"type": "integer",
"default": 500
},
"deleteAfterRead": {
"title": "Auto-delete Blob",
"description": "Specifies to delete blobs after consuming them",
"type": "boolean",
"default": false
},
"credentialType": {
"title": "Credential Type",
"description": "Determines the credential strategy to adopt.",
"type": "string",
"enum": [
"SHARED_ACCOUNT_KEY",
"AZURE_IDENTITY",
"CLIENT_SECRET"
],
"default": "SHARED_ACCOUNT_KEY"
}
}
},
"dataTypes": {
"out": {
"default": "binary",
"headers": {
"CamelAzureStorageBlobBlobName": {
"title": "Azure Storage Blob Name",
"description": "The name of the blob retrieved",
"type": "string"
},
"CamelAzureStorageBlobBlobType": {
"title": "The Azure Storage Blob Type",
"description": "The Blob type, one of blockblob, appendblob or pageblob",
"type": "string"
},
"CamelAzureStorageBlobContentType": {
"title": "Content Type",
"description": "The content type of the retrieved object.",
"default": "application/octet-stream",
"type": "string"
},
"CamelAzureStorageBlobETag": {
"title": "ETag Value",
"description": "The E tag of the blob",
"type": "string"
},
"CamelAzureStorageBlobCreationTime": {
"title": "Creation time",
"description": "The Creation time of the blob",
"type": "string"
},
"CamelAzureStorageBlobLastModified": {
"title": "Last modification time",
"description": "The Last modification time of the blob",
"type": "string"
},
"CamelAzureStorageBlobLeaseStatus": {
"title": "Lease status",
"description": "Status of the lease on the blob, one of locked or unlocked",
"type": "string"
},
"CamelAzureStorageBlobMetadata": {
"title": "Blob Metadata",
"description": "Additional Metadata of the blob of type Map<String,Object>",
"type": "object"
}
},
"types": {
"binary": {
"format": "application-octet-stream",
"description": "Default binary representation of the Blob object retrieved from the container.",
"mediaType": "application/octet-stream"
},
"cloudevents": {
"format": "azure-storage-blob:application-cloudevents",
"description": "Output data type represents Azure Storage Blob get blob response as CloudEvent V1. The data type sets Camel specific CloudEvent headers on the exchange with respective data from the Azure container and its derived object.",
"headers": {
"CamelCloudEventID": {
"title": "CloudEvent ID",
"description": "The Camel exchange id set as event id",
"type": "string"
},
"CamelCloudEventType": {
"title": "CloudEvent Type",
"description": "The event type",
"default": "org.apache.camel.event.azure.storage.blob.getBlob",
"type": "string"
},
"CamelCloudEventSource": {
"title": "CloudEvent Source",
"description": "The event source. By default, the E Tag name of the blob with prefix \"azure.storage.blob.\".",
"type": "string"
},
"CamelCloudEventSubject": {
"title": "CloudEvent Subject",
"description": "The event subject. Usually the Azure Storage Blob name.",
"type": "string"
},
"CamelCloudEventTime": {
"title": "CloudEvent Time",
"description": "The exchange creation timestamp as event time.",
"type": "string"
}
}
}
}
}
},
"dependencies": [
"camel:azure-storage-blob",
"camel:kamelet",
"camel:core",
"camel:jsonpath",
"camel:timer"
],
"template": {
"from": {
"uri": "azure-storage-blob:{{accountName}}/{{containerName}}",
"parameters": {
"accessKey": "{{?accessKey}}",
"azureClientId": "{{?clientId}}",
"azureClientSecret": "{{?clientSecret}}",
"azureTenantId": "{{?tenantId}}",
"credentialType": "{{credentialType}}",
"delay": "{{delay}}"
},
"steps": [
{
"to": "kamelet:sink"
},
{
"choice": {
"precondition": true,
"when": [
{
"simple": "${properties:deleteAfterRead:true}",
"steps": [
{
"to": {
"uri": "azure-storage-blob:{{accountName}}/{{containerName}}",
"parameters": {
"operation": "deleteBlob",
"accessKey": "{{?accessKey}}",
"azureClientId": "{{?clientId}}",
"azureClientSecret": "{{?clientSecret}}",
"azureTenantId": "{{?tenantId}}",
"credentialType": "{{credentialType}}"
}
}
}
]
}
]
}
}
]
}
}
},
"propertiesSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "Azure Storage Blob Source",
"description": "Consume files from Azure Storage Blob.",
"required": [
"accountName",
"containerName"
],
"properties": {
"accountName": {
"type": "string",
"title": "Account Name",
"description": "The Azure Storage Blob account name."
},
"containerName": {
"type": "string",
"title": "Container Name",
"description": "The Azure Storage Blob container name."
},
"accessKey": {
"type": "string",
"title": "Access Key",
"description": "The Azure Storage Blob access key.",
"format": "password"
},
"clientId": {
"type": "string",
"title": "Client Id",
"description": "The Azure Storage Blob client Id.",
"format": "password"
},
"clientSecret": {
"type": "string",
"title": "Client Secret",
"description": "The Azure Storage Blob client secret.",
"format": "password"
},
"tenantId": {
"type": "string",
"title": "Tenant Id",
"description": "The Azure Storage Blob tenant id.",
"format": "password"
},
"delay": {
"type": "integer",
"title": "Delay",
"description": "The number of milliseconds before the next poll of the selected blob.",
"default": 500
},
"deleteAfterRead": {
"type": "boolean",
"title": "Auto-delete Blob",
"description": "Specifies to delete blobs after consuming them",
"default": false
},
"credentialType": {
"type": "string",
"title": "Credential Type",
"description": "Determines the credential strategy to adopt.",
"enum": [
"SHARED_ACCOUNT_KEY",
"AZURE_IDENTITY",
"CLIENT_SECRET"
],
"default": "SHARED_ACCOUNT_KEY"
}
}
}
}