Add kamelet definition: slack-source
This commit is contained in:
parent
9947e26d5d
commit
76b2be7846
185
kamelet.json
Normal file
185
kamelet.json
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user