243 lines
14 KiB
JSON
243 lines
14 KiB
JSON
{
|
|
"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)."
|
|
}
|
|
}
|
|
}
|
|
} |