[[aws-kinesis-firehose-component]]
= AWS Kinesis Firehose Component
:page-source: components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc

*Available as of Camel version 2.19*

The Kinesis Firehose component supports sending messages to Amazon Kinesis Firehose service.

Prerequisites

You must have a valid Amazon Web Services developer account, and be
signed up to use Amazon Kinesis Firehose. More information are available
at https://aws.amazon.com/kinesis/firehose/[AWS Kinesis Firehose]

== URI Format

[source,java]
-----------------------------------
aws-kinesis-firehose://delivery-stream-name[?options]
-----------------------------------

The stream needs to be created prior to it being used. +
 You can append query options to the URI in the following format,
?options=value&option2=value&...

== URI Options


// component options: START
The AWS Kinesis Firehose component supports 5 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *configuration* (advanced) | The AWS Kinesis Firehose default configuration |  | KinesisFirehoseConfiguration
| *accessKey* (producer) | Amazon AWS Access Key |  | String
| *secretKey* (producer) | Amazon AWS Secret Key |  | String
| *region* (producer) | Amazon AWS Region |  | String
| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
|===
// component options: END







// endpoint options: START
The AWS Kinesis Firehose endpoint is configured using URI syntax:

----
aws-kinesis-firehose:streamName
----

with the following path and query parameters:

=== Path Parameters (1 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *streamName* | *Required* Name of the stream |  | String
|===


=== Query Parameters (9 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *amazonKinesisFirehoseClient* (producer) | Amazon Kinesis Firehose client to use for all requests for this endpoint |  | AmazonKinesisFirehose
| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. | false | boolean
| *proxyHost* (producer) | To define a proxy host when instantiating the DDBStreams client |  | String
| *proxyPort* (producer) | To define a proxy port when instantiating the DDBStreams client |  | Integer
| *region* (producer) | The region in which Kinesis client needs to work. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1)You'll need to use the name Regions.EU_WEST_1.name() |  | String
| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
| *accessKey* (security) | Amazon AWS Access Key |  | String
| *secretKey* (security) | Amazon AWS Secret Key |  | String
|===
// endpoint options: END
// spring-boot-auto-configure options: START
== Spring Boot Auto-Configuration

When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration:

[source,xml]
----
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-aws-kinesis-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>
----


The component supports 12 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *camel.component.aws-kinesis-firehose.access-key* | Amazon AWS Access Key |  | String
| *camel.component.aws-kinesis-firehose.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
| *camel.component.aws-kinesis-firehose.configuration.access-key* | Amazon AWS Access Key |  | String
| *camel.component.aws-kinesis-firehose.configuration.amazon-kinesis-firehose-client* | Amazon Kinesis Firehose client to use for all requests for this endpoint |  | AmazonKinesisFirehose
| *camel.component.aws-kinesis-firehose.configuration.proxy-host* | To define a proxy host when instantiating the DDBStreams client |  | String
| *camel.component.aws-kinesis-firehose.configuration.proxy-port* | To define a proxy port when instantiating the DDBStreams client |  | Integer
| *camel.component.aws-kinesis-firehose.configuration.region* | The region in which Kinesis client needs to work. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1)You'll need to use the name Regions.EU_WEST_1.name() |  | String
| *camel.component.aws-kinesis-firehose.configuration.secret-key* | Amazon AWS Secret Key |  | String
| *camel.component.aws-kinesis-firehose.configuration.stream-name* | Name of the stream |  | String
| *camel.component.aws-kinesis-firehose.enabled* | Whether to enable auto configuration of the aws-kinesis-firehose component. This is enabled by default. |  | Boolean
| *camel.component.aws-kinesis-firehose.region* | Amazon AWS Region |  | String
| *camel.component.aws-kinesis-firehose.secret-key* | Amazon AWS Secret Key |  | String
|===
// spring-boot-auto-configure options: END







Required Kinesis Firehose component options

You have to provide the amazonKinesisClient in the
Registry with proxies and relevant credentials
configured.


== Usage

=== Amazon Kinesis Firehose configuration

You will need to create an instance of AmazonKinesisClient and
bind it to the registry

[source,java]
--------------------------------------------------------------------------------------------------------------------
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

Region region = Region.getRegion(Regions.fromName(region));
region.createClient(AmazonKinesisClient.class, null, clientConfiguration);
// the 'null' here is the AWSCredentialsProvider which defaults to an instance of DefaultAWSCredentialsProviderChain

registry.bind("kinesisFirehoseClient", client);
--------------------------------------------------------------------------------------------------------------------

You then have to reference the AmazonKinesisFirehoseClient in the `amazonKinesisFirehoseClient` URI option.

[source,java]
--------------------------------------------------------------------------------------------------------------------
from("aws-kinesis-firehose://mykinesisdeliverystream?amazonKinesisFirehoseClient=#kinesisClient")
  .to("log:out?showAll=true");
--------------------------------------------------------------------------------------------------------------------

=== Providing AWS Credentials

It is recommended that the credentials are obtained by using the
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html[DefaultAWSCredentialsProviderChain]
that is the default when creating a new ClientConfiguration instance,
however, a
different http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html[AWSCredentialsProvider]
can be specified when calling createClient(...).

=== Message headers set by the Kinesis producer on successful storage of a Record

[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Header |Type |Description

|`CamelAwsKinesisFirehoseRecordId` |`String` |The record ID, as defined in
http://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecord.html#API_PutRecord_ResponseSyntax[Response Syntax]


|=======================================================================

== Automatic detection of AmazonKinesisFirehose client in registry

The component is capable of detecting the presence of an AmazonKinesisFirehose bean into the registry.
If it's the only instance of that type it will be used as client and you won't have to define it as uri parameter.
This may be really useful for smarter configuration of the endpoint.

== Dependencies

Maven users will need to add the following dependency to their pom.xml.

*pom.xml*

[source,xml]
---------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws-kinesis</artifactId>
    <version>${camel-version}</version>
</dependency>
---------------------------------------

where `$\{camel-version\}` must be replaced by the actual version of Camel.

