diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..94a947f --- /dev/null +++ b/kamelet.json @@ -0,0 +1,173 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "couchbase-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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNjguMzQzIDY4LjM0MyIgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHVzZSB4bGluazpocmVmPSIjQSIgeD0iMi4xNzEiIHk9IjIuMTcxIi8+PHN5bWJvbCBpZD0iQSIgb3ZlcmZsb3c9InZpc2libGUiPjxwYXRoIGQ9Ik0zMi4wMDIgMEMxNC4zMzEuMDAyLjAwNSAxNC4zMjYgMCAzMS45OThjLjAwNSAxNy42NyAxNC4zMjggMzEuOTkzIDMxLjk5OCAzMS45OTggMTcuNjctLjAwNSAzMS45OTMtMTQuMzI4IDMxLjk5OC0zMS45OThDNjMuOTkxIDE0LjMzIDQ5LjY3LjAwNyAzMi4wMDIgMHptMjEuNjA2IDM3LjYwOWMwIDEuOTMzLTEuMTEyIDMuNjI2LTMuMjg4IDQuMDEzLTMuNzcuNjc4LTExLjcgMS4wNjQtMTguMzE4IDEuMDY0cy0xNC41NDgtLjQzNC0xOC4zMTgtMS4wNjRjLTEuOTY0LS4yOTQtMy4zODUtMi4wMjktMy4yODgtNC4wMTNWMjUuMTM2YzAtMS45MzMgMS40OTgtMy43MjIgMy4yODgtNC4wMTMgMS4xMTItLjE5NSAzLjcyMi0uNDM0IDUuNzU0LS40MzQuNzczIDAgMS40MDMuNTgyIDEuNDAzIDEuNDk4djguNzUxbDExLjIxMy0uMjQzIDExLjIxMy4yNDN2LTguNzAzYzAtLjg2OS42My0xLjQ5OCAxLjQwMy0xLjQ5OCAyLjAyOCAwIDQuNjQ3LjE5NiA1Ljc1NC40MzQgMS44MzcuMjkxIDMuMjg4IDIuMDg1IDMuMjg4IDQuMDEzbC0uMDk2IDEyLjQ3M3oiIHN0cm9rZT0ibm9uZSIgZmlsbD0iI2VkMjIyNiIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9zeW1ib2w+PC9zdmc+", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "Couchbase", + "camel.apache.org/kamelet.namespace": "Nosql" + }, + "labels": { + "camel.apache.org/kamelet.type": "sink" + } + }, + "spec": { + "definition": { + "title": "Couchbase Sink", + "description": "Send documents to Couchbase.", + "required": [ + "protocol", + "couchbaseHostname", + "bucket" + ], + "type": "object", + "properties": { + "protocol": { + "title": "Protocol", + "description": "The protocol to use", + "type": "string" + }, + "couchbaseHostname": { + "title": "Hostname", + "description": "The hostname to use", + "type": "string" + }, + "couchbasePort": { + "title": "Port", + "description": "The port to use", + "type": "integer", + "default": 8091 + }, + "bucket": { + "title": "Bucket", + "description": "The bucket to use", + "type": "string" + }, + "username": { + "title": "Username", + "description": "Username to connect to Couchbase.", + "type": "string", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "password": { + "title": "Password", + "description": "Password to connect to Couchbase.", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "startingId": { + "title": "Starting Id", + "description": "The starting id", + "type": "integer", + "default": 1 + }, + "connectionString": { + "title": "Connection String", + "description": "The full Couchbase SDK connection string (e.g. couchbase://host:port). When set, it takes precedence over hostname extraction for the KV service port.", + "type": "string" + }, + "autoStartId": { + "title": "Auto Start Id", + "description": "Auto Start Id or not", + "type": "boolean", + "default": true + } + } + }, + "dependencies": [ + "camel:couchbase", + "camel:kamelet" + ], + "template": { + "from": { + "uri": "kamelet:source", + "steps": [ + { + "to": { + "uri": "couchbase:{{protocol}}://{{couchbaseHostname}}:{{couchbasePort}}", + "parameters": { + "bucket": "{{bucket}}", + "autoStartIdForInserts": "{{autoStartId}}", + "startingIdForInsertsFrom": "{{startingId}}", + "username": "{{username}}", + "password": "{{password}}", + "connectionString": "{{?connectionString}}" + } + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "Couchbase Sink", + "description": "Send documents to Couchbase.", + "required": [ + "protocol", + "couchbaseHostname", + "bucket" + ], + "properties": { + "protocol": { + "type": "string", + "title": "Protocol", + "description": "The protocol to use" + }, + "couchbaseHostname": { + "type": "string", + "title": "Hostname", + "description": "The hostname to use" + }, + "couchbasePort": { + "type": "integer", + "title": "Port", + "description": "The port to use", + "default": 8091 + }, + "bucket": { + "type": "string", + "title": "Bucket", + "description": "The bucket to use" + }, + "username": { + "type": "string", + "title": "Username", + "description": "Username to connect to Couchbase." + }, + "password": { + "type": "string", + "title": "Password", + "description": "Password to connect to Couchbase.", + "format": "password" + }, + "startingId": { + "type": "integer", + "title": "Starting Id", + "description": "The starting id", + "default": 1 + }, + "connectionString": { + "type": "string", + "title": "Connection String", + "description": "The full Couchbase SDK connection string (e.g. couchbase://host:port). When set, it takes precedence over hostname extraction for the KV service port." + }, + "autoStartId": { + "type": "boolean", + "title": "Auto Start Id", + "description": "Auto Start Id or not", + "default": true + } + } + } +} \ No newline at end of file