diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..f71962d --- /dev/null +++ b/kamelet.json @@ -0,0 +1,223 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "mail-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,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": "sink" + } + }, + "spec": { + "definition": { + "title": "Mail Sink", + "description": "Send mails to given SMTP server.", + "required": [ + "connectionHost", + "username", + "password" + ], + "type": "object", + "properties": { + "connectionHost": { + "description": "The mail server host", + "example": "smtp.gmail.com", + "title": "Host", + "type": "string" + }, + "connectionPort": { + "description": "The mail server port", + "title": "Port", + "default": 25, + "type": "string" + }, + "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" + ] + }, + "from": { + "description": "The `from` field of the outgoing mail", + "title": "From", + "type": "string" + }, + "to": { + "description": "The `to` field of the outgoing mail", + "title": "To", + "type": "string" + }, + "subject": { + "description": "The mail subject of the outgoing mail", + "title": "Subject", + "type": "string" + } + } + }, + "dependencies": [ + "camel:core", + "camel:mail", + "camel:kamelet" + ], + "template": { + "from": { + "uri": "kamelet:source", + "steps": [ + { + "choice": { + "when": [ + { + "simple": "${header[ce-subject]}", + "steps": [ + { + "setHeader": { + "name": "Subject", + "simple": "${header[ce-subject]}" + } + } + ] + } + ] + } + }, + { + "choice": { + "when": [ + { + "simple": "${header[ce-from]}", + "steps": [ + { + "setHeader": { + "name": "From", + "simple": "${header[ce-from]}" + } + } + ] + } + ] + } + }, + { + "choice": { + "when": [ + { + "simple": "${header[ce-to]}", + "steps": [ + { + "setHeader": { + "name": "To", + "simple": "${header[ce-to]}" + } + } + ] + } + ] + } + }, + { + "choice": { + "when": [ + { + "simple": "${header[ce-cc]}", + "steps": [ + { + "setHeader": { + "name": "Cc", + "simple": "${header[ce-cc]}" + } + } + ] + } + ] + } + }, + { + "removeHeaders": { + "pattern": "ce-*" + } + }, + { + "to": { + "uri": "smtp:{{connectionHost}}:{{connectionPort}}", + "parameters": { + "subject": "{{subject}}", + "from": "{{from}}", + "to": "{{to}}", + "username": "{{username}}", + "password": "{{password}}" + } + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "Mail Sink", + "description": "Send mails to given SMTP server.", + "required": [ + "connectionHost", + "username", + "password" + ], + "properties": { + "connectionHost": { + "type": "string", + "title": "Host", + "description": "The mail server host" + }, + "connectionPort": { + "type": "string", + "title": "Port", + "description": "The mail server port", + "default": 25 + }, + "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" + }, + "from": { + "type": "string", + "title": "From", + "description": "The `from` field of the outgoing mail" + }, + "to": { + "type": "string", + "title": "To", + "description": "The `to` field of the outgoing mail" + }, + "subject": { + "type": "string", + "title": "Subject", + "description": "The mail subject of the outgoing mail" + } + } + } +} \ No newline at end of file