diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..e534bf1 --- /dev/null +++ b/kamelet.json @@ -0,0 +1,201 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "telegram-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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNDAgMjQwIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIuNjY3IiB4Mj0iLjQxNyIgeTE9Ii4xNjciIHkyPSIuNzUiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzM3YWVlMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFlOTZjOCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iLjY2IiB4Mj0iLjg1MSIgeTE9Ii40MzciIHkyPSIuODAyIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNlZmY3ZmMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48Y2lyY2xlIGN4PSIxMjAiIGN5PSIxMjAiIHI9IjEyMCIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGZpbGw9IiNjOGRhZWEiIGQ9Ik05OCAxNzVjLTMuODg4IDAtMy4yMjctMS40NjgtNC41NjgtNS4xN0w4MiAxMzIuMjA3IDE3MCA4MCIvPjxwYXRoIGZpbGw9IiNhOWM5ZGQiIGQ9Ik05OCAxNzVjMyAwIDQuMzI1LTEuMzcyIDYtM2wxNi0xNS41NTgtMTkuOTU4LTEyLjAzNSIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMDAuMDQgMTQ0LjQxbDQ4LjM2IDM1LjcyOWM1LjUxOSAzLjA0NSA5LjUwMSAxLjQ2OCAxMC44NzYtNS4xMjNsMTkuNjg1LTkyLjc2M2MyLjAxNS04LjA4LTMuMDgtMTEuNzQ2LTguMzYtOS4zNDlsLTExNS41OSA0NC41NzFjLTcuODkgMy4xNjUtNy44NDMgNy41NjctMS40MzggOS41MjhsMjkuNjYzIDkuMjU5IDY4LjY3My00My4zMjVjMy4yNDItMS45NjYgNi4yMTgtLjkxIDMuNzc2IDEuMjU4Ii8+PC9zdmc+", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "Telegram", + "camel.apache.org/kamelet.namespace": "Social" + }, + "labels": { + "camel.apache.org/kamelet.type": "sink" + } + }, + "spec": { + "definition": { + "title": "Telegram Sink", + "description": "Send a message to a Telegram chat by using your Telegram bot as sender.", + "required": [ + "authorizationToken" + ], + "type": "object", + "properties": { + "authorizationToken": { + "title": "Token", + "description": "The token to access your bot on Telegram. You you can obtain it from the Telegram @botfather.", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "chatId": { + "title": "Chat ID", + "description": "The Chat ID to where you want to send messages by default.", + "type": "string" + } + } + }, + "types": { + "out": { + "mediaType": "application/json" + } + }, + "dependencies": [ + "camel:core", + "camel:jackson", + "camel:kamelet", + "camel:telegram" + ], + "template": { + "from": { + "uri": "kamelet:source", + "steps": [ + { + "choice": { + "when": [ + { + "simple": "${header[Content-Type]} == 'image/png'", + "steps": [ + { + "convertBodyTo": { + "type": "byte[]" + } + }, + { + "setHeader": { + "name": "CamelTelegramMediaType", + "constant": "PHOTO_PNG" + } + } + ] + }, + { + "simple": "${header[Content-Type]} == 'image/jpeg'", + "steps": [ + { + "convertBodyTo": { + "type": "byte[]" + } + }, + { + "setHeader": { + "name": "CamelTelegramMediaType", + "constant": "PHOTO_JPG" + } + } + ] + } + ], + "otherwise": { + "steps": [ + { + "convertBodyTo": { + "type": "java.lang.String" + } + } + ] + } + } + }, + { + "choice": { + "when": [ + { + "simple": "${header[text]}", + "steps": [ + { + "setHeader": { + "name": "CamelTelegramMediaTitleCaption", + "simple": "${header[text]}" + } + } + ] + }, + { + "simple": "${header[ce-text]}", + "steps": [ + { + "setHeader": { + "name": "CamelTelegramMediaTitleCaption", + "simple": "${header[ce-text]}" + } + } + ] + } + ] + } + }, + { + "choice": { + "when": [ + { + "simple": "${header[chat-id]}", + "steps": [ + { + "setHeader": { + "name": "CamelTelegramChatId", + "simple": "${header[chat-id]}" + } + } + ] + }, + { + "simple": "${header[ce-chatid]}", + "steps": [ + { + "setHeader": { + "name": "CamelTelegramChatId", + "simple": "${header[ce-chatid]}" + } + } + ] + } + ] + } + }, + { + "to": { + "uri": "telegram:bots", + "parameters": { + "authorizationToken": "{{authorizationToken}}", + "chatId": "{{?chatId}}" + } + } + }, + { + "marshal": { + "json": {} + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "Telegram Sink", + "description": "Send a message to a Telegram chat by using your Telegram bot as sender.", + "required": [ + "authorizationToken" + ], + "properties": { + "authorizationToken": { + "type": "string", + "title": "Token", + "description": "The token to access your bot on Telegram. You you can obtain it from the Telegram @botfather.", + "format": "password" + }, + "chatId": { + "type": "string", + "title": "Chat ID", + "description": "The Chat ID to where you want to send messages by default." + } + } + } +} \ No newline at end of file