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 4172a30b3a3a2a376c811f60319dd6f6af05ed10
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Jun 22 13:01:34 2020 +0200

    CAMEL-15224: camel-api-component - Avoid reflection when configured nested 
configuration classes.
---
 components/camel-google-mail/pom.xml               |  46 +------
 .../GmailUsersDraftsEndpointConfiguration.java     |  61 +++++++++
 ...UsersDraftsEndpointConfigurationConfigurer.java |  95 ++++++++++++++
 .../mail/GmailUsersEndpointConfiguration.java      |  39 ++++++
 .../GmailUsersEndpointConfigurationConfigurer.java |  85 +++++++++++++
 .../GmailUsersHistoryEndpointConfiguration.java    |  28 +++++
 ...sersHistoryEndpointConfigurationConfigurer.java |  80 ++++++++++++
 .../GmailUsersLabelsEndpointConfiguration.java     |  50 ++++++++
 ...UsersLabelsEndpointConfigurationConfigurer.java |  90 ++++++++++++++
 ...rsMessagesAttachmentsEndpointConfiguration.java |  50 ++++++++
 ...AttachmentsEndpointConfigurationConfigurer.java |  90 ++++++++++++++
 .../GmailUsersMessagesEndpointConfiguration.java   |  94 ++++++++++++++
 ...ersMessagesEndpointConfigurationConfigurer.java | 110 +++++++++++++++++
 .../GmailUsersThreadsEndpointConfiguration.java    |  50 ++++++++
 ...sersThreadsEndpointConfigurationConfigurer.java |  90 ++++++++++++++
 .../mail/GoogleMailConfigurationConfigurer.java    |  75 ++++++++++++
 .../google/mail/internal/GmailUsersApiMethod.java  |  61 +++++++++
 .../mail/internal/GmailUsersDraftsApiMethod.java   | 103 ++++++++++++++++
 .../mail/internal/GmailUsersHistoryApiMethod.java  |  50 ++++++++
 .../mail/internal/GmailUsersLabelsApiMethod.java   |  82 +++++++++++++
 .../mail/internal/GmailUsersMessagesApiMethod.java | 136 +++++++++++++++++++++
 .../GmailUsersMessagesAttachmentsApiMethod.java    |  52 ++++++++
 .../mail/internal/GmailUsersThreadsApiMethod.java  |  81 ++++++++++++
 .../mail/internal/GoogleMailApiCollection.java     | 113 +++++++++++++++++
 .../google/mail/internal/GoogleMailApiName.java    |  50 ++++++++
 .../GmailUsersDraftsEndpointConfiguration          |   2 +
 .../configurer/GmailUsersEndpointConfiguration     |   2 +
 .../GmailUsersHistoryEndpointConfiguration         |   2 +
 .../GmailUsersLabelsEndpointConfiguration          |   2 +
 ...ilUsersMessagesAttachmentsEndpointConfiguration |   2 +
 .../GmailUsersMessagesEndpointConfiguration        |   2 +
 .../GmailUsersThreadsEndpointConfiguration         |   2 +
 .../camel/configurer/GoogleMailConfiguration       |   2 +
 .../google/mail/GoogleMailConfiguration.java       |   2 +
 34 files changed, 1839 insertions(+), 40 deletions(-)

diff --git a/components/camel-google-mail/pom.xml 
b/components/camel-google-mail/pom.xml
index 96d938f..612f6c4 100644
--- a/components/camel-google-mail/pom.xml
+++ b/components/camel-google-mail/pom.xml
@@ -204,38 +204,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>
-                        <goals>
-                            <goal>add-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                
<source>${project.build.directory}/generated-sources/camel-component</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>add-generated-test-sources</id>
+                        <id>generate-configurer</id>
+                        <phase>process-classes</phase>
                         <goals>
-                            <goal>add-test-source</goal>
+                            <goal>generate-configurer</goal>
                         </goals>
-                        <configuration>
-                            <sources>
-                                
<source>${project.build.directory}/generated-test-sources/camel-component</source>
-                            </sources>
-                        </configuration>
                     </execution>
                 </executions>
             </plugin>
-
         </plugins>
 
         <pluginManagement>
@@ -256,22 +238,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-mail-test</id>
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfiguration.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfiguration.java
new file mode 100644
index 0000000..bb3c4fd
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfiguration.java
@@ -0,0 +1,61 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail;
+
+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.gmail.Gmail$Users$Drafts
+ */
+@UriParams
+@Configurer
+public final class GmailUsersDraftsEndpointConfiguration extends 
GoogleMailConfiguration {
+
+    @UriParam
+    private com.google.api.services.gmail.model.Draft content;
+
+    @UriParam
+    private String id;
+
+    @UriParam
+    private com.google.api.client.http.AbstractInputStreamContent mediaContent;
+
+    @UriParam
+    private String userId;
+
+    public com.google.api.services.gmail.model.Draft getContent() {
+        return content;
+    }
+
+    public void setContent(com.google.api.services.gmail.model.Draft content) {
+        this.content = content;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public com.google.api.client.http.AbstractInputStreamContent 
getMediaContent() {
+        return mediaContent;
+    }
+
+    public void 
setMediaContent(com.google.api.client.http.AbstractInputStreamContent 
mediaContent) {
+        this.mediaContent = mediaContent;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+}
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfigurationConfigurer.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..9fdc0bf
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfigurationConfigurer.java
@@ -0,0 +1,95 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.mail;
+
+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.mail.GmailUsersDraftsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GmailUsersDraftsEndpointConfigurationConfigurer 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.mail.GmailUsersDraftsEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersDraftsEndpointConfiguration) 
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.mail.internal.GoogleMailApiName.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.gmail.model.Draft.class, value)); return true;
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "mediacontent":
+        case "MediaContent": target.setMediaContent(property(camelContext, 
com.google.api.client.http.AbstractInputStreamContent.class, value)); return 
true;
+        case "methodname":
+        case "MethodName": target.setMethodName(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 "userid":
+        case "UserId": target.setUserId(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.mail.internal.GoogleMailApiName.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.gmail.model.Draft.class);
+        answer.put("Id", java.lang.String.class);
+        answer.put("MediaContent", 
com.google.api.client.http.AbstractInputStreamContent.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("UserId", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.mail.GmailUsersDraftsEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersDraftsEndpointConfiguration) 
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 "id":
+        case "Id": return target.getId();
+        case "mediacontent":
+        case "MediaContent": return target.getMediaContent();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "userid":
+        case "UserId": return target.getUserId();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfiguration.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfiguration.java
new file mode 100644
index 0000000..5329830
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfiguration.java
@@ -0,0 +1,39 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail;
+
+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.gmail.Gmail$Users
+ */
+@UriParams
+@Configurer
+public final class GmailUsersEndpointConfiguration extends 
GoogleMailConfiguration {
+
+    @UriParam
+    private com.google.api.services.gmail.model.WatchRequest content;
+
+    @UriParam
+    private String userId;
+
+    public com.google.api.services.gmail.model.WatchRequest getContent() {
+        return content;
+    }
+
+    public void setContent(com.google.api.services.gmail.model.WatchRequest 
content) {
+        this.content = content;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+}
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfigurationConfigurer.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..6d8070a
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfigurationConfigurer.java
@@ -0,0 +1,85 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.mail;
+
+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.mail.GmailUsersEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GmailUsersEndpointConfigurationConfigurer 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.mail.GmailUsersEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersEndpointConfiguration) 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.mail.internal.GoogleMailApiName.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.gmail.model.WatchRequest.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(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 "userid":
+        case "UserId": target.setUserId(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.mail.internal.GoogleMailApiName.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.gmail.model.WatchRequest.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("UserId", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.component.google.mail.GmailUsersEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersEndpointConfiguration) 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 "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "userid":
+        case "UserId": return target.getUserId();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfiguration.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfiguration.java
new file mode 100644
index 0000000..2341c22
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfiguration.java
@@ -0,0 +1,28 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail;
+
+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.gmail.Gmail$Users$History
+ */
+@UriParams
+@Configurer
+public final class GmailUsersHistoryEndpointConfiguration extends 
GoogleMailConfiguration {
+
+    @UriParam
+    private String userId;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+}
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfigurationConfigurer.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..cfb4258
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfigurationConfigurer.java
@@ -0,0 +1,80 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.mail;
+
+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.mail.GmailUsersHistoryEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GmailUsersHistoryEndpointConfigurationConfigurer 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.mail.GmailUsersHistoryEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersHistoryEndpointConfiguration) 
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.mail.internal.GoogleMailApiName.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 "methodname":
+        case "MethodName": target.setMethodName(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 "userid":
+        case "UserId": target.setUserId(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.mail.internal.GoogleMailApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("UserId", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.mail.GmailUsersHistoryEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersHistoryEndpointConfiguration) 
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 "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "userid":
+        case "UserId": return target.getUserId();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfiguration.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfiguration.java
new file mode 100644
index 0000000..85e7601
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfiguration.java
@@ -0,0 +1,50 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail;
+
+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.gmail.Gmail$Users$Labels
+ */
+@UriParams
+@Configurer
+public final class GmailUsersLabelsEndpointConfiguration extends 
GoogleMailConfiguration {
+
+    @UriParam
+    private com.google.api.services.gmail.model.Label content;
+
+    @UriParam
+    private String id;
+
+    @UriParam
+    private String userId;
+
+    public com.google.api.services.gmail.model.Label getContent() {
+        return content;
+    }
+
+    public void setContent(com.google.api.services.gmail.model.Label content) {
+        this.content = content;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+}
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfigurationConfigurer.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..d349e69
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfigurationConfigurer.java
@@ -0,0 +1,90 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.mail;
+
+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.mail.GmailUsersLabelsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GmailUsersLabelsEndpointConfigurationConfigurer 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.mail.GmailUsersLabelsEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersLabelsEndpointConfiguration) 
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.mail.internal.GoogleMailApiName.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.gmail.model.Label.class, value)); return true;
+        case "id":
+        case "Id": target.setId(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 "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "userid":
+        case "UserId": target.setUserId(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.mail.internal.GoogleMailApiName.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.gmail.model.Label.class);
+        answer.put("Id", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("UserId", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.mail.GmailUsersLabelsEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersLabelsEndpointConfiguration) 
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 "id":
+        case "Id": return target.getId();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "userid":
+        case "UserId": return target.getUserId();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfiguration.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfiguration.java
new file mode 100644
index 0000000..ab1b27d
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfiguration.java
@@ -0,0 +1,50 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail;
+
+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.gmail.Gmail$Users$Messages$Attachments
+ */
+@UriParams
+@Configurer
+public final class GmailUsersMessagesAttachmentsEndpointConfiguration extends 
GoogleMailConfiguration {
+
+    @UriParam
+    private String id;
+
+    @UriParam
+    private String messageId;
+
+    @UriParam
+    private String userId;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getMessageId() {
+        return messageId;
+    }
+
+    public void setMessageId(String messageId) {
+        this.messageId = messageId;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+}
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..e343cc9
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer.java
@@ -0,0 +1,90 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.mail;
+
+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.mail.GmailUsersMessagesAttachmentsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer 
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.mail.GmailUsersMessagesAttachmentsEndpointConfiguration
 target = 
(org.apache.camel.component.google.mail.GmailUsersMessagesAttachmentsEndpointConfiguration)
 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.mail.internal.GoogleMailApiName.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 "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "messageid":
+        case "MessageId": target.setMessageId(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 "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "userid":
+        case "UserId": target.setUserId(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.mail.internal.GoogleMailApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Id", java.lang.String.class);
+        answer.put("MessageId", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("UserId", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.mail.GmailUsersMessagesAttachmentsEndpointConfiguration
 target = 
(org.apache.camel.component.google.mail.GmailUsersMessagesAttachmentsEndpointConfiguration)
 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 "id":
+        case "Id": return target.getId();
+        case "messageid":
+        case "MessageId": return target.getMessageId();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "userid":
+        case "UserId": return target.getUserId();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfiguration.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfiguration.java
new file mode 100644
index 0000000..043ca42
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfiguration.java
@@ -0,0 +1,94 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail;
+
+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.gmail.Gmail$Users$Messages
+ */
+@UriParams
+@Configurer
+public final class GmailUsersMessagesEndpointConfiguration extends 
GoogleMailConfiguration {
+
+    @UriParam
+    private com.google.api.services.gmail.model.BatchDeleteMessagesRequest 
batchDeleteMessagesRequest;
+
+    @UriParam
+    private com.google.api.services.gmail.model.BatchModifyMessagesRequest 
batchModifyMessagesRequest;
+
+    @UriParam
+    private com.google.api.services.gmail.model.Message content;
+
+    @UriParam
+    private String id;
+
+    @UriParam
+    private com.google.api.client.http.AbstractInputStreamContent mediaContent;
+
+    @UriParam
+    private com.google.api.services.gmail.model.ModifyMessageRequest 
modifyMessageRequest;
+
+    @UriParam
+    private String userId;
+
+    public com.google.api.services.gmail.model.BatchDeleteMessagesRequest 
getBatchDeleteMessagesRequest() {
+        return batchDeleteMessagesRequest;
+    }
+
+    public void 
setBatchDeleteMessagesRequest(com.google.api.services.gmail.model.BatchDeleteMessagesRequest
 batchDeleteMessagesRequest) {
+        this.batchDeleteMessagesRequest = batchDeleteMessagesRequest;
+    }
+
+    public com.google.api.services.gmail.model.BatchModifyMessagesRequest 
getBatchModifyMessagesRequest() {
+        return batchModifyMessagesRequest;
+    }
+
+    public void 
setBatchModifyMessagesRequest(com.google.api.services.gmail.model.BatchModifyMessagesRequest
 batchModifyMessagesRequest) {
+        this.batchModifyMessagesRequest = batchModifyMessagesRequest;
+    }
+
+    public com.google.api.services.gmail.model.Message getContent() {
+        return content;
+    }
+
+    public void setContent(com.google.api.services.gmail.model.Message 
content) {
+        this.content = content;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public com.google.api.client.http.AbstractInputStreamContent 
getMediaContent() {
+        return mediaContent;
+    }
+
+    public void 
setMediaContent(com.google.api.client.http.AbstractInputStreamContent 
mediaContent) {
+        this.mediaContent = mediaContent;
+    }
+
+    public com.google.api.services.gmail.model.ModifyMessageRequest 
getModifyMessageRequest() {
+        return modifyMessageRequest;
+    }
+
+    public void 
setModifyMessageRequest(com.google.api.services.gmail.model.ModifyMessageRequest
 modifyMessageRequest) {
+        this.modifyMessageRequest = modifyMessageRequest;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+}
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfigurationConfigurer.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..a807c6f
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfigurationConfigurer.java
@@ -0,0 +1,110 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.mail;
+
+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.mail.GmailUsersMessagesEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GmailUsersMessagesEndpointConfigurationConfigurer 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.mail.GmailUsersMessagesEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersMessagesEndpointConfiguration)
 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.mail.internal.GoogleMailApiName.class, 
value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "batchdeletemessagesrequest":
+        case "BatchDeleteMessagesRequest": 
target.setBatchDeleteMessagesRequest(property(camelContext, 
com.google.api.services.gmail.model.BatchDeleteMessagesRequest.class, value)); 
return true;
+        case "batchmodifymessagesrequest":
+        case "BatchModifyMessagesRequest": 
target.setBatchModifyMessagesRequest(property(camelContext, 
com.google.api.services.gmail.model.BatchModifyMessagesRequest.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.gmail.model.Message.class, value)); return true;
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "mediacontent":
+        case "MediaContent": target.setMediaContent(property(camelContext, 
com.google.api.client.http.AbstractInputStreamContent.class, value)); return 
true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "modifymessagerequest":
+        case "ModifyMessageRequest": 
target.setModifyMessageRequest(property(camelContext, 
com.google.api.services.gmail.model.ModifyMessageRequest.class, value)); return 
true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "userid":
+        case "UserId": target.setUserId(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.mail.internal.GoogleMailApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("BatchDeleteMessagesRequest", 
com.google.api.services.gmail.model.BatchDeleteMessagesRequest.class);
+        answer.put("BatchModifyMessagesRequest", 
com.google.api.services.gmail.model.BatchModifyMessagesRequest.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Content", 
com.google.api.services.gmail.model.Message.class);
+        answer.put("Id", java.lang.String.class);
+        answer.put("MediaContent", 
com.google.api.client.http.AbstractInputStreamContent.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("ModifyMessageRequest", 
com.google.api.services.gmail.model.ModifyMessageRequest.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("UserId", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.mail.GmailUsersMessagesEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersMessagesEndpointConfiguration)
 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 "batchdeletemessagesrequest":
+        case "BatchDeleteMessagesRequest": return 
target.getBatchDeleteMessagesRequest();
+        case "batchmodifymessagesrequest":
+        case "BatchModifyMessagesRequest": return 
target.getBatchModifyMessagesRequest();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "content":
+        case "Content": return target.getContent();
+        case "id":
+        case "Id": return target.getId();
+        case "mediacontent":
+        case "MediaContent": return target.getMediaContent();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "modifymessagerequest":
+        case "ModifyMessageRequest": return target.getModifyMessageRequest();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "userid":
+        case "UserId": return target.getUserId();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfiguration.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfiguration.java
new file mode 100644
index 0000000..8d155a0
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfiguration.java
@@ -0,0 +1,50 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail;
+
+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.gmail.Gmail$Users$Threads
+ */
+@UriParams
+@Configurer
+public final class GmailUsersThreadsEndpointConfiguration extends 
GoogleMailConfiguration {
+
+    @UriParam
+    private com.google.api.services.gmail.model.ModifyThreadRequest content;
+
+    @UriParam
+    private String id;
+
+    @UriParam
+    private String userId;
+
+    public com.google.api.services.gmail.model.ModifyThreadRequest 
getContent() {
+        return content;
+    }
+
+    public void 
setContent(com.google.api.services.gmail.model.ModifyThreadRequest content) {
+        this.content = content;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+}
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfigurationConfigurer.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..a1cd8ec
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfigurationConfigurer.java
@@ -0,0 +1,90 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.mail;
+
+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.mail.GmailUsersThreadsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GmailUsersThreadsEndpointConfigurationConfigurer 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.mail.GmailUsersThreadsEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersThreadsEndpointConfiguration) 
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.mail.internal.GoogleMailApiName.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.gmail.model.ModifyThreadRequest.class, value)); return 
true;
+        case "id":
+        case "Id": target.setId(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 "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "userid":
+        case "UserId": target.setUserId(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.mail.internal.GoogleMailApiName.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.gmail.model.ModifyThreadRequest.class);
+        answer.put("Id", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("UserId", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.mail.GmailUsersThreadsEndpointConfiguration 
target = 
(org.apache.camel.component.google.mail.GmailUsersThreadsEndpointConfiguration) 
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 "id":
+        case "Id": return target.getId();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "userid":
+        case "UserId": return target.getUserId();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailConfigurationConfigurer.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailConfigurationConfigurer.java
new file mode 100644
index 0000000..12b9b9d
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailConfigurationConfigurer.java
@@ -0,0 +1,75 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.mail;
+
+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.mail.GoogleMailConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GoogleMailConfigurationConfigurer 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.mail.GoogleMailConfiguration target 
= (org.apache.camel.component.google.mail.GoogleMailConfiguration) 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.mail.internal.GoogleMailApiName.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 "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(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.mail.internal.GoogleMailApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.component.google.mail.GoogleMailConfiguration target 
= (org.apache.camel.component.google.mail.GoogleMailConfiguration) 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 "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersApiMethod.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersApiMethod.java
new file mode 100644
index 0000000..0dc26c5
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersApiMethod.java
@@ -0,0 +1,61 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.gmail.Gmail.Users;
+
+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.gmail.Gmail$Users
+ */
+public enum GmailUsersApiMethod implements ApiMethod {
+
+    GETPROFILE(
+        com.google.api.services.gmail.Gmail.Users.GetProfile.class,
+        "getProfile",
+        arg("userId", String.class)),
+
+    STOP(
+        com.google.api.services.gmail.Gmail.Users.Stop.class,
+        "stop",
+        arg("userId", String.class)),
+
+    WATCH(
+        com.google.api.services.gmail.Gmail.Users.Watch.class,
+        "watch",
+        arg("userId", String.class),
+        arg("content", 
com.google.api.services.gmail.model.WatchRequest.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private GmailUsersApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Users.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-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersDraftsApiMethod.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersDraftsApiMethod.java
new file mode 100644
index 0000000..c0d9f0d
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersDraftsApiMethod.java
@@ -0,0 +1,103 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.gmail.Gmail.Users.Drafts;
+
+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.gmail.Gmail$Users$Drafts
+ */
+public enum GmailUsersDraftsApiMethod implements ApiMethod {
+
+    CREATE(
+        com.google.api.services.gmail.Gmail.Users.Drafts.Create.class,
+        "create",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Draft.class)),
+
+    CREATE_1(
+        com.google.api.services.gmail.Gmail.Users.Drafts.Create.class,
+        "create",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Draft.class),
+        arg("mediaContent", 
com.google.api.client.http.AbstractInputStreamContent.class)),
+
+    DELETE(
+        com.google.api.services.gmail.Gmail.Users.Drafts.Delete.class,
+        "delete",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    GET(
+        com.google.api.services.gmail.Gmail.Users.Drafts.Get.class,
+        "get",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    LIST(
+        com.google.api.services.gmail.Gmail.Users.Drafts.List.class,
+        "list",
+        arg("userId", String.class)),
+
+    SEND(
+        com.google.api.services.gmail.Gmail.Users.Drafts.Send.class,
+        "send",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Draft.class)),
+
+    SEND_1(
+        com.google.api.services.gmail.Gmail.Users.Drafts.Send.class,
+        "send",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Draft.class),
+        arg("mediaContent", 
com.google.api.client.http.AbstractInputStreamContent.class)),
+
+    UPDATE(
+        com.google.api.services.gmail.Gmail.Users.Drafts.Update.class,
+        "update",
+        arg("userId", String.class),
+        arg("id", String.class),
+        arg("content", com.google.api.services.gmail.model.Draft.class)),
+
+    UPDATE_1(
+        com.google.api.services.gmail.Gmail.Users.Drafts.Update.class,
+        "update",
+        arg("userId", String.class),
+        arg("id", String.class),
+        arg("content", com.google.api.services.gmail.model.Draft.class),
+        arg("mediaContent", 
com.google.api.client.http.AbstractInputStreamContent.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private GmailUsersDraftsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Drafts.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-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersHistoryApiMethod.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersHistoryApiMethod.java
new file mode 100644
index 0000000..4609d0d
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersHistoryApiMethod.java
@@ -0,0 +1,50 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.gmail.Gmail.Users.History;
+
+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.gmail.Gmail$Users$History
+ */
+public enum GmailUsersHistoryApiMethod implements ApiMethod {
+
+    LIST(
+        com.google.api.services.gmail.Gmail.Users.History.List.class,
+        "list",
+        arg("userId", String.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private GmailUsersHistoryApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(History.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-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersLabelsApiMethod.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersLabelsApiMethod.java
new file mode 100644
index 0000000..6fa5da2
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersLabelsApiMethod.java
@@ -0,0 +1,82 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.gmail.Gmail.Users.Labels;
+
+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.gmail.Gmail$Users$Labels
+ */
+public enum GmailUsersLabelsApiMethod implements ApiMethod {
+
+    CREATE(
+        com.google.api.services.gmail.Gmail.Users.Labels.Create.class,
+        "create",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Label.class)),
+
+    DELETE(
+        com.google.api.services.gmail.Gmail.Users.Labels.Delete.class,
+        "delete",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    GET(
+        com.google.api.services.gmail.Gmail.Users.Labels.Get.class,
+        "get",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    LIST(
+        com.google.api.services.gmail.Gmail.Users.Labels.List.class,
+        "list",
+        arg("userId", String.class)),
+
+    PATCH(
+        com.google.api.services.gmail.Gmail.Users.Labels.Patch.class,
+        "patch",
+        arg("userId", String.class),
+        arg("id", String.class),
+        arg("content", com.google.api.services.gmail.model.Label.class)),
+
+    UPDATE(
+        com.google.api.services.gmail.Gmail.Users.Labels.Update.class,
+        "update",
+        arg("userId", String.class),
+        arg("id", String.class),
+        arg("content", com.google.api.services.gmail.model.Label.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private GmailUsersLabelsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Labels.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-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersMessagesApiMethod.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersMessagesApiMethod.java
new file mode 100644
index 0000000..e947d2d
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersMessagesApiMethod.java
@@ -0,0 +1,136 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.gmail.Gmail.Users.Messages;
+
+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.gmail.Gmail$Users$Messages
+ */
+public enum GmailUsersMessagesApiMethod implements ApiMethod {
+
+    ATTACHMENTS(
+        com.google.api.services.gmail.Gmail.Users.Messages.Attachments.class,
+        "attachments"),
+
+    BATCHDELETE(
+        com.google.api.services.gmail.Gmail.Users.Messages.BatchDelete.class,
+        "batchDelete",
+        arg("userId", String.class),
+        arg("batchDeleteMessagesRequest", 
com.google.api.services.gmail.model.BatchDeleteMessagesRequest.class)),
+
+    BATCHMODIFY(
+        com.google.api.services.gmail.Gmail.Users.Messages.BatchModify.class,
+        "batchModify",
+        arg("userId", String.class),
+        arg("batchModifyMessagesRequest", 
com.google.api.services.gmail.model.BatchModifyMessagesRequest.class)),
+
+    DELETE(
+        com.google.api.services.gmail.Gmail.Users.Messages.Delete.class,
+        "delete",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    GET(
+        com.google.api.services.gmail.Gmail.Users.Messages.Get.class,
+        "get",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    GMAILIMPORT(
+        com.google.api.services.gmail.Gmail.Users.Messages.GmailImport.class,
+        "gmailImport",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Message.class)),
+
+    GMAILIMPORT_1(
+        com.google.api.services.gmail.Gmail.Users.Messages.GmailImport.class,
+        "gmailImport",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Message.class),
+        arg("mediaContent", 
com.google.api.client.http.AbstractInputStreamContent.class)),
+
+    INSERT(
+        com.google.api.services.gmail.Gmail.Users.Messages.Insert.class,
+        "insert",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Message.class)),
+
+    INSERT_1(
+        com.google.api.services.gmail.Gmail.Users.Messages.Insert.class,
+        "insert",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Message.class),
+        arg("mediaContent", 
com.google.api.client.http.AbstractInputStreamContent.class)),
+
+    LIST(
+        com.google.api.services.gmail.Gmail.Users.Messages.List.class,
+        "list",
+        arg("userId", String.class)),
+
+    MODIFY(
+        com.google.api.services.gmail.Gmail.Users.Messages.Modify.class,
+        "modify",
+        arg("userId", String.class),
+        arg("id", String.class),
+        arg("modifyMessageRequest", 
com.google.api.services.gmail.model.ModifyMessageRequest.class)),
+
+    SEND(
+        com.google.api.services.gmail.Gmail.Users.Messages.Send.class,
+        "send",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Message.class)),
+
+    SEND_1(
+        com.google.api.services.gmail.Gmail.Users.Messages.Send.class,
+        "send",
+        arg("userId", String.class),
+        arg("content", com.google.api.services.gmail.model.Message.class),
+        arg("mediaContent", 
com.google.api.client.http.AbstractInputStreamContent.class)),
+
+    TRASH(
+        com.google.api.services.gmail.Gmail.Users.Messages.Trash.class,
+        "trash",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    UNTRASH(
+        com.google.api.services.gmail.Gmail.Users.Messages.Untrash.class,
+        "untrash",
+        arg("userId", String.class),
+        arg("id", String.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private GmailUsersMessagesApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Messages.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-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersMessagesAttachmentsApiMethod.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersMessagesAttachmentsApiMethod.java
new file mode 100644
index 0000000..6f6589e
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersMessagesAttachmentsApiMethod.java
@@ -0,0 +1,52 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.gmail.Gmail.Users.Messages.Attachments;
+
+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.gmail.Gmail$Users$Messages$Attachments
+ */
+public enum GmailUsersMessagesAttachmentsApiMethod implements ApiMethod {
+
+    GET(
+        
com.google.api.services.gmail.Gmail.Users.Messages.Attachments.Get.class,
+        "get",
+        arg("userId", String.class),
+        arg("messageId", String.class),
+        arg("id", String.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private GmailUsersMessagesAttachmentsApiMethod(Class<?> resultType, String 
name, ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Attachments.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-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersThreadsApiMethod.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersThreadsApiMethod.java
new file mode 100644
index 0000000..12badaf
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GmailUsersThreadsApiMethod.java
@@ -0,0 +1,81 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.gmail.Gmail.Users.Threads;
+
+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.gmail.Gmail$Users$Threads
+ */
+public enum GmailUsersThreadsApiMethod implements ApiMethod {
+
+    DELETE(
+        com.google.api.services.gmail.Gmail.Users.Threads.Delete.class,
+        "delete",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    GET(
+        com.google.api.services.gmail.Gmail.Users.Threads.Get.class,
+        "get",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    LIST(
+        com.google.api.services.gmail.Gmail.Users.Threads.List.class,
+        "list",
+        arg("userId", String.class)),
+
+    MODIFY(
+        com.google.api.services.gmail.Gmail.Users.Threads.Modify.class,
+        "modify",
+        arg("userId", String.class),
+        arg("id", String.class),
+        arg("content", 
com.google.api.services.gmail.model.ModifyThreadRequest.class)),
+
+    TRASH(
+        com.google.api.services.gmail.Gmail.Users.Threads.Trash.class,
+        "trash",
+        arg("userId", String.class),
+        arg("id", String.class)),
+
+    UNTRASH(
+        com.google.api.services.gmail.Gmail.Users.Threads.Untrash.class,
+        "untrash",
+        arg("userId", String.class),
+        arg("id", String.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private GmailUsersThreadsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Threads.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-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GoogleMailApiCollection.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GoogleMailApiCollection.java
new file mode 100644
index 0000000..d016de8
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GoogleMailApiCollection.java
@@ -0,0 +1,113 @@
+
+/*
+ * Camel ApiCollection generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.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.mail.GoogleMailConfiguration;
+import 
org.apache.camel.component.google.mail.GmailUsersThreadsEndpointConfiguration;
+import 
org.apache.camel.component.google.mail.GmailUsersMessagesEndpointConfiguration;
+import 
org.apache.camel.component.google.mail.GmailUsersMessagesAttachmentsEndpointConfiguration;
+import 
org.apache.camel.component.google.mail.GmailUsersLabelsEndpointConfiguration;
+import 
org.apache.camel.component.google.mail.GmailUsersHistoryEndpointConfiguration;
+import 
org.apache.camel.component.google.mail.GmailUsersDraftsEndpointConfiguration;
+import org.apache.camel.component.google.mail.GmailUsersEndpointConfiguration;
+
+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 GoogleMail
+ */
+public final class GoogleMailApiCollection extends 
ApiCollection<GoogleMailApiName, GoogleMailConfiguration> {
+
+    private static GoogleMailApiCollection collection;
+
+    private GoogleMailApiCollection() {
+        final Map<String, String> aliases = new HashMap<String, String>();
+        final Map<GoogleMailApiName, ApiMethodHelper<? extends ApiMethod>> 
apiHelpers = new HashMap<>();
+        final Map<Class<? extends ApiMethod>, GoogleMailApiName> apiMethods = 
new HashMap<>();
+
+        List<String> nullableArgs;
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleMailApiName.THREADS, new 
ApiMethodHelper<GmailUsersThreadsApiMethod>(GmailUsersThreadsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(GmailUsersThreadsApiMethod.class, 
GoogleMailApiName.THREADS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleMailApiName.MESSAGES, new 
ApiMethodHelper<GmailUsersMessagesApiMethod>(GmailUsersMessagesApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(GmailUsersMessagesApiMethod.class, 
GoogleMailApiName.MESSAGES);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleMailApiName.ATTACHMENTS, new 
ApiMethodHelper<GmailUsersMessagesAttachmentsApiMethod>(GmailUsersMessagesAttachmentsApiMethod.class,
 aliases, nullableArgs));
+        apiMethods.put(GmailUsersMessagesAttachmentsApiMethod.class, 
GoogleMailApiName.ATTACHMENTS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleMailApiName.LABELS, new 
ApiMethodHelper<GmailUsersLabelsApiMethod>(GmailUsersLabelsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(GmailUsersLabelsApiMethod.class, 
GoogleMailApiName.LABELS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleMailApiName.HISTORY, new 
ApiMethodHelper<GmailUsersHistoryApiMethod>(GmailUsersHistoryApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(GmailUsersHistoryApiMethod.class, 
GoogleMailApiName.HISTORY);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleMailApiName.DRAFTS, new 
ApiMethodHelper<GmailUsersDraftsApiMethod>(GmailUsersDraftsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(GmailUsersDraftsApiMethod.class, 
GoogleMailApiName.DRAFTS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleMailApiName.USERS, new 
ApiMethodHelper<GmailUsersApiMethod>(GmailUsersApiMethod.class, aliases, 
nullableArgs));
+        apiMethods.put(GmailUsersApiMethod.class, GoogleMailApiName.USERS);
+
+        setApiHelpers(apiHelpers);
+        setApiMethods(apiMethods);
+    }
+
+    public GoogleMailConfiguration getEndpointConfiguration(GoogleMailApiName 
apiName) {
+        GoogleMailConfiguration result = null;
+        switch (apiName) {
+            case THREADS:
+                result = new GmailUsersThreadsEndpointConfiguration();
+                break;
+            case MESSAGES:
+                result = new GmailUsersMessagesEndpointConfiguration();
+                break;
+            case ATTACHMENTS:
+                result = new 
GmailUsersMessagesAttachmentsEndpointConfiguration();
+                break;
+            case LABELS:
+                result = new GmailUsersLabelsEndpointConfiguration();
+                break;
+            case HISTORY:
+                result = new GmailUsersHistoryEndpointConfiguration();
+                break;
+            case DRAFTS:
+                result = new GmailUsersDraftsEndpointConfiguration();
+                break;
+            case USERS:
+                result = new GmailUsersEndpointConfiguration();
+                break;
+        }
+        return result;
+    }
+
+    public static synchronized GoogleMailApiCollection getCollection() {
+        if (collection == null) {
+            collection = new GoogleMailApiCollection();
+        }
+        return collection;
+    }
+}
diff --git 
a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GoogleMailApiName.java
 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GoogleMailApiName.java
new file mode 100644
index 0000000..12556c5
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/internal/GoogleMailApiName.java
@@ -0,0 +1,50 @@
+
+/*
+ * Camel ApiName Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.mail.internal;
+
+import org.apache.camel.support.component.ApiName;
+
+/**
+ * Camel {@link ApiName} Enumeration for Component GoogleMail
+ */
+public enum GoogleMailApiName implements ApiName {
+
+    THREADS("threads"),
+
+    MESSAGES("messages"),
+
+    ATTACHMENTS("attachments"),
+
+    LABELS("labels"),
+
+    HISTORY("history"),
+
+    DRAFTS("drafts"),
+
+    USERS("users");
+
+
+    private static final GoogleMailApiName[] VALUES = values();
+    
+    private final String name;
+
+    private GoogleMailApiName(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    public static GoogleMailApiName 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-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersDraftsEndpointConfiguration
 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersDraftsEndpointConfiguration
new file mode 100644
index 0000000..cb83b88
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersDraftsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.mail.GmailUsersDraftsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersEndpointConfiguration
 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersEndpointConfiguration
new file mode 100644
index 0000000..d9fb2aa
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.mail.GmailUsersEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersHistoryEndpointConfiguration
 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersHistoryEndpointConfiguration
new file mode 100644
index 0000000..b5a6e08
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersHistoryEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.mail.GmailUsersHistoryEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersLabelsEndpointConfiguration
 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersLabelsEndpointConfiguration
new file mode 100644
index 0000000..336e9ac
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersLabelsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.mail.GmailUsersLabelsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersMessagesAttachmentsEndpointConfiguration
 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersMessagesAttachmentsEndpointConfiguration
new file mode 100644
index 0000000..c0fed0d
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersMessagesAttachmentsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.mail.GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersMessagesEndpointConfiguration
 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersMessagesEndpointConfiguration
new file mode 100644
index 0000000..ddd746f
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersMessagesEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.mail.GmailUsersMessagesEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersThreadsEndpointConfiguration
 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersThreadsEndpointConfiguration
new file mode 100644
index 0000000..37b608e
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GmailUsersThreadsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.mail.GmailUsersThreadsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleMailConfiguration
 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleMailConfiguration
new file mode 100644
index 0000000..f99f107
--- /dev/null
+++ 
b/components/camel-google-mail/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleMailConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.mail.GoogleMailConfigurationConfigurer
diff --git 
a/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailConfiguration.java
 
b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailConfiguration.java
index 8acd220..6f55f34 100644
--- 
a/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailConfiguration.java
+++ 
b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.google.mail;
 
 import org.apache.camel.component.google.mail.internal.GoogleMailApiName;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
@@ -26,6 +27,7 @@ import org.apache.camel.spi.UriPath;
  * Component configuration for GoogleMail component.
  */
 @UriParams
+@Configurer
 public class GoogleMailConfiguration {
     @UriPath @Metadata(required = true)
     private GoogleMailApiName apiName;

Reply via email to