{ "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 } } } }