diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..5121aef --- /dev/null +++ b/kamelet.json @@ -0,0 +1,172 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "mail-imap-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,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAwIDE2LjIwMDAwMSAxMi4yIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJCcmVlemVpY29ucy1wbGFjZXMtMTYtZm9sZGVyLW1haWwuc3ZnIgogICB3aWR0aD0iMTYuMjAwMDAxIgogICBoZWlnaHQ9IjEyLjIiCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMC4yIChlODZjODcwODc5LCAyMDIxLTAxLTE1KSI+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTYiCiAgICAgaWQ9Im5hbWVkdmlldzciCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGZpdC1tYXJnaW4tdG9wPSIwLjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMC4xIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMC4xIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIwLjEiCiAgICAgaW5rc2NhcGU6em9vbT0iNTMuNSIKICAgICBpbmtzY2FwZTpjeD0iOC4xIgogICAgIGlua3NjYXBlOmN5PSIzLjEwOTM0NTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNSIgLz4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzA1MSI+CiAgICA8c3R5bGUKICAgICAgIHR5cGU9InRleHQvY3NzIgogICAgICAgaWQ9ImN1cnJlbnQtY29sb3Itc2NoZW1lIj4KICAgICAgLkNvbG9yU2NoZW1lLVRleHQgewogICAgICAgIGNvbG9yOiM0ZDRkNGQ7CiAgICAgIH0KICAgICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGgKICAgICBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgZD0ibSAwLjEsMC4xIHYgMTIgaCAxNiB2IC0xMiB6IG0gMS40MTQwNjI1LDEgSCAxNC42ODU5MzggTCA4LjEsNy42ODU5Mzc1IFogTSAxLjEsMi4xIGwgNCw0IC00LDQgeiBtIDE0LDAgdiA4IGwgLTQsLTQgeiBNIDUuODA3MDMxMiw2LjgwNzAzMTIgOC4xLDkuMSAxMC4zOTI5NjksNi44MDcwMzEyIDE0LjY4NTkzOCwxMS4xIEggMS41MTQwNjI1IFoiCiAgICAgaWQ9InJlY3Q0MTQ0IgogICAgIGNsYXNzPSJDb2xvclNjaGVtZS1UZXh0IiAvPgo8L3N2Zz4K", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "Mail", + "camel.apache.org/kamelet.namespace": "Mail" + }, + "labels": { + "camel.apache.org/kamelet.type": "source" + } + }, + "spec": { + "definition": { + "title": "Mail IMAP Source", + "description": "Receive unread emails from an IMAP mail server, marking them as read once they are received.", + "required": [ + "connectionHost", + "connectionPort", + "username", + "password" + ], + "type": "object", + "properties": { + "connectionHost": { + "title": "Connection Host", + "description": "The IMAP server host.", + "type": "string", + "example": "imap.gmail.com" + }, + "connectionPort": { + "title": "Connection Port", + "description": "The IMAP server port.", + "type": "string", + "default": 993 + }, + "username": { + "title": "Username", + "description": "The username to access the mail box.", + "type": "string", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "password": { + "title": "Password", + "description": "The password to access the mail box.", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "fetchSize": { + "title": "Fetch Size", + "description": "The number of messages fetched for each poll (-1 for no limits).", + "type": "integer", + "default": 10 + }, + "delay": { + "title": "Delay", + "description": "The delay between fetches in milliseconds.", + "type": "integer", + "default": 60000 + } + } + }, + "dependencies": [ + "camel:core", + "camel:mail", + "camel:kamelet" + ], + "template": { + "from": { + "uri": "imaps:{{connectionHost}}:{{connectionPort}}", + "parameters": { + "username": "{{username}}", + "password": "{{password}}", + "fetchSize": "{{fetchSize}}", + "delay": "{{delay}}" + }, + "steps": [ + { + "setHeader": { + "name": "ce-subject", + "simple": "${header.Subject}" + } + }, + { + "setHeader": { + "name": "ce-from", + "simple": "${header.From}" + } + }, + { + "setHeader": { + "name": "ce-to", + "simple": "${header.To}" + } + }, + { + "setHeader": { + "name": "ce-cc", + "simple": "${header.Cc}" + } + }, + { + "convertBodyTo": { + "type": "java.lang.String" + } + }, + { + "to": "kamelet:sink" + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "Mail IMAP Source", + "description": "Receive unread emails from an IMAP mail server, marking them as read once they are received.", + "required": [ + "connectionHost", + "connectionPort", + "username", + "password" + ], + "properties": { + "connectionHost": { + "type": "string", + "title": "Connection Host", + "description": "The IMAP server host." + }, + "connectionPort": { + "type": "string", + "title": "Connection Port", + "description": "The IMAP server port.", + "default": 993 + }, + "username": { + "type": "string", + "title": "Username", + "description": "The username to access the mail box." + }, + "password": { + "type": "string", + "title": "Password", + "description": "The password to access the mail box.", + "format": "password" + }, + "fetchSize": { + "type": "integer", + "title": "Fetch Size", + "description": "The number of messages fetched for each poll (-1 for no limits).", + "default": 10 + }, + "delay": { + "type": "integer", + "title": "Delay", + "description": "The delay between fetches in milliseconds.", + "default": 60000 + } + } + } +} \ No newline at end of file