From 19d2522b6a5f38bfa09a99311b7ac8f5ef4b56fc Mon Sep 17 00:00:00 2001 From: gitea_admin Date: Mon, 12 Oct 2026 02:32:38 +0000 Subject: [PATCH] Add kamelet definition: azure-storage-datalake-sink --- kamelet.json | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 kamelet.json diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..3036cec --- /dev/null +++ b/kamelet.json @@ -0,0 +1,209 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "azure-storage-datalake-sink", + "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,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNi4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4wIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxMTU4LjIgODYwLjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDExNTguMiA4NjAuNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzA5NUNBMjt9DQoJLnN0MXtmaWxsOiNGRkZGRkY7fQ0KCS5zdDJ7ZmlsbDojMzJCRUVEO30NCgkuc3Qze2ZpbGw6IzFCMUIyMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTkyNy43LDE5Ny44SDYwOC44Yy0zLjQsMC4xLTYuOC0wLjktOS41LTNsLTkxLjItNjAuN2MtMi45LTEuNy02LjEtMi42LTkuNS0yLjZIMjMwLjVjLTkuMywwLTE3LDcuNC0xNy4yLDE2LjgNCgl2NTYzLjdjMC4yLDkuMyw3LjksMTYuOCwxNy4yLDE2LjhoNjk3LjFjOS4zLDAsMTctNy41LDE3LjItMTYuOHYtNDk3Qzk0NC45LDIwNS42LDkzNy4yLDE5Ny44LDkyNy43LDE5Ny44TDkyNy43LDE5Ny44eiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTQzOS4zLDE2NC4zSDI4Ni45Yy0zLjgsMC02LjksMy4xLTYuOSw2Ljl2MTkuNGMwLDMuOCwzLjEsNi45LDYuOSw2LjloMTUyLjNjMy44LDAsNi45LTMuMSw2LjktNi45DQoJYzAsMCwwLDAsMCwwdi0xOS40QzQ0Ni4xLDE2Ny4zLDQ0My4xLDE2NC4zLDQzOS4zLDE2NC4zeiIvPg0KPHBhdGggY2xhc3M9InN0MiIgZD0iTTMwOC40LDE2NC4zaC0yMy43Yy0yLjYsMC00LjcsMi4xLTQuNyw0Ljd2MjMuN2MwLDIuNiwyLjEsNC43LDQuNyw0LjdoMjMuN2MyLjYsMCw0LjctMi4xLDQuNy00LjdWMTY5DQoJQzMxMy4yLDE2Ni40LDMxMS4xLDE2NC4zLDMwOC40LDE2NC4zeiIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTkyNy43LDE5N0g1NzkuMWMtNC42LTAuMS05LDEuOC0xMiw1LjJMNTA5LDI1OC4xYy0zLjMsMy03LjYsNC43LTEyLDQuN0gyMzAuNWMtOS41LDAtMTcuMiw3LjctMTcuMiwxNy4ybDAsMA0KCXY0MzAuM2MwLjIsOS4zLDcuOSwxNi44LDE3LjIsMTYuOGg2OTcuMWM5LjMsMCwxNy03LjQsMTcuMi0xNi44VjIxNWMwLjEtMi4zLTAuMy00LjctMS4xLTYuOUM5NDEuMywyMDEuNCw5MzQuOSwxOTcsOTI3LjcsMTk3eiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTYyOS45LDI4OC4yYy0xLjEtMC4zLTIuMy0wLjMtMy41LDBjMCwwLTMuOSwwLTUuNiwzbC0xMzYsMTk3LjVjLTEuMiwyLjEtMS4yLDQuOCwwLDYuOWMxLjMsMi40LDMuNyw0LDYuNSw0LjMNCgloODAuNWwtMzUuNiwxMTkuNmMtMC40LDAuNy0wLjYsMS41LTAuNiwyLjJjMCwwLjgsMC4xLDEuNiwwLjQsMi4zYzAuMywwLjcsMC43LDEuNCwxLjMsMS45YzAuNiwwLjYsMS4zLDEsMiwxLjNjMSwwLjQsMiwwLjQsMywwDQoJYzIuNiwwLDMuOSwwLDUuNi0zTDY4OCw0MjMuN3YtNC4zYy0wLjItMy45LTMuNC02LjktNy4zLTYuOWgtODYuMWwzNC45LTExNy41QzYzMS4yLDI5My4yLDYzMS4zLDI5MC4zLDYyOS45LDI4OC4yTDYyOS45LDI4OC4yeiIvPg0KPC9zdmc+DQo=", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "Azure Storage Blob Data Lake", + "camel.apache.org/kamelet.namespace": "Azure" + }, + "labels": { + "camel.apache.org/kamelet.type": "sink" + } + }, + "spec": { + "definition": { + "title": "Azure Storage Blob Data Lake Sink", + "description": "Send data to Azure Storage Blob Data Lake.", + "required": [ + "accountName", + "clientId", + "clientSecret", + "tenantId", + "fileSystemName" + ], + "type": "object", + "properties": { + "accountName": { + "title": "Account Name", + "description": "The Azure Storage Blob Data lake account name.", + "type": "string", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "clientId": { + "title": "Client Id", + "description": "The Azure Storage Blob Data lake client Id.", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "clientSecret": { + "title": "Client Secret", + "description": "The Azure Storage Blob Data lake client secret.", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "tenantId": { + "title": "Tenant Id", + "description": "The Azure Storage Blob Data lake tenant id.", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "fileSystemName": { + "title": "File System Name", + "description": "The Azure Storage Blob Data lake File system name.", + "type": "string", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "credentialType": { + "title": "Credential Type", + "description": "Determines the credential strategy to adopt.", + "type": "string", + "enum": [ + "CLIENT_SECRET", + "SHARED_KEY_CREDENTIAL", + "AZURE_IDENTITY", + "AZURE_SAS", + "SERVICE_CLIENT_INSTANCE" + ], + "default": "CLIENT_SECRET" + } + } + }, + "dependencies": [ + "camel:azure-storage-datalake", + "camel:kamelet", + "camel:core", + "camel:timer" + ], + "template": { + "from": { + "uri": "kamelet:source", + "steps": [ + { + "choice": { + "when": [ + { + "simple": "${header[file]}", + "steps": [ + { + "setHeader": { + "name": "CamelAzureStorageDataLakeFileName", + "simple": "${header[file]}" + } + } + ] + }, + { + "simple": "${header[ce-file]}", + "steps": [ + { + "setHeader": { + "name": "CamelAzureStorageDataLakeFileName", + "simple": "${header[ce-file]}" + } + } + ] + } + ], + "otherwise": { + "steps": [ + { + "setHeader": { + "name": "CamelAzureStorageDataLakeFileName", + "simple": "${exchangeId}" + } + } + ] + } + } + }, + { + "to": { + "uri": "azure-storage-datalake:{{accountName}}/{{fileSystemName}}", + "parameters": { + "clientId": "{{clientId}}", + "clientSecret": "{{clientSecret}}", + "tenantId": "{{tenantId}}", + "operation": "upload", + "credentialType": "{{credentialType}}" + } + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "Azure Storage Blob Data Lake Sink", + "description": "Send data to Azure Storage Blob Data Lake.", + "required": [ + "accountName", + "clientId", + "clientSecret", + "tenantId", + "fileSystemName" + ], + "properties": { + "accountName": { + "type": "string", + "title": "Account Name", + "description": "The Azure Storage Blob Data lake account name." + }, + "clientId": { + "type": "string", + "title": "Client Id", + "description": "The Azure Storage Blob Data lake client Id.", + "format": "password" + }, + "clientSecret": { + "type": "string", + "title": "Client Secret", + "description": "The Azure Storage Blob Data lake client secret.", + "format": "password" + }, + "tenantId": { + "type": "string", + "title": "Tenant Id", + "description": "The Azure Storage Blob Data lake tenant id.", + "format": "password" + }, + "fileSystemName": { + "type": "string", + "title": "File System Name", + "description": "The Azure Storage Blob Data lake File system name." + }, + "credentialType": { + "type": "string", + "title": "Credential Type", + "description": "Determines the credential strategy to adopt.", + "enum": [ + "CLIENT_SECRET", + "SHARED_KEY_CREDENTIAL", + "AZURE_IDENTITY", + "AZURE_SAS", + "SERVICE_CLIENT_INSTANCE" + ], + "default": "CLIENT_SECRET" + } + } + } +} \ No newline at end of file