= Google Sheets Stream Component
:doctitle: Google Sheets Stream
:shortname: google-sheets-stream
:artifactid: camel-google-sheets
:description: Poll for changes in Google Sheets.
:since: 2.23
:supportlevel: Stable
:tabs-sync-option:
:component-header: Only consumer is supported
//Manually maintained attributes
:group: Google
:camel-spring-boot-name: google-sheets

*Since Camel {since}*

*{component-header}*

The Google Sheets component provides access
to https://sheets.google.com/[Sheets] via
the https://developers.google.com/sheets/api/reference/rest/[Google Sheets
Web APIs].

Google Sheets uses
the https://developers.google.com/accounts/docs/OAuth2[OAuth 2.0
protocol] for authenticating a Google account and authorizing access to
user data. Before you can use this component, you will need
to https://developers.google.com/google-apps/sheets/auth[create an
account and generate OAuth credentials]. Credentials consist of a
`clientId`, `clientSecret`, and a `refreshToken`. A handy resource for
generating a long-lived `refreshToken` is
the https://developers.google.com/oauthplayground[OAuth playground].

In the case of a https://developers.google.com/identity/protocols/oauth2#serviceaccount[service account],
credentials consist of a JSON-file (serviceAccountKey). You can also use
https://developers.google.com/identity/protocols/oauth2/service-account#delegatingauthority[delegation domain-wide authority]
(delegate) and one, several, or all possible
https://developers.google.com/sheets/api/guides/authorizing[Sheets API Auth Scopes].

Maven users will need to add the following dependency to their pom.xml
for this component:

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

== URI Format

The Google Sheets Component uses the following URI format:

----
google-sheets-stream://apiName?[options]
----


// component-configure options: START

// component-configure options: END

// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END

// endpoint options: START

// endpoint options: END
// component headers: START
include::partial$component-endpoint-headers.adoc[]
// component headers: END

== ValueInputOption

Many of the APIs with Google sheets require including the following header,
with one of the enum values:

|====
| *Header* | *Enum* | *Description*
| `CamelGoogleSheets.ValueInputOption` | `RAW` | The values the user has entered will not be parsed and will be stored as-is.
| `CamelGoogleSheets.ValueInputOption` | `USER_ENTERED` | The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI.
|====


== More information

For more information on the endpoints and options see API documentation
at: https://developers.google.com/sheets/api/reference/rest/[https://developers.google.com/sheets/api/reference/rest/]



include::spring-boot:partial$starter.adoc[]
