// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
= image:kamelets/twitter-timeline-source.svg[] Twitter Timeline Source

*Provided by: "Apache Software Foundation"*

Allows to get tweets from the timeline of a specific user from Twitter.

It requires tokens that can be obtained by creating an application 
in the Twitter developer portal: https://developer.twitter.com/.

== Configuration Options

The following table summarizes the configuration options available for the `twitter-timeline-source` Kamelet:
[width="100%",cols="2,^2,3,^2,^2,^3",options="header"]
|===
| Property| Name| Description| Type| Default| Example
| *accessToken {empty}* *| Access Token| The Access Token from the Twitter application in the developer portal| string| | 
| *accessTokenSecret {empty}* *| Access Token Secret| The Access Token Secret from the Twitter application in the developer portal| string| | 
| *apiKey {empty}* *| API Key| The API Key from the Twitter application in the developer portal| string| | 
| *apiKeySecret {empty}* *| API Key Secret| The API Key Secret from the Twitter application in the developer portal| string| | 
| *user {empty}* *| User| The user we want to read the timeline| string| | `"ApacheCamel"`
|===

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

== Usage

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

=== Knative Source

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

.twitter-timeline-source-binding.yaml
[source,yaml]
----
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: twitter-timeline-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: twitter-timeline-source
    properties:
      accessToken: "The Access Token"
      accessTokenSecret: "The Access Token Secret"
      apiKey: "The API Key"
      apiKeySecret: "The API Key Secret"
      user: "ApacheCamel"
  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 `twitter-timeline-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 twitter-timeline-source-binding.yaml
----
// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
