Add kamelet definition: google-calendar-source

This commit is contained in:
gitea_admin 2026-10-12 02:33:46 +00:00
parent 94ad07e9e1
commit 708ade11fe

261
kamelet.json Normal file
View File

@ -0,0 +1,261 @@
{
"apiVersion": "camel.apache.org/v1",
"kind": "Kamelet",
"metadata": {
"name": "google-calendar-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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE4NiAzOCA3NiA3NiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI0NCA1NmgtNDB2NDBoNDBWNTZ6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTI0NCAxMTRsMTgtMThoLTE4djE4eiIvPjxwYXRoIGZpbGw9IiNGQkJDMDQiIGQ9Ik0yNjIgNTZoLTE4djQwaDE4VjU2eiIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Ik0yNDQgOTZoLTQwdjE4aDQwVjk2eiIvPjxwYXRoIGZpbGw9IiMxODgwMzgiIGQ9Ik0xODYgOTZ2MTJjMCAzLjMxNSAyLjY4NSA2IDYgNmgxMlY5NmgtMTh6Ii8+PHBhdGggZmlsbD0iIzE5NjdEMiIgZD0iTTI2MiA1NlY0NGMwLTMuMzE1LTIuNjg1LTYtNi02aC0xMnYxOGgxOHoiLz48cGF0aCBmaWxsPSIjNDI4NUY0IiBkPSJNMjQ0IDM4aC01MmMtMy4zMTUgMCAtNiAyLjY4NS02IDZ2NTJoMThWNTZoNDBWMzh6Ii8+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTIxMi4yMDUgODcuMDNjLTEuNDk1LTEuMDEtMi41My0yLjQ4NS0zLjA5NS00LjQzNWwzLjQ3LTEuNDNjLjMxNSAxLjIuODY1IDIuMTMgMS42NSAyLjc5Ljc4LjY2IDEuNzMuOTg1IDIuODQuOTg1IDEuMTM1IDAgMi4xMS0uMzQ1IDIuOTI1LTEuMDM1czEuMjI1LTEuNTcgMS4yMjUtMi42MzVjMC0xLjA5LS40My0xLjk4LTEuMjktMi42Ny0uODYtLjY5LTEuOTQtMS4wMzUtMy4yMy0xLjAzNWgtMi4wMDVWNzQuMTNoMS44YzEuMTEgMCAyLjA0NS0uMyAyLjgwNS0uOS43Ni0uNiAxLjE0LTEuNDIgMS4xNC0yLjQ2NSAwIC0uOTMtLjM0LTEuNjctMS4wMi0yLjIyNS0uNjgtLjU1NS0xLjU0LS44MzUtMi41ODUtLjgzNS0xLjAyIDAgLTEuODMuMjctMi40My44MTVhNC43ODQgNC43ODQgMCAwIDAgLTEuMzEgMi4wMDVsLTMuNDM1LTEuNDNjLjQ1NS0xLjI5IDEuMjktMi40MyAyLjUxNS0zLjQxNSAxLjIyNS0uOTg1IDIuNzktMS40OCA0LjY5LTEuNDggMS40MDUgMCAyLjY3LjI3IDMuNzkuODE1IDEuMTIuNTQ1IDIgMS4zIDIuNjM1IDIuMjYuNjM1Ljk2NS45NSAyLjA0NS45NSAzLjI0NSAwIDEuMjI1LS4yOTUgMi4yNi0uODg1IDMuMTEtLjU5Ljg1LTEuMzE1IDEuNS0yLjE3NSAxLjk1NXYuMjA1YTYuNjA1IDYuNjA1IDAgMCAxIDIuNzkgMi4xNzVjLjcyNS45NzUgMS4wOSAyLjE0IDEuMDkgMy41IDAgMS4zNi0uMzQ1IDIuNTc1LTEuMDM1IDMuNjRzLTEuNjQ1IDEuOTA1LTIuODU1IDIuNTE1Yy0xLjIxNS42MS0yLjU4LjkyLTQuMDk1LjkyLTEuNzU1LjAwNS0zLjM3NS0uNS00Ljg3LTEuNTF6TTIzMy41MiA2OS44MWwtMy44MSAyLjc1NS0xLjkwNS0yLjg5IDYuODM1LTQuOTNoMi42MlY4OGgtMy43NFY2OS44MXoiLz48L3N2Zz4=",
"camel.apache.org/provider": "Apache Software Foundation",
"camel.apache.org/kamelet.group": "Google Calendar",
"camel.apache.org/kamelet.namespace": "GCP"
},
"labels": {
"camel.apache.org/kamelet.type": "source"
}
},
"spec": {
"definition": {
"title": "Google Calendar Source",
"description": "Receive event data from Google Calendar.",
"required": [
"index",
"calendarId",
"clientId",
"accessToken",
"refreshToken",
"clientSecret",
"applicationName"
],
"type": "object",
"properties": {
"index": {
"title": "Index",
"description": "An index for the Google Calendar endpoint.",
"type": "string"
},
"calendarId": {
"title": "Calendar ID",
"description": "The calendar ID to use as the source of event data.",
"type": "string"
},
"clientId": {
"title": "Client Id",
"description": "The Client ID of the Google Calendar application.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"clientSecret": {
"title": "Client Secret",
"description": "The Client secret of the Google Calendar application.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"accessToken": {
"title": "Access Token",
"description": "The OAuth 2 access token for the Google Calendar application. This token typically expires after an hour. For long term usage, set the `refreshToken` property.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"refreshToken": {
"title": "Refresh Token",
"description": "The OAuth 2 refresh token for the Google Calendar application. The Google Calendar component can obtain a new `accessToken` whenever the current one expires. Set this value for long term usage.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"delay": {
"title": "Delay",
"description": "The number of milliseconds before the next poll.",
"type": "integer",
"default": 500
},
"applicationName": {
"title": "Application name",
"description": "The Google Calendar application name.",
"type": "string"
},
"syncFlow": {
"title": "Sync Flow",
"description": "Specifies to sync events for incremental synchronization.",
"type": "boolean",
"default": false
},
"consumeFromNow": {
"title": "Consume from now",
"description": "Specfies to consume events in the calendar from now on.",
"type": "boolean",
"default": true
}
}
},
"dataTypes": {
"out": {
"default": "json",
"headers": {
"CamelGoogleCalendarEventId": {
"title": "Camel Google Calendar Event Id",
"description": "The calendar event id",
"type": "string"
}
},
"types": {
"json": {
"format": "application-json",
"description": "Json representation of a Google Calendar event object.",
"mediaType": "application/json"
},
"cloudevents": {
"format": "google-calendar-stream:application-cloudevents",
"description": "Output data type represents Google Calendar Stream response as CloudEvent V1. The data type sets Camel specific CloudEvent headers on the exchange with respective data from the Calendar Events 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.google.calendar.stream.consume",
"type": "string"
},
"CamelCloudEventSource": {
"title": "CloudEvent Source",
"description": "The event source. By default, the Calendar Event Id with prefix \"google.calendar.stream.\".",
"type": "string"
},
"CamelCloudEventSubject": {
"title": "CloudEvent Subject",
"description": "The event subject. The Calendar event type.",
"type": "string"
},
"CamelCloudEventTime": {
"title": "CloudEvent Time",
"description": "The exchange creation timestamp as event time.",
"type": "string"
}
}
}
}
}
},
"dependencies": [
"camel:jackson",
"camel:google-calendar",
"camel:kamelet"
],
"template": {
"from": {
"uri": "google-calendar-stream://{{index}}",
"parameters": {
"clientId": "{{clientId}}",
"calendarId": "{{calendarId}}",
"accessToken": "{{accessToken}}",
"refreshToken": "{{refreshToken}}",
"clientSecret": "{{clientSecret}}",
"delay": "{{delay}}",
"applicationName": "{{applicationName}}",
"syncFlow": "{{syncFlow}}",
"consumeFromNow": "{{consumeFromNow}}"
},
"steps": [
{
"marshal": {
"json": {}
}
},
{
"to": "kamelet:sink"
}
]
}
}
},
"propertiesSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "Google Calendar Source",
"description": "Receive event data from Google Calendar.",
"required": [
"index",
"calendarId",
"clientId",
"accessToken",
"refreshToken",
"clientSecret",
"applicationName"
],
"properties": {
"index": {
"type": "string",
"title": "Index",
"description": "An index for the Google Calendar endpoint."
},
"calendarId": {
"type": "string",
"title": "Calendar ID",
"description": "The calendar ID to use as the source of event data."
},
"clientId": {
"type": "string",
"title": "Client Id",
"description": "The Client ID of the Google Calendar application.",
"format": "password"
},
"clientSecret": {
"type": "string",
"title": "Client Secret",
"description": "The Client secret of the Google Calendar application.",
"format": "password"
},
"accessToken": {
"type": "string",
"title": "Access Token",
"description": "The OAuth 2 access token for the Google Calendar application. This token typically expires after an hour. For long term usage, set the `refreshToken` property.",
"format": "password"
},
"refreshToken": {
"type": "string",
"title": "Refresh Token",
"description": "The OAuth 2 refresh token for the Google Calendar application. The Google Calendar component can obtain a new `accessToken` whenever the current one expires. Set this value for long term usage.",
"format": "password"
},
"delay": {
"type": "integer",
"title": "Delay",
"description": "The number of milliseconds before the next poll.",
"default": 500
},
"applicationName": {
"type": "string",
"title": "Application name",
"description": "The Google Calendar application name."
},
"syncFlow": {
"type": "boolean",
"title": "Sync Flow",
"description": "Specifies to sync events for incremental synchronization.",
"default": false
},
"consumeFromNow": {
"type": "boolean",
"title": "Consume from now",
"description": "Specfies to consume events in the calendar from now on.",
"default": true
}
}
}
}