{ "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" } } } }