diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..c1b2a22 --- /dev/null +++ b/kamelet.json @@ -0,0 +1,125 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "mqtt-source", + "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,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMiIgYmFzZVByb2ZpbGU9InRpbnkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIKCSB5PSIwcHgiIHZpZXdCb3g9IjAgMCAzMjAgMzIwIiBvdmVyZmxvdz0idmlzaWJsZSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnIGlkPSJibGFja19iZyIgZGlzcGxheT0ibm9uZSI+Cgk8cmVjdCBkaXNwbGF5PSJpbmxpbmUiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIi8+CjwvZz4KPGcgaWQ9ImxvZ29zIj4KCTxnPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik03LjEsMTgwLjZ2MTE3LjFjMCw4LjQsNi44LDE1LjMsMTUuMywxNS4zSDE0MkMxNDEsMjM5LjgsODAuOSwxODAuNyw3LjEsMTgwLjZ6Ii8+CgkJPHBhdGggZmlsbD0iIzY2MDA2NiIgZD0iTTcuMSw4NC4xdjQ5LjhjOTksMC45LDE3OS40LDgwLjcsMTgwLjQsMTc5LjFoNTEuN0MyMzguMiwxODYuNiwxMzQuNSw4NC4yLDcuMSw4NC4xeiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0zMTIuOSwyOTcuNlYxOTMuNUMyNzguMSwxMDcuMiwyMDcuMywzOC45LDExOSw3LjFIMjIuNGMtOC40LDAtMTUuMyw2LjgtMTUuMywxNS4zdjE1CgkJCWMxNTIuNiwwLjksMjc2LjYsMTI0LDI3Ny42LDI3NS42aDEzQzMwNi4xLDMxMi45LDMxMi45LDMwNi4xLDMxMi45LDI5Ny42eiIvPgoJCTxwYXRoIGZpbGw9IiM2NjAwNjYiIGQ9Ik0yNzIuNiw0OS44YzE0LjUsMTQuNCwyOC42LDMxLjcsNDAuNCw0Ny44VjIyLjRjMC04LjQtNi44LTE1LjMtMTUuMy0xNS4zaC03Ny4zCgkJCUMyMzguNCwxOS43LDI1Ni42LDMzLjksMjcyLjYsNDkuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "MQTT", + "camel.apache.org/kamelet.namespace": "Messaging" + }, + "labels": { + "camel.apache.org/kamelet.type": "source" + } + }, + "spec": { + "definition": { + "title": "MQTT Source", + "description": "Allows receiving messages from any endpoint that supports the MQTT protocol, such as a message broker.", + "required": [ + "topic", + "brokerUrl" + ], + "type": "object", + "properties": { + "topic": { + "title": "Topic", + "description": "The topic to subscribe to", + "type": "string", + "example": "mytopic" + }, + "brokerUrl": { + "title": "Broker URL", + "description": "The URL of the broker where to establish the connection", + "type": "string", + "example": "tcp://mosquitto:1883" + }, + "clientId": { + "title": "Client ID", + "description": "The client ID to use when connecting to the resource", + "type": "string", + "default": "mqtt-source" + }, + "username": { + "title": "Username", + "description": "Username to use when connecting to the MQTT broker", + "type": "string", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "password": { + "title": "Password", + "description": "Password to use when connecting to the MQTT broker", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + } + } + }, + "dependencies": [ + "camel:paho", + "camel:kamelet" + ], + "template": { + "from": { + "uri": "paho:{{topic}}", + "parameters": { + "brokerUrl": "{{brokerUrl}}", + "clientId": "{{clientId}}", + "userName": "{{?username}}", + "password": "{{?password}}" + }, + "steps": [ + { + "to": "kamelet:sink" + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "MQTT Source", + "description": "Allows receiving messages from any endpoint that supports the MQTT protocol, such as a message broker.", + "required": [ + "topic", + "brokerUrl" + ], + "properties": { + "topic": { + "type": "string", + "title": "Topic", + "description": "The topic to subscribe to" + }, + "brokerUrl": { + "type": "string", + "title": "Broker URL", + "description": "The URL of the broker where to establish the connection" + }, + "clientId": { + "type": "string", + "title": "Client ID", + "description": "The client ID to use when connecting to the resource", + "default": "mqtt-source" + }, + "username": { + "type": "string", + "title": "Username", + "description": "Username to use when connecting to the MQTT broker" + }, + "password": { + "type": "string", + "title": "Password", + "description": "Password to use when connecting to the MQTT broker", + "format": "password" + } + } + } +} \ No newline at end of file