This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch calendar
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit e32a483ad8251a1f275ee8c9a711816adf6d1ab6
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Tue Mar 9 16:51:00 2021 +0100

    Added Google Calendar Stream source Kamelet
---
 google-calendar-stream-source.kamelet.yaml | 94 ++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)

diff --git a/google-calendar-stream-source.kamelet.yaml 
b/google-calendar-stream-source.kamelet.yaml
new file mode 100644
index 0000000..17a25fc
--- /dev/null
+++ b/google-calendar-stream-source.kamelet.yaml
@@ -0,0 +1,94 @@
+apiVersion: camel.apache.org/v1alpha1
+kind: Kamelet
+metadata:
+  name: google-calendar-stream-source
+  annotations:
+    camel.apache.org/kamelet.icon: 
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE4NiAzOCA3NiA3NiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI0NCA1NmgtNDB2NDBoNDBWNTZ6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTI0NCAxMTRsMTgtMThoLTE4djE4eiIvPjxwYXRoIGZpbGw9IiNGQkJDMDQiIGQ9Ik0yNjIgNTZoLTE4djQwaDE4VjU2eiIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Ik0yNDQgOTZoLTQwdjE4aDQwVjk2eiIvPjxwYXRoIGZpbGw9IiMxODgwMzgiIGQ9Ik0xODYgOTZ2MTJjMCAzLjMxNSAyLjY4NSA2IDYgNmgxMlY5NmgtMTh6Ii8+PH
 [...]
+    camel.apache.org/provider: "Apache Software Foundation"
+  labels:
+    camel.apache.org/kamelet.type: "source"
+spec:
+  definition:
+    title: "Google Calendar Stream Source"
+    description: |-
+      Receive data from Google Calendar.
+    required:
+      - index
+      - calendarId
+      - clientId
+      - accessToken
+      - refreshToken
+      - clientSecret
+      - applicationName
+    properties:
+      index:
+        title: Index
+        description: An index for the google calendar endpoint
+        type: string
+      calendarId:
+        title: Calendar ID
+        description: The calendar ID to be used as events source
+        type: string
+      clientId:
+        title: Client Id
+        description: Client ID of the calendar application
+        type: string
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:password
+      clientSecret:
+        title: Client Secret
+        description: Client Secret of the calendar application
+        type: string
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:password
+      accessToken:
+        title: Access Token
+        description: OAuth 2 access token for google calendar application. 
This typically expires after an hour so refreshToken is recommended for long 
term usage.
+        type: string
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:password
+      refreshToken:
+        title: Refresh Token
+        description: OAuth 2 refresh token for google calendar application. 
Using this, the Google Calendar component can obtain a new accessToken whenever 
the current one expires - a necessity if the application is long-lived.
+        type: string
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:password
+      applicationName:
+        title: Application name
+        description: Google Calendar application name
+        type: string
+      syncFlow:
+        title: Sync Flow
+        description: Sync events for incremental synchronization
+        type: boolean
+        x-descriptors:
+        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
+        default: false
+      consumeFromNow:
+        title: Consume from now
+        description: Consume events in the selected calendar from now on
+        type: boolean
+        x-descriptors:
+        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
+        default: true
+  types:
+    out:
+      mediaType: application/json
+  dependencies:
+  - "camel:jackson"
+  flow:
+    from:
+      uri: "google-calendar-stream://{{index}}"
+      parameters:
+        clientId: "{{clientId}}"
+        calendarId: "{{calendarId}}"
+        accessToken: "{{accessToken}}"
+        refreshToken: "{{refreshToken}}"
+        clientSecret: "{{clientSecret}}"
+        applicationName: "{{applicationName}}"
+        syncFlow: "{{syncFlow}}"
+        consumeFromNow: "{{consumeFromNow}}"
+      steps:
+      - marshal:
+          json: {}
+      - to: "kamelet:sink"

Reply via email to