[[workday-component]]
= Workday Component
//THIS FILE IS COPIED: EDIT THE SOURCE FILE:
:page-source: components/camel-workday/src/main/docs/workday-component.adoc
:docTitle: Workday
:artifactId: camel-workday
:description: Detect and parse documents using Workday.
:since: 3.1
:supportLevel: Stable
:component-header: Only producer is supported

*Since Camel {since}*

*{component-header}*

The *Workday*: components provides the ability to detect and parse documents with 
Workday. 

In order to use the Workday component, 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-workday</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
----

== Options

// component options: START
The Workday component supports 2 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *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
| *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 Workday endpoint is configured using URI syntax:

----
workday:entity:path
----

with the following path and query parameters:

=== Path Parameters (2 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *entity* | *Required* The entity to be requested or subscribed via API. The value can be one of: report, commonAPI |  | Entity
| *path* | *Required* The API path to access an entity structure. |  | String
|===


=== Query Parameters (10 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *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
| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *httpConnectionManager* (advanced) | Pool connection manager for advanced configuration. |  | PoolingHttpClientConnectionManager
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
| *reportFormat* (format) | Workday Report as a service output format. The value can be one of: json | json | String
| *host* (host) | *Required* Workday Host name. |  | String
| *clientId* (security) | *Required* Workday client Id generated by API client for integrations. |  | String
| *clientSecret* (security) | *Required* Workday client Secret generated by API client for integrations. |  | String
| *tokenRefresh* (security) | *Required* Workday token Refresh generated for integrations system user. |  | String
| *tenant* (tenant) | *Required* Workday Tenant name. |  | String
|===
// endpoint options: END

include::camel-spring-boot::page$workday-starter.adoc[]
