From cc80fe6e81dd12526564e808537330ba8ebf1725 Mon Sep 17 00:00:00 2001 From: gitea_admin Date: Mon, 12 Oct 2026 02:33:56 +0000 Subject: [PATCH] Add kamelet definition: google-storage-sink --- kamelet.json | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 kamelet.json diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..5ab50fb --- /dev/null +++ b/kamelet.json @@ -0,0 +1,137 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "google-storage-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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBoZWlnaHQ9IjgwMCIgd2lkdGg9IjEyMDAiIHZpZXdCb3g9Ii0xOS4yMDAxNSAtMjguNDgzIDE2Ni40MDEzIDE3MC44OTgiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTcuMDM0KSI+PGxpbmVhckdyYWRpZW50IHkyPSIxMjAuNzg5IiB4Mj0iNjQiIHkxPSI3LjAzNCIgeDE9IjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzQzODdmZCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ2ODNlYSIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZD0iTTI3Ljc5IDExNS4yMTdMMS41NCA2OS43NDlhMTEuNDk5IDExLjQ5OSAwIDAxMC0xMS40OTlsMjYuMjUtNDUuNDY3YTExLjUgMTEuNSAwIDAxOS45Ni01Ljc1aDUyLjVhMTEuNSAxMS41IDAgMDE5Ljk1OSA1Ljc1bDI2LjI1IDQ1LjQ2N2ExMS40OTkgMTEuNDk5IDAgMDEwIDExLjVsLTI2LjI1IDQ1LjQ2NmExMS41IDExLjUgMCAwMS05Ljk1OSA1Ljc1aC01Mi41YTExLjQ5OSAxMS40OTkgMCAwMS05Ljk2LTUuNzV6IiBmaWxsPSJ1cmwoI2EpIi8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTcuMDM0KSI+PGRlZnM+PHBhdGggZD0iTTI3Ljc5MSAxMTUuMjE3TDEuNTQxIDY5Ljc0OWExMS40OTkgMTEuNDk5IDAgMDEwLTExLjQ5OWwyNi4yNS00NS40NjdhMTEuNDk5IDExLjQ5OSAwIDAxOS45NTktNS43NWg1Mi41YTExLjUgMTEuNSAwIDAxOS45NiA1Ljc1bDI2LjI1IDQ1LjQ2N2ExMS40OTkgMTEuNDk5IDAgMDEwIDExLjVsLTI2LjI1IDQ1LjQ2NmExMS40OTkgMTEuNDk5IDAgMDEtOS45NiA1Ljc1aC01Mi41YTExLjQ5OSAxMS40OTkgMCAwMS05Ljk1OS01Ljc1eiIgaWQ9ImIiLz48L2RlZnM+PGNsaXBQYXRoIGlkPSJjIj48dXNlIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEwMCUiIHhsaW5rOmhyZWY9IiNiIiBvdmVyZmxvdz0idmlzaWJsZSIvPjwvY2xpcFBhdGg+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2MpIiBvcGFjaXR5PSIuMDciIGQ9Ik00OS4zMTMgNTMuODc1bC03LjAxIDYuOTkgNS45NTcgNS45NTgtNS44OTggMTAuNDc2IDQ0LjYzNSA0NC42MzYgMTAuODE2LjAwMkwxMTguOTM2IDg0IDg1LjQ4OSA1MC41NXoiLz48L2c+PHBhdGggZD0iTTg0LjcgNDMuMjM2SDQzLjI2NGMtLjY2NyAwLTEuMjEyLjU0Ni0xLjIxMiAxLjIxNHY4LjU2NmMwIC42NjYuNTQ2IDEuMjEyIDEuMjEyIDEuMjEySDg0LjdjLjY2NyAwIDEuMjEzLS41NDYgMS4yMTMtMS4yMTJ2LTguNTY4YzAtLjY2Ni0uNTQ1LTEuMjEzLTEuMjEyLTEuMjEzbS02LjQxNiA3Ljk3NmEyLjQ4NCAyLjQ4NCAwIDAxLTIuNDc3LTIuNDggMi40NzUgMi40NzUgMCAwMTIuNDc3LTIuNDc3YzEuMzcgMCAyLjQ4IDEuMTAzIDIuNDggMi40NzdhMi40OCAyLjQ4IDAgMDEtMi40OCAyLjQ4bTYuNDE1IDguNDkxbC00MS40MzYuMDAyYy0uNjY3IDAtMS4yMTIuNTQ2LTEuMjEyIDEuMjE0djguNTY1YzAgLjY2Ni41NDYgMS4yMTMgMS4yMTIgMS4yMTNIODQuN2MuNjY3IDAgMS4yMTMtLjU0NyAxLjIxMy0xLjIxM3YtOC41NjdjMC0uNjY2LS41NDUtMS4yMTQtMS4yMTItMS4yMTRtLTYuNDE2IDcuOTc2YTIuNDgzIDIuNDgzIDAgMDEtMi40NzctMi40OCAyLjQ3NSAyLjQ3NSAwIDAxMi40NzctMi40NzcgMi40OCAyLjQ4IDAgMTEwIDQuOTU2IiBmaWxsPSIjZmZmIi8+PC9zdmc+", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "Google Storage", + "camel.apache.org/kamelet.namespace": "GCP" + }, + "labels": { + "camel.apache.org/kamelet.type": "sink" + } + }, + "spec": { + "definition": { + "title": "Google Storage Sink", + "description": "Upload objects to Google Cloud Storage.", + "required": [ + "bucketNameOrArn" + ], + "type": "object", + "properties": { + "bucketNameOrArn": { + "title": "Bucket Name Or ARN", + "description": "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN).", + "type": "string" + }, + "serviceAccountKey": { + "title": "Service Account Key", + "description": "The service account key to use as credentials for Google Cloud Storage access. You must encode this value in base64.", + "type": "binary", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "autoCreateBucket": { + "title": "Autocreate Bucket", + "description": "Specifies to automatically create the Google Cloud Storage bucket.", + "type": "boolean", + "default": false + } + } + }, + "dependencies": [ + "camel:core", + "camel:kamelet", + "camel:google-storage", + "camel:jackson" + ], + "template": { + "from": { + "uri": "kamelet:source", + "steps": [ + { + "choice": { + "when": [ + { + "simple": "${header[file]}", + "steps": [ + { + "setHeader": { + "name": "CamelGoogleCloudStorageObjectName", + "simple": "${header[file]}" + } + } + ] + }, + { + "simple": "${header[ce-file]}", + "steps": [ + { + "setHeader": { + "name": "CamelGoogleCloudStorageObjectName", + "simple": "${header[ce-file]}" + } + } + ] + } + ], + "otherwise": { + "steps": [ + { + "setHeader": { + "name": "CamelGoogleCloudStorageObjectName", + "simple": "${exchangeId}" + } + } + ] + } + } + }, + { + "to": { + "uri": "google-storage://{{bucketNameOrArn}}", + "parameters": { + "autoCreateBucket": "{{autoCreateBucket}}", + "serviceAccountKey": "base64:{{?serviceAccountKey}}" + } + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "Google Storage Sink", + "description": "Upload objects to Google Cloud Storage.", + "required": [ + "bucketNameOrArn" + ], + "properties": { + "bucketNameOrArn": { + "type": "string", + "title": "Bucket Name Or ARN", + "description": "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN)." + }, + "serviceAccountKey": { + "type": "string", + "$comment": "type:binary", + "title": "Service Account Key", + "description": "The service account key to use as credentials for Google Cloud Storage access. You must encode this value in base64." + }, + "autoCreateBucket": { + "type": "boolean", + "title": "Autocreate Bucket", + "description": "Specifies to automatically create the Google Cloud Storage bucket.", + "default": false + } + } + } +} \ No newline at end of file