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

*Provided by: "Apache Software Foundation"*

*Support Level for this Kamelet is: "Preview"*

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
----

==== *Dependencies*

The Kamelet needs the following dependencies:


- camel:jackson
- camel:twitter
- camel:kamelet 

==== *Binding to Knative using the Kamel CLI:*

The procedure described above can be simplified into a single execution of the `kamel bind` command:

[source,shell]
----
kamel bind twitter-timeline-source -p "source.accessToken=The Access Token" -p "source.accessTokenSecret=The Access Token Secret" -p "source.apiKey=The API Key" -p "source.apiKeySecret=The API Key Secret" -p "source.user=ApacheCamel" channel/mychannel
----

This will create the KameletBinding under the hood and apply it to the current namespace in the cluster.

=== Kafka Source

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

.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: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  
----

Ensure that you've installed https://strimzi.io/[Strimzi] and created a topic named `my-topic` in the current namespace.
Make also 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
----

==== *Binding to Kafka using the Kamel CLI:*

The procedure described above can be simplified into a single execution of the `kamel bind` command:

[source,shell]
----
kamel bind twitter-timeline-source -p "source.accessToken=The Access Token" -p "source.accessTokenSecret=The Access Token Secret" -p "source.apiKey=The API Key" -p "source.apiKeySecret=The API Key Secret" -p "source.user=ApacheCamel" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic
----

This will create the KameletBinding under the hood and apply it to the current namespace in the cluster.

// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
