// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
= image:kamelets/dropbox-source.svg[] Dropbox Source

*Provided by: "Apache Software Foundation"*

Consume Files from Dropbox.

== Configuration Options

The following table summarizes the configuration options available for the `dropbox-source` Kamelet:
[width="100%",cols="2,^2,3,^2,^2,^3",options="header"]
|===
| Property| Name| Description| Type| Default| Example
| *accessToken {empty}* *| Dropbox Access Token| The access Token to use to access Dropbox| string| | 
| *clientIdentifier {empty}* *| The client identifier| Dropbox App client Identifier| string| | 
| *period {empty}* *| Period between polls| The interval between fetches to the Dropbox remote path in milliseconds| integer| `10000`| 
| *query {empty}* *| Querys| 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.| string| | 
| *remotePath {empty}* *| Remote path| Original file or folder to work with| string| | 
|===

NOTE: Fields marked with ({empty}*) are mandatory.

== Usage

This section summarizes how the `dropbox-source` can be used in various contexts.

=== Knative Source

The `dropbox-source` Kamelet can be used as Knative source by binding it to a Knative object.

.dropbox-source-binding.yaml
[source,yaml]
----
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: dropbox-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: dropbox-source
    properties:
      accessToken: "The Dropbox Access Token"
      clientIdentifier: "The The client identifier"
      query: "The Querys"
      remotePath: "The Remote path"
  sink:
    ref:
      kind: InMemoryChannel
      apiVersion: messaging.knative.dev/v1
      name: mychannel

----

Make sure you have xref:latest@camel-k::installation/installation.adoc[Camel K installed] into the Kubernetes cluster you're connected to.

Save the `dropbox-source-binding.yaml` file into your hard drive, then configure it according to your needs.

You can run the source using the following command:

[source,shell]
----
kubectl apply -f dropbox-source-binding.yaml
----
// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
