147 lines
5.9 KiB
JSON
147 lines
5.9 KiB
JSON
{
|
|
"apiVersion": "camel.apache.org/v1",
|
|
"kind": "Kamelet",
|
|
"metadata": {
|
|
"name": "wttrin-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,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1zdW4iIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1zdW4iIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOTYgMjA4YzAtNjEuODYgNTAuMTQtMTExLjEgMTExLjEtMTExLjFjNTIuNjUgMCA5Ni41IDM2LjQ1IDEwOC41IDg1LjQyQzMzNC43IDE3My4xIDM1NC43IDE2OCAzNzUuMSAxNjhjNC42MDcgMCA5LjE1MiAuMzgwOSAxMy42OCAuODIwM2wyNC4xMy0zNC43NmM1LjE0NS03LjQxNCAuODk2NS0xNy42Ny03Ljk4NC0xOS4yN0wzMTcuMiA5OC43OEwzMDEuMiAxMC4yMUMyOTkuNiAxLjMyNSAyODkuNC0yLjkxOSAyODEuOSAyLjIyNkwyMDggNTMuNTRMMTM0LjEgMi4yMjVDMTI2LjYtMi45MiAxMTYuNCAxLjMyNiAxMTQuOCAxMC4yMUw5OC43OCA5OC43OEwxMC4yMSAxMTQuOEMxLjMyNiAxMTYuNC0yLjkyMiAxMjYuNyAyLjIyMyAxMzQuMWw1MS4zIDczLjk0TDIuMjI0IDI4MS45Yy01LjE0NSA3LjQxNC0uODk3NSAxNy42NyA3Ljk4MyAxOS4yN0w5OC43OCAzMTcuMmwxNi4wMSA4OC41OGMxLjYwNCA4Ljg4MSAxMS44NiAxMy4xMyAxOS4yNyA3Ljk4MmwxMC43MS03LjQzMmMyLjcyNS0zNS4xNSAxOS44NS02Ni41MSA0NS44My04OC4xQzEzNy4xIDMwOS44IDk2IDI2My45IDk2IDIwOHpNMTI4IDIwOGMwIDQ0LjE4IDM1LjgyIDgwIDgwIDgwYzkuNzI5IDAgMTguOTMtMS45OTYgMjcuNTYtNS4xNzZjNy4wMDItMzMuNjUgMjUuNTMtNjIuODUgNTEuNTctODMuNDRDMjgyLjggMTU5LjMgMjQ5LjIgMTI4IDIwOCAxMjhDMTYzLjggMTI4IDEyOCAxNjMuOCAxMjggMjA4ek01NzUuMiAzMjUuNmMuMTI1LTIgLjc0NTMtMy43NDQgLjc0NTMtNS42MTljMC0zNS4zOC0yOC43NS02NC02My4xLTY0Yy0xMi42MiAwLTI0LjI1IDMuNzQ5LTM0LjEzIDkuOTk5Yy0xNy42Mi0zOC44OC01Ni41LTY1LjEtMTAxLjktNjUuMWMtNjEuNzUgMC0xMTIgNTAuMTItMTEyIDExMS4xYzAgMyAuNzUyMiA1Ljc0MyAuODc3MiA4LjYxOGMtNDkuNjMgMy43NS04OC44OCA0NC43NC04OC44OCA5NS4zN0MxNzUuMSA0NjkgMjE4LjEgNTEyIDI3MS4xIDUxMmgyNzJjNTMgMCA5Ni00Mi45OSA5Ni05NS45OUM2MzkuMSAzNzMuOSA2MTIuNyAzMzguNiA1NzUuMiAzMjUuNnoiPjwvcGF0aD48L3N2Zz4=",
|
|
"camel.apache.org/provider": "Apache Software Foundation",
|
|
"camel.apache.org/kamelet.group": "Weather",
|
|
"camel.apache.org/kamelet.namespace": "Dataset"
|
|
},
|
|
"labels": {
|
|
"camel.apache.org/kamelet.type": "source"
|
|
}
|
|
},
|
|
"spec": {
|
|
"definition": {
|
|
"title": "wttr.in Source",
|
|
"description": "Get weather forecasts from the wttr.in weather forecast service",
|
|
"type": "object",
|
|
"properties": {
|
|
"period": {
|
|
"title": "Period",
|
|
"description": "The interval between fetches to the wttr.in service in milliseconds",
|
|
"type": "integer",
|
|
"default": 60000
|
|
},
|
|
"wttrLocation": {
|
|
"title": "Location",
|
|
"description": "The location to get weather forecasts",
|
|
"type": "string",
|
|
"example": "\"paris\", \"~Eiffel+tower\", \"Москва\", \"muc\", \"@stackoverflow.com\", \"94107\", \"-78.46,106.79\""
|
|
},
|
|
"wttrLanguage": {
|
|
"title": "Language",
|
|
"description": "The language to use for displaying weather forecasts",
|
|
"type": "string",
|
|
"example": "am ar af be bn ca da de el et fr fa hi hu ia id it lt mg nb nl oc pl pt-br ro ru ta tr th uk vi zh-cn zh-tw"
|
|
},
|
|
"output": {
|
|
"title": "Output Type",
|
|
"description": "The type of output",
|
|
"type": "string",
|
|
"example": "current, weather, full",
|
|
"default": "current"
|
|
}
|
|
}
|
|
},
|
|
"types": {
|
|
"out": {
|
|
"mediaType": "application/json"
|
|
}
|
|
},
|
|
"dependencies": [
|
|
"camel:core",
|
|
"camel:http",
|
|
"camel:jackson",
|
|
"camel:jsonpath",
|
|
"camel:kamelet",
|
|
"camel:timer"
|
|
],
|
|
"template": {
|
|
"from": {
|
|
"uri": "timer:wttr.in",
|
|
"parameters": {
|
|
"period": "{{period}}"
|
|
},
|
|
"steps": [
|
|
{
|
|
"to": "https://wttr.in/{{?wttrLocation}}?format=j1&lang={{?wttrLanguage}}"
|
|
},
|
|
{
|
|
"choice": {
|
|
"when": [
|
|
{
|
|
"simple": "'{{output}}' == 'current'",
|
|
"steps": [
|
|
{
|
|
"transform": {
|
|
"jsonpath": "$.current_condition[0]"
|
|
}
|
|
},
|
|
{
|
|
"marshal": {
|
|
"json": {}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"simple": "'{{output}}' == 'weather'",
|
|
"steps": [
|
|
{
|
|
"transform": {
|
|
"jsonpath": "$.weather"
|
|
}
|
|
},
|
|
{
|
|
"marshal": {
|
|
"json": {}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"to": "kamelet:sink"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"propertiesSchema": {
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"title": "wttr.in Source",
|
|
"description": "Get weather forecasts from the wttr.in weather forecast service",
|
|
"properties": {
|
|
"period": {
|
|
"type": "integer",
|
|
"title": "Period",
|
|
"description": "The interval between fetches to the wttr.in service in milliseconds",
|
|
"default": 60000
|
|
},
|
|
"wttrLocation": {
|
|
"type": "string",
|
|
"title": "Location",
|
|
"description": "The location to get weather forecasts"
|
|
},
|
|
"wttrLanguage": {
|
|
"type": "string",
|
|
"title": "Language",
|
|
"description": "The language to use for displaying weather forecasts"
|
|
},
|
|
"output": {
|
|
"type": "string",
|
|
"title": "Output Type",
|
|
"description": "The type of output",
|
|
"default": "current"
|
|
}
|
|
}
|
|
}
|
|
} |