185 lines
8.6 KiB
JSON
185 lines
8.6 KiB
JSON
{
|
|
"apiVersion": "camel.apache.org/v1",
|
|
"kind": "Kamelet",
|
|
"metadata": {
|
|
"name": "slack-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,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNUQzNjY7fQoJLnN0MXtmaWxsOiNGRkZGRkY7fQoJLnN0MntmaWxsOiNGRjAwMDA7fQoJLnN0M3tmaWxsOiMzRDVBOTg7fQoJLnN0NHtmaWxsOnVybCgjU1ZHSURfMV8pO30KCS5zdDV7ZmlsbDp1cmwoI1NWR0lEXzJfKTt9Cgkuc3Q2e2ZpbGw6IzU1QURFRTt9Cgkuc3Q3e2ZpbGw6IzFFOTZDODt9Cgkuc3Q4e2ZpbGw6I0E5QzlERDt9Cgkuc3Q5e2ZpbGw6I0M4REFFQTt9Cgkuc3QxMHtmaWxsOm5vbmU7fQoJLnN0MTF7ZmlsbDojNDc4N0YzO30KCS5zdDEye2ZpbGw6I0RDNDgzQzt9Cgkuc3QxM3tmaWxsOiNGRkNFNDM7fQoJLnN0MTR7ZmlsbDojMTQ5RjVDO30KCS5zdDE1e2ZpbGw6I0NFMUU1Qjt9Cgkuc3QxNntmaWxsOiM3MkM1Q0Q7fQoJLnN0MTd7ZmlsbDojREZBMjJGO30KCS5zdDE4e2ZpbGw6IzNDQjE4Nzt9Cgkuc3QxOXtmaWxsOiMyNDhDNzM7fQoJLnN0MjB7ZmlsbDojMzkyNTM4O30KCS5zdDIxe2ZpbGw6I0JCMjQyQTt9Cgkuc3QyMntmaWxsOm5vbmU7c3Ryb2tlOiMzQ0IxODc7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQoJLnN0MjN7ZmlsbDojMDA5QTU3O30KCS5zdDI0e2ZpbGw6I0ZDQ0QzNzt9Cgkuc3QyNXtmaWxsOiMyNzcxRjA7fQo8L3N0eWxlPjxnPjxwYXRoIGNsYXNzPSJzdDE1IiBkPSJNNTAxLjgsMjc0TDUwMS44LDI3NGMtNy42LTIzLjMtMzIuNi0zNi4xLTU2LTI4LjVMOTYuMiwzNTkuMWMtMjMuMyw3LjYtMzYuMSwzMi42LTI4LjUsNTZsMCwwICAgYzcuNiwyMy4zLDMyLjYsMzYuMSw1NiwyOC41bDM0OS42LTExMy42QzQ5Ni42LDMyMi40LDUwOS40LDI5Ny4zLDUwMS44LDI3NHoiLz48cGF0aCBjbGFzcz0ic3QxNiIgZD0iTTQ0My41LDk3LjdsLTAuMi0wLjVjLTcuNi0yMy4zLTMyLjYtMzYuMS01Ni0yOC41TDM4LjcsMTgyLjFjLTIzLjMsNy42LTM2LjEsMzIuNi0yOC41LDU2bDAuMiwwLjUgICBjNy42LDIzLjMsMzIuNiwzNi4xLDU2LDI4LjVsMzQ4LjYtMTEzLjNDNDM4LjMsMTQ2LjEsNDUxLDEyMS4xLDQ0My41LDk3Ljd6Ii8+PHBhdGggY2xhc3M9InN0MTciIGQ9Ik00NDMuNiwzODguM0wzMjkuOSwzOC43Yy03LjYtMjMuMy0zMi42LTM2LjEtNTYtMjguNXYwYy0yMy4zLDcuNi0zNi4xLDMyLjYtMjguNSw1NmwxMTMuNiwzNDkuNiAgIGM3LjYsMjMuMywzMi42LDM2LjEsNTYsMjguNWgwQzQzOC40LDQzNi43LDQ1MS4yLDQxMS42LDQ0My42LDM4OC4zeiIvPjxwYXRoIGNsYXNzPSJzdDE4IiBkPSJNMjY3LDQ0NS43TDE1My43LDk3LjFjLTcuNi0yMy4zLTMyLjYtMzYuMS01Ni0yOC41bC0wLjUsMC4yYy0yMy4zLDcuNi0zNi4xLDMyLjYtMjguNSw1NmwxMTMuMywzNDguNiAgIGM3LjYsMjMuMywzMi42LDM2LjEsNTYsMjguNWwwLjUtMC4yQzI2MS45LDQ5NC4xLDI3NC42LDQ2OSwyNjcsNDQ1Ljd6Ii8+PHJlY3QgY2xhc3M9InN0MTkiIGhlaWdodD0iODkuNCIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTUxIDAuMzA5MSAtMC4zMDkxIC0wLjk1MSAzMzEuOTg5NiAzNDAuMjQ1KSIgd2lkdGg9Ijg5LjQiIHg9Ijk0LjQiIHk9IjE1MS43Ii8+PHJlY3QgY2xhc3M9InN0MjAiIGhlaWdodD0iODguOCIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NTEgLTAuMzA5MSAwLjMwOTEgMC45NTEgLTEwNS43NDk4IDc5LjAzMDEpIiB3aWR0aD0iODkuNCIgeD0iMTUxLjgiIHk9IjMyOC44Ii8+PHJlY3QgY2xhc3M9InN0MjEiIGhlaWdodD0iODguOCIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NTEgLTAuMzA5MSAwLjMwOTEgMC45NTEgLTc5LjMyNSAxMzAuODY4OSkiIHdpZHRoPSI4OC44IiB4PSIzMjguOSIgeT0iMjcxLjMiLz48L2c+PC9zdmc+",
|
|
"camel.apache.org/provider": "Apache Software Foundation",
|
|
"camel.apache.org/kamelet.group": "Slack",
|
|
"camel.apache.org/kamelet.namespace": "Social"
|
|
},
|
|
"labels": {
|
|
"camel.apache.org/kamelet.type": "source"
|
|
}
|
|
},
|
|
"spec": {
|
|
"definition": {
|
|
"title": "Slack Source",
|
|
"description": "Receive messages from a Slack channel.",
|
|
"required": [
|
|
"channel",
|
|
"token"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"serverUrl": {
|
|
"title": "Server URL",
|
|
"description": "The Slack API server endpoint URL.",
|
|
"type": "string",
|
|
"default": "https://slack.com",
|
|
"example": "https://slack.com"
|
|
},
|
|
"channel": {
|
|
"title": "Channel",
|
|
"description": "The Slack channel to receive messages from.",
|
|
"type": "string",
|
|
"example": "#myroom"
|
|
},
|
|
"token": {
|
|
"title": "Token",
|
|
"description": "The Bot User OAuth Access Token to access Slack. A Slack app that has the following permissions is required: `channels:history`, `groups:history`, `im:history`, `mpim:history`, `channels:read`, `groups:read`, `im:read`, and `mpim:read`.",
|
|
"type": "string",
|
|
"format": "password",
|
|
"x-descriptors": [
|
|
"urn:camel:group:credentials"
|
|
]
|
|
},
|
|
"delay": {
|
|
"title": "Delay",
|
|
"description": "The delay between polls. If no unit provided, milliseconds is the default.",
|
|
"type": "string",
|
|
"default": "60000",
|
|
"example": "60s or 6000 or 1m"
|
|
},
|
|
"naturalOrder": {
|
|
"title": "Natural Order",
|
|
"description": "Create exchanges in natural order (oldest to newest) or not.",
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"dataTypes": {
|
|
"out": {
|
|
"default": "json",
|
|
"headers": null,
|
|
"types": {
|
|
"json": {
|
|
"format": "application-json",
|
|
"description": "Json mapping of a Slack API Message",
|
|
"mediaType": "application/json"
|
|
},
|
|
"cloudevents": {
|
|
"format": "slack:application-cloudevents",
|
|
"description": "Output data type represents Slack channel messages as CloudEvent V1. The data type sets Camel specific CloudEvent headers on the exchange with respective data from the Slack message and its derived object.",
|
|
"headers": {
|
|
"CamelCloudEventID": {
|
|
"title": "CloudEvent ID",
|
|
"description": "The Camel exchange id set as event id",
|
|
"type": "string"
|
|
},
|
|
"CamelCloudEventType": {
|
|
"title": "CloudEvent Type",
|
|
"description": "The event type",
|
|
"default": "org.apache.camel.event.slack.consume",
|
|
"type": "string"
|
|
},
|
|
"CamelCloudEventSource": {
|
|
"title": "CloudEvent Source",
|
|
"description": "The event source. By default, the Slack App Id with prefix \"slack.\".",
|
|
"type": "string"
|
|
},
|
|
"CamelCloudEventSubject": {
|
|
"title": "CloudEvent Subject",
|
|
"description": "The event subject. The Slack Channel name.",
|
|
"type": "string"
|
|
},
|
|
"CamelCloudEventTime": {
|
|
"title": "CloudEvent Time",
|
|
"description": "The exchange creation timestamp as event time.",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"types": {
|
|
"out": {
|
|
"mediaType": "application/json"
|
|
}
|
|
},
|
|
"dependencies": [
|
|
"camel:gson",
|
|
"camel:slack",
|
|
"camel:kamelet"
|
|
],
|
|
"template": {
|
|
"from": {
|
|
"uri": "slack:{{channel}}",
|
|
"parameters": {
|
|
"serverUrl": "{{serverUrl}}",
|
|
"token": "{{token}}",
|
|
"delay": "{{delay}}",
|
|
"naturalOrder": "{{naturalOrder}}"
|
|
},
|
|
"steps": [
|
|
{
|
|
"marshal": {
|
|
"json": {
|
|
"library": "Gson"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"to": "kamelet:sink"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"propertiesSchema": {
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"title": "Slack Source",
|
|
"description": "Receive messages from a Slack channel.",
|
|
"required": [
|
|
"channel",
|
|
"token"
|
|
],
|
|
"properties": {
|
|
"serverUrl": {
|
|
"type": "string",
|
|
"title": "Server URL",
|
|
"description": "The Slack API server endpoint URL.",
|
|
"default": "https://slack.com"
|
|
},
|
|
"channel": {
|
|
"type": "string",
|
|
"title": "Channel",
|
|
"description": "The Slack channel to receive messages from."
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"title": "Token",
|
|
"description": "The Bot User OAuth Access Token to access Slack. A Slack app that has the following permissions is required: `channels:history`, `groups:history`, `im:history`, `mpim:history`, `channels:read`, `groups:read`, `im:read`, and `mpim:read`.",
|
|
"format": "password"
|
|
},
|
|
"delay": {
|
|
"type": "string",
|
|
"title": "Delay",
|
|
"description": "The delay between polls. If no unit provided, milliseconds is the default.",
|
|
"default": "60000"
|
|
},
|
|
"naturalOrder": {
|
|
"type": "boolean",
|
|
"title": "Natural Order",
|
|
"description": "Create exchanges in natural order (oldest to newest) or not.",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
} |