This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch CAMEL-15224
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b24a1203d558f40da5bfefce832e295565e1229d
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Jun 22 12:26:24 2020 +0200

    CAMEL-15224: camel-api-component - Avoid reflection when configured nested 
configuration classes.
---
 components/camel-google-calendar/pom.xml           |  46 +-------
 .../calendar/CalendarAclEndpointConfiguration.java |  61 ++++++++++
 ...CalendarAclEndpointConfigurationConfigurer.java | 115 +++++++++++++++++++
 .../CalendarCalendarListEndpointConfiguration.java |  50 +++++++++
 ...alendarListEndpointConfigurationConfigurer.java | 110 ++++++++++++++++++
 .../CalendarCalendarsEndpointConfiguration.java    |  39 +++++++
 ...arCalendarsEndpointConfigurationConfigurer.java | 105 +++++++++++++++++
 .../CalendarChannelsEndpointConfiguration.java     |  28 +++++
 ...darChannelsEndpointConfigurationConfigurer.java | 100 +++++++++++++++++
 .../CalendarColorsEndpointConfiguration.java       |  17 +++
 ...endarColorsEndpointConfigurationConfigurer.java |  95 ++++++++++++++++
 .../CalendarEventsEndpointConfiguration.java       |  83 ++++++++++++++
 ...endarEventsEndpointConfigurationConfigurer.java | 125 +++++++++++++++++++++
 .../CalendarFreebusyEndpointConfiguration.java     |  28 +++++
 ...darFreebusyEndpointConfigurationConfigurer.java | 100 +++++++++++++++++
 .../CalendarSettingsEndpointConfiguration.java     |  39 +++++++
 ...darSettingsEndpointConfigurationConfigurer.java | 105 +++++++++++++++++
 .../GoogleCalendarConfigurationConfigurer.java     |  95 ++++++++++++++++
 .../calendar/internal/CalendarAclApiMethod.java    |  88 +++++++++++++++
 .../internal/CalendarCalendarListApiMethod.java    |  81 +++++++++++++
 .../internal/CalendarCalendarsApiMethod.java       |  77 +++++++++++++
 .../internal/CalendarChannelsApiMethod.java        |  50 +++++++++
 .../calendar/internal/CalendarColorsApiMethod.java |  49 ++++++++
 .../calendar/internal/CalendarEventsApiMethod.java | 113 +++++++++++++++++++
 .../internal/CalendarFreebusyApiMethod.java        |  50 +++++++++
 .../internal/CalendarSettingsApiMethod.java        |  59 ++++++++++
 .../internal/GoogleCalendarApiCollection.java      | 122 ++++++++++++++++++++
 .../calendar/internal/GoogleCalendarApiName.java   |  52 +++++++++
 .../configurer/CalendarAclEndpointConfiguration    |   2 +
 .../CalendarCalendarListEndpointConfiguration      |   2 +
 .../CalendarCalendarsEndpointConfiguration         |   2 +
 .../CalendarChannelsEndpointConfiguration          |   2 +
 .../configurer/CalendarColorsEndpointConfiguration |   2 +
 .../configurer/CalendarEventsEndpointConfiguration |   2 +
 .../CalendarFreebusyEndpointConfiguration          |   2 +
 .../CalendarSettingsEndpointConfiguration          |   2 +
 .../camel/configurer/GoogleCalendarConfiguration   |   2 +
 .../calendar/GoogleCalendarConfiguration.java      |   2 +
 38 files changed, 2062 insertions(+), 40 deletions(-)

diff --git a/components/camel-google-calendar/pom.xml 
b/components/camel-google-calendar/pom.xml
index 96df71d..b40b81a 100644
--- a/components/camel-google-calendar/pom.xml
+++ b/components/camel-google-calendar/pom.xml
@@ -160,38 +160,20 @@
                     </execution>
                 </executions>
             </plugin>
-
-            <!-- add generated source and test source to build -->
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <version>1.8</version>
+                <!-- we need to generate additional configurer classes -->
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-package-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>add-generated-sources</id>
+                        <id>generate-configurer</id>
+                        <phase>process-classes</phase>
                         <goals>
-                            <goal>add-source</goal>
+                            <goal>generate-configurer</goal>
                         </goals>
-                        <configuration>
-                            <sources>
-                                
<source>${project.build.directory}/generated-sources/camel-component</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>add-generated-test-sources</id>
-                        <goals>
-                            <goal>add-test-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                
<source>${project.build.directory}/generated-test-sources/camel-component</source>
-                            </sources>
-                        </configuration>
                     </execution>
                 </executions>
             </plugin>
-
         </plugins>
 
         <pluginManagement>
@@ -212,22 +194,6 @@
 
     </build>
 
-    <reporting>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-api-component-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <configuration>
-                    <scheme>${schemeName}</scheme>
-                    <componentName>${componentName}</componentName>
-                    <componentPackage>${componentPackage}</componentPackage>
-                    <outPackage>${outPackage}</outPackage>
-                </configuration>
-            </plugin>
-        </plugins>
-    </reporting>
-
     <profiles>
         <profile>
             <id>google-calendar-test</id>
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarAclEndpointConfiguration.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarAclEndpointConfiguration.java
new file mode 100644
index 0000000..454ca06
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarAclEndpointConfiguration.java
@@ -0,0 +1,61 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.calendar.Calendar$Acl
+ */
+@UriParams
+@Configurer
+public final class CalendarAclEndpointConfiguration extends 
GoogleCalendarConfiguration {
+
+    @UriParam
+    private String calendarId;
+
+    @UriParam
+    private com.google.api.services.calendar.model.AclRule content;
+
+    @UriParam
+    private com.google.api.services.calendar.model.Channel contentChannel;
+
+    @UriParam
+    private String ruleId;
+
+    public String getCalendarId() {
+        return calendarId;
+    }
+
+    public void setCalendarId(String calendarId) {
+        this.calendarId = calendarId;
+    }
+
+    public com.google.api.services.calendar.model.AclRule getContent() {
+        return content;
+    }
+
+    public void setContent(com.google.api.services.calendar.model.AclRule 
content) {
+        this.content = content;
+    }
+
+    public com.google.api.services.calendar.model.Channel getContentChannel() {
+        return contentChannel;
+    }
+
+    public void 
setContentChannel(com.google.api.services.calendar.model.Channel 
contentChannel) {
+        this.contentChannel = contentChannel;
+    }
+
+    public String getRuleId() {
+        return ruleId;
+    }
+
+    public void setRuleId(String ruleId) {
+        this.ruleId = ruleId;
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarAclEndpointConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarAclEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..07afca8
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarAclEndpointConfigurationConfigurer.java
@@ -0,0 +1,115 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.calendar.CalendarAclEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CalendarAclEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarAclEndpointConfiguration 
target = 
(org.apache.camel.component.google.calendar.CalendarAclEndpointConfiguration) 
obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "calendarid":
+        case "CalendarId": target.setCalendarId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "content":
+        case "Content": target.setContent(property(camelContext, 
com.google.api.services.calendar.model.AclRule.class, value)); return true;
+        case "contentchannel":
+        case "ContentChannel": target.setContentChannel(property(camelContext, 
com.google.api.services.calendar.model.Channel.class, value)); return true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "ruleid":
+        case "RuleId": target.setRuleId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("CalendarId", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Content", 
com.google.api.services.calendar.model.AclRule.class);
+        answer.put("ContentChannel", 
com.google.api.services.calendar.model.Channel.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("RuleId", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarAclEndpointConfiguration 
target = 
(org.apache.camel.component.google.calendar.CalendarAclEndpointConfiguration) 
obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "calendarid":
+        case "CalendarId": return target.getCalendarId();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "content":
+        case "Content": return target.getContent();
+        case "contentchannel":
+        case "ContentChannel": return target.getContentChannel();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "ruleid":
+        case "RuleId": return target.getRuleId();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarListEndpointConfiguration.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarListEndpointConfiguration.java
new file mode 100644
index 0000000..03a6ba2
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarListEndpointConfiguration.java
@@ -0,0 +1,50 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.calendar.Calendar$CalendarList
+ */
+@UriParams
+@Configurer
+public final class CalendarCalendarListEndpointConfiguration extends 
GoogleCalendarConfiguration {
+
+    @UriParam
+    private String calendarId;
+
+    @UriParam
+    private com.google.api.services.calendar.model.CalendarListEntry content;
+
+    @UriParam
+    private com.google.api.services.calendar.model.Channel contentChannel;
+
+    public String getCalendarId() {
+        return calendarId;
+    }
+
+    public void setCalendarId(String calendarId) {
+        this.calendarId = calendarId;
+    }
+
+    public com.google.api.services.calendar.model.CalendarListEntry 
getContent() {
+        return content;
+    }
+
+    public void 
setContent(com.google.api.services.calendar.model.CalendarListEntry content) {
+        this.content = content;
+    }
+
+    public com.google.api.services.calendar.model.Channel getContentChannel() {
+        return contentChannel;
+    }
+
+    public void 
setContentChannel(com.google.api.services.calendar.model.Channel 
contentChannel) {
+        this.contentChannel = contentChannel;
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarListEndpointConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarListEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..198ae1c
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarListEndpointConfigurationConfigurer.java
@@ -0,0 +1,110 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.calendar.CalendarCalendarListEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CalendarCalendarListEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarCalendarListEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarCalendarListEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "calendarid":
+        case "CalendarId": target.setCalendarId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "content":
+        case "Content": target.setContent(property(camelContext, 
com.google.api.services.calendar.model.CalendarListEntry.class, value)); return 
true;
+        case "contentchannel":
+        case "ContentChannel": target.setContentChannel(property(camelContext, 
com.google.api.services.calendar.model.Channel.class, value)); return true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("CalendarId", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Content", 
com.google.api.services.calendar.model.CalendarListEntry.class);
+        answer.put("ContentChannel", 
com.google.api.services.calendar.model.Channel.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarCalendarListEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarCalendarListEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "calendarid":
+        case "CalendarId": return target.getCalendarId();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "content":
+        case "Content": return target.getContent();
+        case "contentchannel":
+        case "ContentChannel": return target.getContentChannel();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarsEndpointConfiguration.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarsEndpointConfiguration.java
new file mode 100644
index 0000000..10fefa7
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarsEndpointConfiguration.java
@@ -0,0 +1,39 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.calendar.Calendar$Calendars
+ */
+@UriParams
+@Configurer
+public final class CalendarCalendarsEndpointConfiguration extends 
GoogleCalendarConfiguration {
+
+    @UriParam
+    private String calendarId;
+
+    @UriParam
+    private com.google.api.services.calendar.model.Calendar content;
+
+    public String getCalendarId() {
+        return calendarId;
+    }
+
+    public void setCalendarId(String calendarId) {
+        this.calendarId = calendarId;
+    }
+
+    public com.google.api.services.calendar.model.Calendar getContent() {
+        return content;
+    }
+
+    public void setContent(com.google.api.services.calendar.model.Calendar 
content) {
+        this.content = content;
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarsEndpointConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..296f7fe
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarCalendarsEndpointConfigurationConfigurer.java
@@ -0,0 +1,105 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.calendar.CalendarCalendarsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CalendarCalendarsEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarCalendarsEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarCalendarsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "calendarid":
+        case "CalendarId": target.setCalendarId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "content":
+        case "Content": target.setContent(property(camelContext, 
com.google.api.services.calendar.model.Calendar.class, value)); return true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("CalendarId", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Content", 
com.google.api.services.calendar.model.Calendar.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarCalendarsEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarCalendarsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "calendarid":
+        case "CalendarId": return target.getCalendarId();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "content":
+        case "Content": return target.getContent();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarChannelsEndpointConfiguration.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarChannelsEndpointConfiguration.java
new file mode 100644
index 0000000..f7e3f02
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarChannelsEndpointConfiguration.java
@@ -0,0 +1,28 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.calendar.Calendar$Channels
+ */
+@UriParams
+@Configurer
+public final class CalendarChannelsEndpointConfiguration extends 
GoogleCalendarConfiguration {
+
+    @UriParam
+    private com.google.api.services.calendar.model.Channel contentChannel;
+
+    public com.google.api.services.calendar.model.Channel getContentChannel() {
+        return contentChannel;
+    }
+
+    public void 
setContentChannel(com.google.api.services.calendar.model.Channel 
contentChannel) {
+        this.contentChannel = contentChannel;
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarChannelsEndpointConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarChannelsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..8dcb860
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarChannelsEndpointConfigurationConfigurer.java
@@ -0,0 +1,100 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.calendar.CalendarChannelsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CalendarChannelsEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarChannelsEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarChannelsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "contentchannel":
+        case "ContentChannel": target.setContentChannel(property(camelContext, 
com.google.api.services.calendar.model.Channel.class, value)); return true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("ContentChannel", 
com.google.api.services.calendar.model.Channel.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarChannelsEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarChannelsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "contentchannel":
+        case "ContentChannel": return target.getContentChannel();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarColorsEndpointConfiguration.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarColorsEndpointConfiguration.java
new file mode 100644
index 0000000..5e56745
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarColorsEndpointConfiguration.java
@@ -0,0 +1,17 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.calendar.Calendar$Colors
+ */
+@UriParams
+@Configurer
+public final class CalendarColorsEndpointConfiguration extends 
GoogleCalendarConfiguration {
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarColorsEndpointConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarColorsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..ef7da09
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarColorsEndpointConfigurationConfigurer.java
@@ -0,0 +1,95 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.calendar.CalendarColorsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CalendarColorsEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarColorsEndpointConfiguration 
target = 
(org.apache.camel.component.google.calendar.CalendarColorsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarColorsEndpointConfiguration 
target = 
(org.apache.camel.component.google.calendar.CalendarColorsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarEventsEndpointConfiguration.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarEventsEndpointConfiguration.java
new file mode 100644
index 0000000..6d4a1cc
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarEventsEndpointConfiguration.java
@@ -0,0 +1,83 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.calendar.Calendar$Events
+ */
+@UriParams
+@Configurer
+public final class CalendarEventsEndpointConfiguration extends 
GoogleCalendarConfiguration {
+
+    @UriParam
+    private String calendarId;
+
+    @UriParam
+    private com.google.api.services.calendar.model.Event content;
+
+    @UriParam
+    private com.google.api.services.calendar.model.Channel contentChannel;
+
+    @UriParam
+    private String destination;
+
+    @UriParam
+    private String eventId;
+
+    @UriParam
+    private String text;
+
+    public String getCalendarId() {
+        return calendarId;
+    }
+
+    public void setCalendarId(String calendarId) {
+        this.calendarId = calendarId;
+    }
+
+    public com.google.api.services.calendar.model.Event getContent() {
+        return content;
+    }
+
+    public void setContent(com.google.api.services.calendar.model.Event 
content) {
+        this.content = content;
+    }
+
+    public com.google.api.services.calendar.model.Channel getContentChannel() {
+        return contentChannel;
+    }
+
+    public void 
setContentChannel(com.google.api.services.calendar.model.Channel 
contentChannel) {
+        this.contentChannel = contentChannel;
+    }
+
+    public String getDestination() {
+        return destination;
+    }
+
+    public void setDestination(String destination) {
+        this.destination = destination;
+    }
+
+    public String getEventId() {
+        return eventId;
+    }
+
+    public void setEventId(String eventId) {
+        this.eventId = eventId;
+    }
+
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarEventsEndpointConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarEventsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..a4e4f0d
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarEventsEndpointConfigurationConfigurer.java
@@ -0,0 +1,125 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.calendar.CalendarEventsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CalendarEventsEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarEventsEndpointConfiguration 
target = 
(org.apache.camel.component.google.calendar.CalendarEventsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "calendarid":
+        case "CalendarId": target.setCalendarId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "content":
+        case "Content": target.setContent(property(camelContext, 
com.google.api.services.calendar.model.Event.class, value)); return true;
+        case "contentchannel":
+        case "ContentChannel": target.setContentChannel(property(camelContext, 
com.google.api.services.calendar.model.Channel.class, value)); return true;
+        case "destination":
+        case "Destination": target.setDestination(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "eventid":
+        case "EventId": target.setEventId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "text":
+        case "Text": target.setText(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("CalendarId", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Content", 
com.google.api.services.calendar.model.Event.class);
+        answer.put("ContentChannel", 
com.google.api.services.calendar.model.Channel.class);
+        answer.put("Destination", java.lang.String.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("EventId", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("Text", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarEventsEndpointConfiguration 
target = 
(org.apache.camel.component.google.calendar.CalendarEventsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "calendarid":
+        case "CalendarId": return target.getCalendarId();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "content":
+        case "Content": return target.getContent();
+        case "contentchannel":
+        case "ContentChannel": return target.getContentChannel();
+        case "destination":
+        case "Destination": return target.getDestination();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "eventid":
+        case "EventId": return target.getEventId();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "text":
+        case "Text": return target.getText();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarFreebusyEndpointConfiguration.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarFreebusyEndpointConfiguration.java
new file mode 100644
index 0000000..12e5f92
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarFreebusyEndpointConfiguration.java
@@ -0,0 +1,28 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.calendar.Calendar$Freebusy
+ */
+@UriParams
+@Configurer
+public final class CalendarFreebusyEndpointConfiguration extends 
GoogleCalendarConfiguration {
+
+    @UriParam
+    private com.google.api.services.calendar.model.FreeBusyRequest content;
+
+    public com.google.api.services.calendar.model.FreeBusyRequest getContent() 
{
+        return content;
+    }
+
+    public void 
setContent(com.google.api.services.calendar.model.FreeBusyRequest content) {
+        this.content = content;
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarFreebusyEndpointConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarFreebusyEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..038f624
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarFreebusyEndpointConfigurationConfigurer.java
@@ -0,0 +1,100 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.calendar.CalendarFreebusyEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CalendarFreebusyEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarFreebusyEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarFreebusyEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "content":
+        case "Content": target.setContent(property(camelContext, 
com.google.api.services.calendar.model.FreeBusyRequest.class, value)); return 
true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Content", 
com.google.api.services.calendar.model.FreeBusyRequest.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarFreebusyEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarFreebusyEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "content":
+        case "Content": return target.getContent();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarSettingsEndpointConfiguration.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarSettingsEndpointConfiguration.java
new file mode 100644
index 0000000..8dcc600
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarSettingsEndpointConfiguration.java
@@ -0,0 +1,39 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.calendar.Calendar$Settings
+ */
+@UriParams
+@Configurer
+public final class CalendarSettingsEndpointConfiguration extends 
GoogleCalendarConfiguration {
+
+    @UriParam
+    private com.google.api.services.calendar.model.Channel contentChannel;
+
+    @UriParam
+    private String setting;
+
+    public com.google.api.services.calendar.model.Channel getContentChannel() {
+        return contentChannel;
+    }
+
+    public void 
setContentChannel(com.google.api.services.calendar.model.Channel 
contentChannel) {
+        this.contentChannel = contentChannel;
+    }
+
+    public String getSetting() {
+        return setting;
+    }
+
+    public void setSetting(String setting) {
+        this.setting = setting;
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarSettingsEndpointConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarSettingsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..c0bae3e
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/CalendarSettingsEndpointConfigurationConfigurer.java
@@ -0,0 +1,105 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.calendar.CalendarSettingsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CalendarSettingsEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarSettingsEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarSettingsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "contentchannel":
+        case "ContentChannel": target.setContentChannel(property(camelContext, 
com.google.api.services.calendar.model.Channel.class, value)); return true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "setting":
+        case "Setting": target.setSetting(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("ContentChannel", 
com.google.api.services.calendar.model.Channel.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("Setting", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.calendar.CalendarSettingsEndpointConfiguration
 target = 
(org.apache.camel.component.google.calendar.CalendarSettingsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "contentchannel":
+        case "ContentChannel": return target.getContentChannel();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "setting":
+        case "Setting": return target.getSetting();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarConfigurationConfigurer.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarConfigurationConfigurer.java
new file mode 100644
index 0000000..d741615
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarConfigurationConfigurer.java
@@ -0,0 +1,95 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.calendar;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.component.google.calendar.GoogleCalendarConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GoogleCalendarConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        org.apache.camel.component.google.calendar.GoogleCalendarConfiguration 
target = 
(org.apache.camel.component.google.calendar.GoogleCalendarConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class,
 value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "emailaddress":
+        case "EmailAddress": target.setEmailAddress(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "P12FileName": target.setP12FileName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "scopes":
+        case "Scopes": target.setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "user":
+        case "User": target.setUser(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("EmailAddress", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("P12FileName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("Scopes", java.lang.String.class);
+        answer.put("User", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.component.google.calendar.GoogleCalendarConfiguration 
target = 
(org.apache.camel.component.google.calendar.GoogleCalendarConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "emailaddress":
+        case "EmailAddress": return target.getEmailAddress();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "p12filename":
+        case "P12FileName": return target.getP12FileName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "scopes":
+        case "Scopes": return target.getScopes();
+        case "user":
+        case "User": return target.getUser();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarAclApiMethod.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarAclApiMethod.java
new file mode 100644
index 0000000..527e661
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarAclApiMethod.java
@@ -0,0 +1,88 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.calendar.Calendar.Acl;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.calendar.Calendar$Acl
+ */
+public enum CalendarAclApiMethod implements ApiMethod {
+
+    DELETE(
+        com.google.api.services.calendar.Calendar.Acl.Delete.class,
+        "delete",
+        arg("calendarId", String.class),
+        arg("ruleId", String.class)),
+
+    GET(
+        com.google.api.services.calendar.Calendar.Acl.Get.class,
+        "get",
+        arg("calendarId", String.class),
+        arg("ruleId", String.class)),
+
+    INSERT(
+        com.google.api.services.calendar.Calendar.Acl.Insert.class,
+        "insert",
+        arg("calendarId", String.class),
+        arg("content", com.google.api.services.calendar.model.AclRule.class)),
+
+    LIST(
+        com.google.api.services.calendar.Calendar.Acl.List.class,
+        "list",
+        arg("calendarId", String.class)),
+
+    PATCH(
+        com.google.api.services.calendar.Calendar.Acl.Patch.class,
+        "patch",
+        arg("calendarId", String.class),
+        arg("ruleId", String.class),
+        arg("content", com.google.api.services.calendar.model.AclRule.class)),
+
+    UPDATE(
+        com.google.api.services.calendar.Calendar.Acl.Update.class,
+        "update",
+        arg("calendarId", String.class),
+        arg("ruleId", String.class),
+        arg("content", com.google.api.services.calendar.model.AclRule.class)),
+
+    WATCH(
+        com.google.api.services.calendar.Calendar.Acl.Watch.class,
+        "watch",
+        arg("calendarId", String.class),
+        arg("contentChannel", 
com.google.api.services.calendar.model.Channel.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private CalendarAclApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Acl.class, resultType, name, args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarCalendarListApiMethod.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarCalendarListApiMethod.java
new file mode 100644
index 0000000..9f28196
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarCalendarListApiMethod.java
@@ -0,0 +1,81 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.calendar.Calendar.CalendarList;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.calendar.Calendar$CalendarList
+ */
+public enum CalendarCalendarListApiMethod implements ApiMethod {
+
+    DELETE(
+        com.google.api.services.calendar.Calendar.CalendarList.Delete.class,
+        "delete",
+        arg("calendarId", String.class)),
+
+    GET(
+        com.google.api.services.calendar.Calendar.CalendarList.Get.class,
+        "get",
+        arg("calendarId", String.class)),
+
+    INSERT(
+        com.google.api.services.calendar.Calendar.CalendarList.Insert.class,
+        "insert",
+        arg("content", 
com.google.api.services.calendar.model.CalendarListEntry.class)),
+
+    LIST(
+        com.google.api.services.calendar.Calendar.CalendarList.List.class,
+        "list"),
+
+    PATCH(
+        com.google.api.services.calendar.Calendar.CalendarList.Patch.class,
+        "patch",
+        arg("calendarId", String.class),
+        arg("content", 
com.google.api.services.calendar.model.CalendarListEntry.class)),
+
+    UPDATE(
+        com.google.api.services.calendar.Calendar.CalendarList.Update.class,
+        "update",
+        arg("calendarId", String.class),
+        arg("content", 
com.google.api.services.calendar.model.CalendarListEntry.class)),
+
+    WATCH(
+        com.google.api.services.calendar.Calendar.CalendarList.Watch.class,
+        "watch",
+        arg("contentChannel", 
com.google.api.services.calendar.model.Channel.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private CalendarCalendarListApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(CalendarList.class, resultType, 
name, args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarCalendarsApiMethod.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarCalendarsApiMethod.java
new file mode 100644
index 0000000..9722449
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarCalendarsApiMethod.java
@@ -0,0 +1,77 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.calendar.Calendar.Calendars;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.calendar.Calendar$Calendars
+ */
+public enum CalendarCalendarsApiMethod implements ApiMethod {
+
+    CLEAR(
+        com.google.api.services.calendar.Calendar.Calendars.Clear.class,
+        "clear",
+        arg("calendarId", String.class)),
+
+    DELETE(
+        com.google.api.services.calendar.Calendar.Calendars.Delete.class,
+        "delete",
+        arg("calendarId", String.class)),
+
+    GET(
+        com.google.api.services.calendar.Calendar.Calendars.Get.class,
+        "get",
+        arg("calendarId", String.class)),
+
+    INSERT(
+        com.google.api.services.calendar.Calendar.Calendars.Insert.class,
+        "insert",
+        arg("content", com.google.api.services.calendar.model.Calendar.class)),
+
+    PATCH(
+        com.google.api.services.calendar.Calendar.Calendars.Patch.class,
+        "patch",
+        arg("calendarId", String.class),
+        arg("content", com.google.api.services.calendar.model.Calendar.class)),
+
+    UPDATE(
+        com.google.api.services.calendar.Calendar.Calendars.Update.class,
+        "update",
+        arg("calendarId", String.class),
+        arg("content", com.google.api.services.calendar.model.Calendar.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private CalendarCalendarsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Calendars.class, resultType, name, 
args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarChannelsApiMethod.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarChannelsApiMethod.java
new file mode 100644
index 0000000..fbba925
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarChannelsApiMethod.java
@@ -0,0 +1,50 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.calendar.Calendar.Channels;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.calendar.Calendar$Channels
+ */
+public enum CalendarChannelsApiMethod implements ApiMethod {
+
+    STOP(
+        com.google.api.services.calendar.Calendar.Channels.Stop.class,
+        "stop",
+        arg("contentChannel", 
com.google.api.services.calendar.model.Channel.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private CalendarChannelsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Channels.class, resultType, name, 
args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarColorsApiMethod.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarColorsApiMethod.java
new file mode 100644
index 0000000..918fe7b
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarColorsApiMethod.java
@@ -0,0 +1,49 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.calendar.Calendar.Colors;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.calendar.Calendar$Colors
+ */
+public enum CalendarColorsApiMethod implements ApiMethod {
+
+    GET(
+        com.google.api.services.calendar.Calendar.Colors.Get.class,
+        "get");
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private CalendarColorsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Colors.class, resultType, name, 
args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarEventsApiMethod.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarEventsApiMethod.java
new file mode 100644
index 0000000..30bf508
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarEventsApiMethod.java
@@ -0,0 +1,113 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.calendar.Calendar.Events;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.calendar.Calendar$Events
+ */
+public enum CalendarEventsApiMethod implements ApiMethod {
+
+    CALENDARIMPORT(
+        com.google.api.services.calendar.Calendar.Events.CalendarImport.class,
+        "calendarImport",
+        arg("calendarId", String.class),
+        arg("content", com.google.api.services.calendar.model.Event.class)),
+
+    DELETE(
+        com.google.api.services.calendar.Calendar.Events.Delete.class,
+        "delete",
+        arg("calendarId", String.class),
+        arg("eventId", String.class)),
+
+    GET(
+        com.google.api.services.calendar.Calendar.Events.Get.class,
+        "get",
+        arg("calendarId", String.class),
+        arg("eventId", String.class)),
+
+    INSERT(
+        com.google.api.services.calendar.Calendar.Events.Insert.class,
+        "insert",
+        arg("calendarId", String.class),
+        arg("content", com.google.api.services.calendar.model.Event.class)),
+
+    INSTANCES(
+        com.google.api.services.calendar.Calendar.Events.Instances.class,
+        "instances",
+        arg("calendarId", String.class),
+        arg("eventId", String.class)),
+
+    LIST(
+        com.google.api.services.calendar.Calendar.Events.List.class,
+        "list",
+        arg("calendarId", String.class)),
+
+    MOVE(
+        com.google.api.services.calendar.Calendar.Events.Move.class,
+        "move",
+        arg("calendarId", String.class),
+        arg("eventId", String.class),
+        arg("destination", String.class)),
+
+    PATCH(
+        com.google.api.services.calendar.Calendar.Events.Patch.class,
+        "patch",
+        arg("calendarId", String.class),
+        arg("eventId", String.class),
+        arg("content", com.google.api.services.calendar.model.Event.class)),
+
+    QUICKADD(
+        com.google.api.services.calendar.Calendar.Events.QuickAdd.class,
+        "quickAdd",
+        arg("calendarId", String.class),
+        arg("text", String.class)),
+
+    UPDATE(
+        com.google.api.services.calendar.Calendar.Events.Update.class,
+        "update",
+        arg("calendarId", String.class),
+        arg("eventId", String.class),
+        arg("content", com.google.api.services.calendar.model.Event.class)),
+
+    WATCH(
+        com.google.api.services.calendar.Calendar.Events.Watch.class,
+        "watch",
+        arg("calendarId", String.class),
+        arg("contentChannel", 
com.google.api.services.calendar.model.Channel.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private CalendarEventsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Events.class, resultType, name, 
args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarFreebusyApiMethod.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarFreebusyApiMethod.java
new file mode 100644
index 0000000..c35b3dc
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarFreebusyApiMethod.java
@@ -0,0 +1,50 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.calendar.Calendar.Freebusy;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.calendar.Calendar$Freebusy
+ */
+public enum CalendarFreebusyApiMethod implements ApiMethod {
+
+    QUERY(
+        com.google.api.services.calendar.Calendar.Freebusy.Query.class,
+        "query",
+        arg("content", 
com.google.api.services.calendar.model.FreeBusyRequest.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private CalendarFreebusyApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Freebusy.class, resultType, name, 
args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarSettingsApiMethod.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarSettingsApiMethod.java
new file mode 100644
index 0000000..e0869b0
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/CalendarSettingsApiMethod.java
@@ -0,0 +1,59 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.calendar.Calendar.Settings;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.calendar.Calendar$Settings
+ */
+public enum CalendarSettingsApiMethod implements ApiMethod {
+
+    GET(
+        com.google.api.services.calendar.Calendar.Settings.Get.class,
+        "get",
+        arg("setting", String.class)),
+
+    LIST(
+        com.google.api.services.calendar.Calendar.Settings.List.class,
+        "list"),
+
+    WATCH(
+        com.google.api.services.calendar.Calendar.Settings.Watch.class,
+        "watch",
+        arg("contentChannel", 
com.google.api.services.calendar.model.Channel.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private CalendarSettingsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Settings.class, resultType, name, 
args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/GoogleCalendarApiCollection.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/GoogleCalendarApiCollection.java
new file mode 100644
index 0000000..47ea5ad
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/GoogleCalendarApiCollection.java
@@ -0,0 +1,122 @@
+
+/*
+ * Camel ApiCollection generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.apache.camel.component.google.calendar.GoogleCalendarConfiguration;
+import 
org.apache.camel.component.google.calendar.CalendarAclEndpointConfiguration;
+import 
org.apache.camel.component.google.calendar.CalendarCalendarListEndpointConfiguration;
+import 
org.apache.camel.component.google.calendar.CalendarCalendarsEndpointConfiguration;
+import 
org.apache.camel.component.google.calendar.CalendarChannelsEndpointConfiguration;
+import 
org.apache.camel.component.google.calendar.CalendarColorsEndpointConfiguration;
+import 
org.apache.camel.component.google.calendar.CalendarFreebusyEndpointConfiguration;
+import 
org.apache.camel.component.google.calendar.CalendarEventsEndpointConfiguration;
+import 
org.apache.camel.component.google.calendar.CalendarSettingsEndpointConfiguration;
+
+import org.apache.camel.support.component.ApiCollection;
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodHelper;
+
+/**
+ * Camel {@link ApiCollection} for GoogleCalendar
+ */
+public final class GoogleCalendarApiCollection extends 
ApiCollection<GoogleCalendarApiName, GoogleCalendarConfiguration> {
+
+    private static GoogleCalendarApiCollection collection;
+
+    private GoogleCalendarApiCollection() {
+        final Map<String, String> aliases = new HashMap<String, String>();
+        final Map<GoogleCalendarApiName, ApiMethodHelper<? extends ApiMethod>> 
apiHelpers = new HashMap<>();
+        final Map<Class<? extends ApiMethod>, GoogleCalendarApiName> 
apiMethods = new HashMap<>();
+
+        List<String> nullableArgs;
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleCalendarApiName.ACL, new 
ApiMethodHelper<CalendarAclApiMethod>(CalendarAclApiMethod.class, aliases, 
nullableArgs));
+        apiMethods.put(CalendarAclApiMethod.class, GoogleCalendarApiName.ACL);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleCalendarApiName.LIST, new 
ApiMethodHelper<CalendarCalendarListApiMethod>(CalendarCalendarListApiMethod.class,
 aliases, nullableArgs));
+        apiMethods.put(CalendarCalendarListApiMethod.class, 
GoogleCalendarApiName.LIST);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleCalendarApiName.CALENDARS, new 
ApiMethodHelper<CalendarCalendarsApiMethod>(CalendarCalendarsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(CalendarCalendarsApiMethod.class, 
GoogleCalendarApiName.CALENDARS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleCalendarApiName.CHANNELS, new 
ApiMethodHelper<CalendarChannelsApiMethod>(CalendarChannelsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(CalendarChannelsApiMethod.class, 
GoogleCalendarApiName.CHANNELS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleCalendarApiName.COLORS, new 
ApiMethodHelper<CalendarColorsApiMethod>(CalendarColorsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(CalendarColorsApiMethod.class, 
GoogleCalendarApiName.COLORS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleCalendarApiName.FREEBUSY, new 
ApiMethodHelper<CalendarFreebusyApiMethod>(CalendarFreebusyApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(CalendarFreebusyApiMethod.class, 
GoogleCalendarApiName.FREEBUSY);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleCalendarApiName.EVENTS, new 
ApiMethodHelper<CalendarEventsApiMethod>(CalendarEventsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(CalendarEventsApiMethod.class, 
GoogleCalendarApiName.EVENTS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleCalendarApiName.SETTINGS, new 
ApiMethodHelper<CalendarSettingsApiMethod>(CalendarSettingsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(CalendarSettingsApiMethod.class, 
GoogleCalendarApiName.SETTINGS);
+
+        setApiHelpers(apiHelpers);
+        setApiMethods(apiMethods);
+    }
+
+    public GoogleCalendarConfiguration 
getEndpointConfiguration(GoogleCalendarApiName apiName) {
+        GoogleCalendarConfiguration result = null;
+        switch (apiName) {
+            case ACL:
+                result = new CalendarAclEndpointConfiguration();
+                break;
+            case LIST:
+                result = new CalendarCalendarListEndpointConfiguration();
+                break;
+            case CALENDARS:
+                result = new CalendarCalendarsEndpointConfiguration();
+                break;
+            case CHANNELS:
+                result = new CalendarChannelsEndpointConfiguration();
+                break;
+            case COLORS:
+                result = new CalendarColorsEndpointConfiguration();
+                break;
+            case FREEBUSY:
+                result = new CalendarFreebusyEndpointConfiguration();
+                break;
+            case EVENTS:
+                result = new CalendarEventsEndpointConfiguration();
+                break;
+            case SETTINGS:
+                result = new CalendarSettingsEndpointConfiguration();
+                break;
+        }
+        return result;
+    }
+
+    public static synchronized GoogleCalendarApiCollection getCollection() {
+        if (collection == null) {
+            collection = new GoogleCalendarApiCollection();
+        }
+        return collection;
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/GoogleCalendarApiName.java
 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/GoogleCalendarApiName.java
new file mode 100644
index 0000000..684786c
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/internal/GoogleCalendarApiName.java
@@ -0,0 +1,52 @@
+
+/*
+ * Camel ApiName Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.calendar.internal;
+
+import org.apache.camel.support.component.ApiName;
+
+/**
+ * Camel {@link ApiName} Enumeration for Component GoogleCalendar
+ */
+public enum GoogleCalendarApiName implements ApiName {
+
+    ACL("acl"),
+
+    LIST("list"),
+
+    CALENDARS("calendars"),
+
+    CHANNELS("channels"),
+
+    COLORS("colors"),
+
+    FREEBUSY("freebusy"),
+
+    EVENTS("events"),
+
+    SETTINGS("settings");
+
+
+    private static final GoogleCalendarApiName[] VALUES = values();
+    
+    private final String name;
+
+    private GoogleCalendarApiName(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    public static GoogleCalendarApiName fromValue(String value) throws 
IllegalArgumentException {
+        for (int i = 0; i < VALUES.length; i++) {
+            if (VALUES[i].name.equals(value)) {
+                return VALUES[i];
+            }
+        }
+        throw new IllegalArgumentException("Invalid value " + value);
+    }
+}
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarAclEndpointConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarAclEndpointConfiguration
new file mode 100644
index 0000000..ea1c73f
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarAclEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.CalendarAclEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarCalendarListEndpointConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarCalendarListEndpointConfiguration
new file mode 100644
index 0000000..ac3f3d5
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarCalendarListEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.CalendarCalendarListEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarCalendarsEndpointConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarCalendarsEndpointConfiguration
new file mode 100644
index 0000000..4caa55b
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarCalendarsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.CalendarCalendarsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarChannelsEndpointConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarChannelsEndpointConfiguration
new file mode 100644
index 0000000..6d3b53d
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarChannelsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.CalendarChannelsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarColorsEndpointConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarColorsEndpointConfiguration
new file mode 100644
index 0000000..2f54641
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarColorsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.CalendarColorsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarEventsEndpointConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarEventsEndpointConfiguration
new file mode 100644
index 0000000..0fd6bb1
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarEventsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.CalendarEventsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarFreebusyEndpointConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarFreebusyEndpointConfiguration
new file mode 100644
index 0000000..5de9b66
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarFreebusyEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.CalendarFreebusyEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarSettingsEndpointConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarSettingsEndpointConfiguration
new file mode 100644
index 0000000..7f7092a
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/CalendarSettingsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.CalendarSettingsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleCalendarConfiguration
 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleCalendarConfiguration
new file mode 100644
index 0000000..5847e8b
--- /dev/null
+++ 
b/components/camel-google-calendar/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleCalendarConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.calendar.GoogleCalendarConfigurationConfigurer
diff --git 
a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarConfiguration.java
 
b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarConfiguration.java
index 176212d..4239354 100644
--- 
a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarConfiguration.java
+++ 
b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.google.calendar;
 
 import com.google.api.services.calendar.CalendarScopes;
 import 
org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
@@ -27,6 +28,7 @@ import org.apache.camel.spi.UriPath;
  * Component configuration for GoogleCalendar component.
  */
 @UriParams
+@Configurer
 public class GoogleCalendarConfiguration {
 
     @UriPath

Reply via email to