// spring-boot-auto-configure options: START
:page-partial:
:doctitle: Camel Spring Boot Starter for protobuf

== Spring Boot Auto-Configuration

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

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


The component supports 4 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *camel.dataformat.protobuf.content-type-format* | Defines a content type format in which protobuf message will be serialized/deserialized from(to) the Java been. The format can either be native or json for either native protobuf or json fields representation. The default value is native. | native | String
| *camel.dataformat.protobuf.content-type-header* | Whether the data format should set the Content-Type header with the type from the data format. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON | true | Boolean
| *camel.dataformat.protobuf.enabled* | Whether to enable auto configuration of the protobuf data format. This is enabled by default. |  | Boolean
| *camel.dataformat.protobuf.instance-class* | Name of class to use when unmarshalling |  | String
|===
// spring-boot-auto-configure options: END
