{ "apiVersion": "camel.apache.org/v1", "kind": "Kamelet", "metadata": { "name": "ibm-cos-sink", "annotations": { "camel.apache.org/kamelet.support.level": "Preview", "camel.apache.org/catalog.version": "4.22.1", "camel.apache.org/kamelet.icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUwMCIgaGVpZ2h0PSIyNTAwIiB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZD0iTTAgMGgyNTZ2MjU2SDB6IiBmaWxsPSIjMDUzMzYyIi8+PHBhdGggZD0iTTE4Ny43MzIgMTI1LjkxOGMtLjAzNi0xLjM1Ny0uMDktMi43MTQtLjE4LTQuMDcyLS4wMzYtLjUyMi0uMDkxLTEuMDQ1LS4xMjgtMS41NjctLjA1NC0uNjEzLS4xMDgtMS4yMjYtLjE4LTEuODM5LS4wNzItLjc3LS4xOC0xLjU0LS4yODgtMi4zMWEzOS43NjYgMzkuNzY2IDAgMCAwLS40MTYtMi4zNjRjLS4xNDQtLjc3LS4zMDYtMS41NC0uNDctMi4yOTJhNDAuODEzIDQwLjgxMyAwIDAgMC0uNjMtMi4zMS40MDkuNDA5IDAgMCAxLS4wNTUtLjEyNiA0MC40OTIgNDAuNDkyIDAgMCAwLS43MjItMi4yMThjLS4yNTItLjcwNC0uNTIyLTEuMzc1LS43OTMtMi4wNjYtLjMwNi0uNzIyLS42My0xLjQyNi0uOTczLTIuMTMtLjMyNS0uNjY3LS42ODYtMS4zMzQtMS4wNDUtMS45ODItLjM2LS42MzEtLjczOS0xLjI2My0xLjExNy0xLjg3Ni0uNDctLjc1OC0uOTU1LTEuNDk4LTEuNDc2LTIuMjE4LS4yNTItLjM2LS41MDQtLjcwNC0uNzc2LTEuMDQ1LS4yNTItLjM0My0uNTA0LS42ODYtLjc3NS0xLjAyN2E0MC43NzQgNDAuNzc0IDAgMCAwLTEuMzM0LTEuNjg0Yy0uNTA0LS42MTMtMS4wMjctMS4yMDgtMS41NjctMS43ODUtLjU5My0uNjMxLTEuMjA4LTEuMjQ0LTEuODM5LTEuODM5LS42MzEtLjYxMy0xLjI4MS0xLjE5LTEuOTQ2LTEuNzY3LS41MjItLjQ1Mi0xLjA2My0uODg2LTEuNjAzLTEuMzE2LS4yNy0uMjE2LS41NC0uNDM0LS44MTItLjY0OS0uMzQyLS4yNzEtLjY4Ni0uNTQtMS4wNDUtLjc5M2E0MC42ODYgNDAuNjg2IDAgMCAwLTIuMjkyLTEuNDk4Yy0uNjY3LS40MTUtMS4zMzQtLjgxMy0yLjAxOS0xLjE5OC0uNjg2LS4zNzktMS4zOS0uNzU4LTIuMTExLTEuMDk5LS43Mi0uMzQzLTEuNDYyLS42NjctMi4yMTgtLjk3My0uNzU4LS4zMDYtMS41My0uNTkzLTIuMzEtLjg1NGE0MS4xOTIgNDEuMTkyIDAgMCAwLTIuMzgyLS42ODVjLS43NzUtLjE5OC0xLjU2Ny0uMzc4LTIuMzY0LS41NGE0MC42MjYgNDAuNjI2IDAgMCAwLTIuMzgyLS4zOTdjLS43NzUtLjEwOC0xLjU2Ny0uMTk4LTIuMzQ3LS4yNy0uNzkzLS4wNzItMS41ODUtLjEyNi0yLjM4Mi0uMTYyLS41NC0uMDE4LTEuMDgyLS4wNzItMS42MjItLjA5MS0xLjM3NS0uMDcyLTIuNzUtLjEwOC00LjEyNS0uMTA4LTEuMzU3IDAtMi43MzIuMDM2LTQuMDg5LjEwOC0uNTQuMDE4LTEuMDgyLjA3Mi0xLjYyMi4wOTEtLjc5Ny4wMzYtMS41ODUuMDktMi4zODIuMTYyLS43NzYuMDcyLTEuNTUuMTYyLTIuMzI5LjI3LS43OTQuMTA4LTEuNTg1LjIzNC0yLjM2NC4zOTctLjc5My4xNjItMS41ODUuMzQyLTIuMzY0LjU0LS43OTMuMTk4LTEuNTg1LjQxNi0yLjM4Mi42ODUtLjc3Ni4yNTQtMS41NS41NC0yLjMxLjg1NC0uNzU3LjMwNi0xLjQ5OC42My0yLjIxOC45NzMtLjcyLjM0MS0xLjQyNS43Mi0yLjExMSAxLjA5OS0uNjg1LjM4NS0xLjM1Mi43ODMtMi4wMTkgMS4xOTgtLjY2Ny40MTUtMS4zMTYuODUtMS45NjQgMS4zMTZhNDAuNjg2IDQwLjY4NiAwIDAgMC0yLjI5MiAxLjQ5OGMtLjM2LjI1My0uNzA0LjUyMi0xLjA0NS43OTMtLjI3Mi4yMTUtLjU0Mi40MzMtLjgxMi42NDktLjU0LjQzLTEuMDgxLjg2NC0xLjYwMyAxLjMxNi0uNjY3LjU3Ny0xLjMxNiAxLjE1NC0xLjk0NiAxLjc2Ny0uNjMxLjU5NS0xLjI0NCAxLjIwOC0xLjgzOSAxLjgzOS0uNTQuNTc3LTEuMDYzIDEuMTcyLTEuNTY3IDEuNzg1YTQwLjc3NCA0MC43NzQgMCAwIDAtMS4zMzQgMS42ODRjLS4yNzEuMzQxLS41MjMuNjg0LS43NzUgMS4wMjctLjI3Mi4zNDEtLjUyNC42ODUtLjc3NiAxLjA0NS0uNTIxLjcyLTEuMDA4IDEuNDYtMS40NzYgMi4yMTgtLjM3OC42MTMtLjc1NyAxLjI0NS0xLjExNyAxLjg3Ni0uMzU5LjY0OC0uNzIgMS4zMTUtMS4wNDUgMS45ODItLjM0My43MDQtLjY2NyAxLjQwOC0uOTczIDIuMTMtLjI3MS42OTEtLjU0IDEuMzYyLS43OTMgMi4wNjZhNDAuNDkyIDQwLjQ5MiAwIDAgMC0uNzIyIDIuMjE4LjQwOS40MDkgMCAwIDEtLjA1NC4xMjZjLS4xOTguNzU4LS40MTYgMS41My0uNjMgMi4zMS0uMTYzLjc1Mi0uMzI1IDEuNTIyLS40NyAyLjI5Mi0uMTQ0Ljc5My0uMjcgMS41ODUtLjQxNiAyLjM2NC0uMTA4Ljc3LS4yMTYgMS41NC0uMjg4IDIuMzEtLjA3Mi42MTMtLjEyNiAxLjIyNi0uMTggMS44MzktLjAzNy41MjItLjA5MSAxLjA0NS0uMTI4IDEuNTY3LS4wOSAxLjM1OC0uMTQ0IDIuNzE1LS4xOCA0LjA3MmE4MS4yNDEgODEuMjQxIDAgMCAwIDAgOC4xNDRjLjAzNiAxLjM1Ny4wOSAyLjcxNC4xOCA0LjA3Mi4wMzcuNTIyLjA5MSAxLjA0NS4xMjggMS41NjcuMDU0LjYxMy4xMDggMS4yMjYuMTggMS44MzkuMDcyLjc3LjE4IDEuNTQuMjg4IDIuMzEuMTQ2Ljc3OS4yNzIgMS41NzEuNDE2IDIuMzY0LjE0NS43Ny4zMDcgMS41NC40NyAyLjI5Mi4xOTguNzc2LjQxNiAxLjU1Mi42MyAyLjMxYS40MDkuNDA5IDAgMCAxIC4wNTQuMTI2Yy4yMzQuNzU4LjQ3IDEuNDk4LjcyMiAyLjIxOC4yNTMuNzA0LjUyMiAxLjM3NS43OTMgMi4wNjYuMzA2LjcyMi42MyAxLjQyNi45NzMgMi4xMy4zMjUuNjY3LjY4NiAxLjMzNCAxLjA0NSAxLjk4Mi4zNi42MzEuNzM5IDEuMjYzIDEuMTE3IDEuODc2LjQ2OC43NTguOTU1IDEuNDk4IDEuNDc2IDIuMjE4LjI1Mi4zNi41MDQuNzA0Ljc3NiAxLjA0NS4yNTIuMzQzLjUwNC42ODYuNzc1IDEuMDI3LjQzMy41NzcuODg2IDEuMTM1IDEuMzM0IDEuNjg0LjUwNC42MTMgMS4wMjcgMS4yMDggMS41NjcgMS43ODUuNTk1LjYzMSAxLjIwOCAxLjI0NCAxLjgzOSAxLjgzOS42My42MTMgMS4yNzkgMS4xOSAxLjk0NiAxLjc2Ny41MjIuNDUyIDEuMDYzLjg4NiAxLjYwMyAxLjMxNi4yNy4yMTYuNTQuNDM0LjgxMi42NDkuMzQxLjI3MS42ODUuNTQgMS4wNDUuNzkzYTQwLjY4NiA0MC42ODYgMCAwIDAgMi4yOTIgMS40OThjLjY2Ny40MTUgMS4zMzQuODEzIDIuMDE5IDEuMTk4LjY4Ni4zNzkgMS4zOS43NTggMi4xMTEgMS4wOTkuNzIuMzQzIDEuNDYxLjY2NyAyLjIxOC45NzMuNzYuMzA2IDEuNTM0LjU5MyAyLjMxLjg1NC43NzkuMjUzIDEuNTg5LjQ4NyAyLjM4Mi42ODUuNzkzLjE5OCAxLjU3MS4zNzggMi4zNjQuNTQuNzkzLjE2MyAxLjU4OC4yODkgMi4zNjQuMzk3Ljc3OS4xMDggMS41NTMuMTk4IDIuMzI5LjI3Ljc5Ny4wNzIgMS41ODUuMTI2IDIuMzgyLjE2Mi41NC4wMTggMS4wODIuMDcyIDEuNjIyLjA5MSAxLjM1Ny4wNzIgMi43MzIuMTA4IDQuMDg5LjEwOCAxLjM3NSAwIDIuNzUtLjAzNiA0LjEyNS0uMTA4LjU0LS4wMTkgMS4wODItLjA3MyAxLjYyMi0uMDkxLjc5Ny0uMDM2IDEuNTg5LS4wOSAyLjM4Mi0uMTYyLjc4LS4wNzIgMS41NjgtLjE2MiAyLjM0Ny0uMjcuNzkzLS4xMDggMS41ODktLjIzNCAyLjM4Mi0uMzk3Ljc5My0uMTYyIDEuNTcxLS4zNDIgMi4zNjQtLjU0Ljc5My0uMTk4IDEuNjA3LS40MzIgMi4zODItLjY4NS43NzYtLjI2MSAxLjU5LS41NDggMi4zMS0uODU0Ljc1Ni0uMzA2IDEuNDk4LS42MyAyLjIxOC0uOTczLjcyLS4zNDEgMS40MjUtLjcyIDIuMTExLTEuMDk5LjY4NS0uMzg1IDEuMzUyLS43ODMgMi4wMTktMS4xOThhNDAuNjg2IDQwLjY4NiAwIDAgMCAyLjI5Mi0xLjQ5OGMuMzU5LS4yNTMuNzAzLS41MjIgMS4wNDUtLjc5My4yNzItLjIxNS41NDItLjQzMy44MTItLjY0OS41NC0uNDMgMS4wODEtLjg2NCAxLjYwMy0xLjMxNi42NjctLjU3NyAxLjMxNS0xLjE1NCAxLjk0Ni0xLjc2Ny42MzEtLjU5NSAxLjIwOC0xLjIwOCAxLjgzOS0xLjgzOS41NC0uNTc3IDEuMDYzLTEuMTcyIDEuNTY3LTEuNzg1LjQ0OC0uNTQ5LjkwMS0xLjEwNyAxLjMzNC0xLjY4NC4yNzEtLjM0MS41MjMtLjY4NC43NzUtMS4wMjcuMjcyLS4zNDEuNTI0LS42ODUuNzc2LTEuMDQ1LjUyMS0uNzIgMS4wMDgtMS40NiAxLjQ3Ni0yLjIxOC4zNzgtLjYxMy43NTctMS4yNDUgMS4xMTctMS44NzYuMzU5LS42NDguNzItMS4zMTUgMS4wNDUtMS45ODIuMzQzLS43MDQuNjY3LTEuNDI2Ljk3My0yLjEzLjI3MS0uNjkxLjU0LTEuMzYyLjc5My0yLjA2Ni4yNTItLjcyLjQ4OC0xLjQ2IDcyMi0yLjIxOGEuNDA5LjQwOSAwIDAgMSAuMDU1LS4xMjZjLjE5OC0uNzU4LjQxNi0xLjUzNC42My0yLjMxLjE2My0uNzUyLjMyNS0xLjUyMi40Ny0yLjI5Mi4xNDQtLjc5My4yNzItMS41ODUuNDE2LTIuMzY0LjEwOC0uNzcuMjE2LTEuNTQuMjg4LTIuMzEuMDcyLS42MTMuMTI2LTEuMjI2LjE4LTEuODM5LjAzNy0uNTIyLjA5Mi0xLjA0NS4xMjgtMS41NjcuMDktMS4zNTguMTQ0LTIuNzE1LjE4LTQuMDcyLjAzNy0xLjM1Ny4wNTQtMi43MTQuMDU0LTQuMDcyIDAtMS4zNTctLjAxNy0yLjcxNC0uMDU0LTQuMDcyem0tMjQuMTkxIDE3LjU4NWMtNy41MDcgMC0xMy41OTgtNi4wOTEtMTMuNTk4LTEzLjU5OCAwLTcuNTA3IDYuMDkxLTEzLjU5OCAxMy41OTgtMTMuNTk4IDcuNTA3IDAgMTMuNTk4IDYuMDkxIDEzLjU5OCAxMy41OTggMCA3LjUwNy02LjA5MSAxMy41OTgtMTMuNTk4IDEzLjU5OHptLTY2LjUwNi01NS42NjVjMC03LjUwNyA2LjA5MS0xMy41OTggMTMuNTk4LTEzLjU5OCA3LjUwNyAwIDEzLjU5OCA2LjA5MSAxMy41OTggMTMuNTk4IDAgNy41MDctNi4wOTEgMTMuNTk4LTEzLjU5OCAxMy41OTgtNy41MDcgMC0xMy41OTgtNi4wOTEtMTMuNTk4LTEzLjU5OHptMCA1NS42NjVjMC03LjUwNyA2LjA5MS0xMy41OTggMTMuNTk4LTEzLjU5OCA3LjUwNyAwIDEzLjU5OCA2LjA5MSAxMy41OTggMTMuNTk4IDAgNy41MDctNi4wOTEgMTMuNTk4LTEzLjU5OCAxMy41OTgtNy41MDcgMC0xMy41OTgtNi4wOTEtMTMuNTk4LTEzLjU5OHoiIGZpbGw9IiNGRkYiLz48L3N2Zz4=", "camel.apache.org/provider": "Apache Software Foundation", "camel.apache.org/kamelet.group": "IBM Cloud Object Storage", "camel.apache.org/kamelet.namespace": "IBM" }, "labels": { "camel.apache.org/kamelet.type": "sink" } }, "spec": { "definition": { "title": "IBM Cloud Object Storage Sink", "description": "Upload data to an IBM Cloud Object Storage Bucket.", "required": [ "bucketName", "apiKey", "serviceInstanceId", "endpointUrl" ], "type": "object", "properties": { "bucketName": { "title": "Bucket Name", "description": "The IBM COS Bucket name.", "type": "string" }, "apiKey": { "title": "API Key", "description": "IBM Cloud API Key for authentication.", "type": "string", "format": "password", "x-descriptors": [ "urn:camel:group:credentials" ] }, "serviceInstanceId": { "title": "Service Instance ID", "description": "IBM COS Service Instance ID (CRN).", "type": "string", "format": "password", "x-descriptors": [ "urn:camel:group:credentials" ] }, "endpointUrl": { "title": "Endpoint URL", "description": "IBM COS Endpoint URL (e.g., https://s3.us-south.cloud-object-storage.appdomain.cloud).", "type": "string", "example": "https://s3.us-south.cloud-object-storage.appdomain.cloud" }, "location": { "title": "Location", "description": "IBM COS Location/Region (e.g., us-south, eu-gb).", "type": "string", "example": "us-south" }, "autoCreateBucket": { "title": "Autocreate Bucket", "description": "Specifies to automatically create the IBM COS bucket.", "type": "boolean", "default": false }, "keyName": { "title": "Key Name", "description": "The key name for saving an element in the bucket.", "type": "string" }, "multiPartUpload": { "title": "Multi-Part Upload", "description": "Use multi-part upload for large files.", "type": "boolean", "default": false }, "partSize": { "title": "Part Size", "description": "Part size for multi-part uploads (default 25MB).", "type": "integer", "default": 26214400 }, "storageClass": { "title": "Storage Class", "description": "The storage class to use when storing objects (e.g., STANDARD, VAULT, COLD, FLEX).", "type": "string" } } }, "dependencies": [ "camel:core", "camel:ibm-cos", "camel:kamelet" ], "template": { "from": { "uri": "kamelet:source", "steps": [ { "choice": { "precondition": true, "when": [ { "simple": "${propertiesExist:!keyName}", "steps": [ { "choice": { "when": [ { "simple": "${header[file]}", "steps": [ { "setHeader": { "name": "CamelIbmCosKey", "simple": "${header[file]}" } } ] }, { "simple": "${header[ce-file]}", "steps": [ { "setHeader": { "name": "CamelIbmCosKey", "simple": "${header[ce-file]}" } } ] } ], "otherwise": { "steps": [ { "setHeader": { "name": "CamelIbmCosKey", "simple": "${exchangeId}" } } ] } } } ] } ] } }, { "to": { "uri": "ibm-cos:{{bucketName}}", "parameters": { "apiKey": "{{apiKey}}", "serviceInstanceId": "{{serviceInstanceId}}", "endpointUrl": "{{endpointUrl}}", "location": "{{?location}}", "autoCreateBucket": "{{autoCreateBucket}}", "keyName": "{{?keyName}}", "multiPartUpload": "{{multiPartUpload}}", "partSize": "{{partSize}}", "storageClass": "{{?storageClass}}" } } } ] } } }, "propertiesSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "title": "IBM Cloud Object Storage Sink", "description": "Upload data to an IBM Cloud Object Storage Bucket.", "required": [ "bucketName", "apiKey", "serviceInstanceId", "endpointUrl" ], "properties": { "bucketName": { "type": "string", "title": "Bucket Name", "description": "The IBM COS Bucket name." }, "apiKey": { "type": "string", "title": "API Key", "description": "IBM Cloud API Key for authentication.", "format": "password" }, "serviceInstanceId": { "type": "string", "title": "Service Instance ID", "description": "IBM COS Service Instance ID (CRN).", "format": "password" }, "endpointUrl": { "type": "string", "title": "Endpoint URL", "description": "IBM COS Endpoint URL (e.g., https://s3.us-south.cloud-object-storage.appdomain.cloud)." }, "location": { "type": "string", "title": "Location", "description": "IBM COS Location/Region (e.g., us-south, eu-gb)." }, "autoCreateBucket": { "type": "boolean", "title": "Autocreate Bucket", "description": "Specifies to automatically create the IBM COS bucket.", "default": false }, "keyName": { "type": "string", "title": "Key Name", "description": "The key name for saving an element in the bucket." }, "multiPartUpload": { "type": "boolean", "title": "Multi-Part Upload", "description": "Use multi-part upload for large files.", "default": false }, "partSize": { "type": "integer", "title": "Part Size", "description": "Part size for multi-part uploads (default 25MB).", "default": 26214400 }, "storageClass": { "type": "string", "title": "Storage Class", "description": "The storage class to use when storing objects (e.g., STANDARD, VAULT, COLD, FLEX)." } } } }