| # --------------------------------------------------------------------------- |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # --------------------------------------------------------------------------- |
| apiVersion: camel.apache.org/v1alpha1 |
| kind: Kamelet |
| metadata: |
| name: dropbox-source |
| annotations: |
| camel.apache.org/kamelet.support.level: "Stable" |
| camel.apache.org/catalog.version: "main-SNAPSHOT" |
| camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjQzcHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQzIDQwIiB2ZXJzaW9uPSIxLjEiIGhlaWdodD0iNDBweCI+CiA8cGF0aCBkPSJtMTIuNSAwbC0xMi41IDguMSA4LjcgNyAxMi41LTcuOC04LjctNy4zem0tMTIuNSAyMS45bDEyLjUgOC4yIDguNy03LjMtMTIuNS03LjctOC43IDYuOHptMjEuMiAwLjlsOC44IDcuMyAxMi40LTguMS04LjYtNi45LTEyLjYgNy43em0yMS4yLTE0LjdsLTEyLjQtOC4xLTguOCA3LjMgMTIuNiA3LjggOC42LTd6bS0yMS4xIDE2LjNsLTguOCA3LjMtMy43LTIuNXYyLjhsMTIuNSA3LjUgMTIuNS03LjV2LTIuOGwtMy44IDIuNS04LjctNy4zeiIgZmlsbD0iIzAwN0VFNSIvPgo8L3N2Zz4K" |
| camel.apache.org/provider: "Apache Software Foundation" |
| camel.apache.org/kamelet.group: "Dropbox" |
| labels: |
| camel.apache.org/kamelet.type: "source" |
| spec: |
| definition: |
| title: "Dropbox Source" |
| description: |- |
| Consume Files from Dropbox. |
| required: |
| - period |
| - accessToken |
| - clientIdentifier |
| - remotePath |
| - query |
| type: object |
| properties: |
| period: |
| title: Period between Polls |
| description: The interval between fetches to the Dropbox remote path in milliseconds |
| type: integer |
| default: 10000 |
| accessToken: |
| title: Dropbox Access Token |
| description: The access Token to use to access Dropbox |
| type: string |
| format: password |
| x-descriptors: |
| - urn:alm:descriptor:com.tectonic.ui:password |
| - urn:camel:group:credentials |
| clientIdentifier: |
| title: Client Identifier |
| description: Dropbox App client Identifier |
| type: string |
| x-descriptors: |
| - urn:camel:group:credentials |
| remotePath: |
| title: Remote Path |
| description: Original file or folder to work with |
| type: string |
| query: |
| title: Queries |
| description: A space-separated list of sub-strings to search for. A file matches only if it contains all the sub-strings. If this option is not set, all files will be matched. |
| type: string |
| dependencies: |
| - "camel:dropbox" |
| - "camel:kamelet" |
| - "camel:core" |
| - "camel:jsonpath" |
| - "camel:timer" |
| template: |
| from: |
| uri: "timer:dropbox-stream" |
| parameters: |
| period: "{{period}}" |
| steps: |
| - to: |
| uri: "dropbox:search" |
| parameters: |
| accessToken: "{{accessToken}}" |
| remotePath: "{{remotePath}}" |
| clientIdentifier: "{{clientIdentifier}}" |
| query: "{{query}}" |
| - split: |
| jsonpath: "$.*" |
| steps: |
| - set-property: |
| name: dropboxFileName |
| simple: ${body.metadata.pathDisplay} |
| - toD: "dropbox:get?accessToken={{accessToken}}&clientIdentifier={{clientIdentifier}}&remotePath=${exchangeProperty.dropboxFileName}" |
| - to: "kamelet:sink" |
| - toD: "dropbox:del?accessToken={{accessToken}}&clientIdentifier={{clientIdentifier}}&remotePath=${exchangeProperty.dropboxFileName}" |
| |