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

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

commit 3e9d9ecd762002252e403fcb1f222a7b966844d0
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Jul 17 10:31:32 2025 +0200

    CAMEL-22247 - Camel Google Components: Make the scopes parameter a string 
in all the components - Google Sheets Streams
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../catalog/components/google-sheets-stream.json   |  4 ++--
 .../GoogleSheetsStreamComponentConfigurer.java     | 12 ++---------
 .../GoogleSheetsStreamEndpointConfigurer.java      |  5 ++---
 .../google/sheets/stream/google-sheets-stream.json |  4 ++--
 .../sheets/stream/GoogleSheetsStreamComponent.java |  4 ++--
 .../stream/GoogleSheetsStreamConfiguration.java    | 18 +++++++++++++----
 .../GoogleSheetsStreamComponentBuilderFactory.java |  9 ++++-----
 .../GoogleSheetsStreamEndpointBuilderFactory.java  | 23 ++--------------------
 8 files changed, 30 insertions(+), 49 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-sheets-stream.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-sheets-stream.json
index 532d5f5955d..4f1655732df 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-sheets-stream.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-sheets-stream.json
@@ -34,7 +34,7 @@
     "majorDimension": { "index": 6, "kind": "property", "displayName": "Major 
Dimension", "group": "consumer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "enum": [ "ROWS", "COLUMNS", 
"DIMENSION_UNSPECIFIED" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "ROWS", "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "S [...]
     "maxResults": { "index": 7, "kind": "property", "displayName": "Max 
Results", "group": "consumer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specify the maximum 
number of returned results. This will limit the number of rows in a returned 
valu [...]
     "range": { "index": 8, "kind": "property", "displayName": "Range", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the range of 
rows and columns in a sheet to get data from." },
-    "scopes": { "index": 9, "kind": "property", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "array", 
"javaType": "java.util.Collection<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a sheets application to have to a [...]
+    "scopes": { "index": 9, "kind": "property", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a sheets application to have to a user account. See ht 
[...]
     "splitResults": { "index": 10, "kind": "property", "displayName": "Split 
Results", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "True if value range 
result should be split into rows or columns to pr [...]
     "valueRenderOption": { "index": 11, "kind": "property", "displayName": 
"Value Render Option", "group": "consumer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "enum": [ "FORMATTED_VALUE", 
"UNFORMATTED_VALUE", "FORMULA" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "FORMATTED_VALUE", "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configu [...]
     "autowiredEnabled": { "index": 12, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
@@ -63,7 +63,7 @@
     "majorDimension": { "index": 5, "kind": "parameter", "displayName": "Major 
Dimension", "group": "consumer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "enum": [ "ROWS", "COLUMNS", 
"DIMENSION_UNSPECIFIED" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "ROWS", "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": " [...]
     "maxResults": { "index": 6, "kind": "parameter", "displayName": "Max 
Results", "group": "consumer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specify the maximum 
number of returned results. This will limit the number of rows in a returned 
val [...]
     "range": { "index": 7, "kind": "parameter", "displayName": "Range", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the range of 
rows and columns in a sheet to get data from." },
-    "scopes": { "index": 8, "kind": "parameter", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "array", 
"javaType": "java.util.Collection<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a sheets application to have to  [...]
+    "scopes": { "index": 8, "kind": "parameter", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a sheets application to have to a user account. See h [...]
     "sendEmptyMessageWhenIdle": { "index": 9, "kind": "parameter", 
"displayName": "Send Empty Message When Idle", "group": "consumer", "label": 
"consumer", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "If the polling consumer did not poll any files, you can 
enable this option to send an empty message (no body) instead." },
     "splitResults": { "index": 10, "kind": "parameter", "displayName": "Split 
Results", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "True if value range 
result should be split into rows or columns to p [...]
     "valueRenderOption": { "index": 11, "kind": "parameter", "displayName": 
"Value Render Option", "group": "consumer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "enum": [ "FORMATTED_VALUE", 
"UNFORMATTED_VALUE", "FORMULA" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "FORMATTED_VALUE", "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "config [...]
diff --git 
a/components/camel-google/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamComponentConfigurer.java
 
b/components/camel-google/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamComponentConfigurer.java
index 739be792886..6d8b115c4a1 100644
--- 
a/components/camel-google/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamComponentConfigurer.java
+++ 
b/components/camel-google/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamComponentConfigurer.java
@@ -59,7 +59,7 @@ public class GoogleSheetsStreamComponentConfigurer extends 
PropertyConfigurerSup
         case "range": 
getOrCreateConfiguration(target).setRange(property(camelContext, 
java.lang.String.class, value)); return true;
         case "refreshtoken":
         case "refreshToken": 
getOrCreateConfiguration(target).setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
-        case "scopes": 
getOrCreateConfiguration(target).setScopes(property(camelContext, 
java.util.Collection.class, value)); return true;
+        case "scopes": 
getOrCreateConfiguration(target).setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
         case "serviceaccountkey":
         case "serviceAccountKey": 
getOrCreateConfiguration(target).setServiceAccountKey(property(camelContext, 
java.lang.String.class, value)); return true;
         case "splitresults":
@@ -102,7 +102,7 @@ public class GoogleSheetsStreamComponentConfigurer extends 
PropertyConfigurerSup
         case "range": return java.lang.String.class;
         case "refreshtoken":
         case "refreshToken": return java.lang.String.class;
-        case "scopes": return java.util.Collection.class;
+        case "scopes": return java.lang.String.class;
         case "serviceaccountkey":
         case "serviceAccountKey": return java.lang.String.class;
         case "splitresults":
@@ -156,13 +156,5 @@ public class GoogleSheetsStreamComponentConfigurer extends 
PropertyConfigurerSup
         default: return null;
         }
     }
-
-    @Override
-    public Object getCollectionValueType(Object target, String name, boolean 
ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "scopes": return java.lang.String.class;
-        default: return null;
-        }
-    }
 }
 
diff --git 
a/components/camel-google/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamEndpointConfigurer.java
 
b/components/camel-google/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamEndpointConfigurer.java
index 89e8f0d8d40..4e7824c5f7c 100644
--- 
a/components/camel-google/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamEndpointConfigurer.java
+++ 
b/components/camel-google/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamEndpointConfigurer.java
@@ -68,7 +68,7 @@ public class GoogleSheetsStreamEndpointConfigurer extends 
PropertyConfigurerSupp
         case "scheduler": target.setScheduler(property(camelContext, 
java.lang.Object.class, value)); return true;
         case "schedulerproperties":
         case "schedulerProperties": 
target.setSchedulerProperties(property(camelContext, java.util.Map.class, 
value)); return true;
-        case "scopes": 
target.getConfiguration().setScopes(property(camelContext, 
java.util.Collection.class, value)); return true;
+        case "scopes": 
target.getConfiguration().setScopes(property(camelContext, 
java.lang.String.class, value)); return true;
         case "sendemptymessagewhenidle":
         case "sendEmptyMessageWhenIdle": 
target.setSendEmptyMessageWhenIdle(property(camelContext, boolean.class, 
value)); return true;
         case "serviceaccountkey":
@@ -135,7 +135,7 @@ public class GoogleSheetsStreamEndpointConfigurer extends 
PropertyConfigurerSupp
         case "scheduler": return java.lang.Object.class;
         case "schedulerproperties":
         case "schedulerProperties": return java.util.Map.class;
-        case "scopes": return java.util.Collection.class;
+        case "scopes": return java.lang.String.class;
         case "sendemptymessagewhenidle":
         case "sendEmptyMessageWhenIdle": return boolean.class;
         case "serviceaccountkey":
@@ -227,7 +227,6 @@ public class GoogleSheetsStreamEndpointConfigurer extends 
PropertyConfigurerSupp
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "schedulerproperties":
         case "schedulerProperties": return java.lang.Object.class;
-        case "scopes": return java.lang.String.class;
         default: return null;
         }
     }
diff --git 
a/components/camel-google/camel-google-sheets/src/generated/resources/META-INF/org/apache/camel/component/google/sheets/stream/google-sheets-stream.json
 
b/components/camel-google/camel-google-sheets/src/generated/resources/META-INF/org/apache/camel/component/google/sheets/stream/google-sheets-stream.json
index 532d5f5955d..4f1655732df 100644
--- 
a/components/camel-google/camel-google-sheets/src/generated/resources/META-INF/org/apache/camel/component/google/sheets/stream/google-sheets-stream.json
+++ 
b/components/camel-google/camel-google-sheets/src/generated/resources/META-INF/org/apache/camel/component/google/sheets/stream/google-sheets-stream.json
@@ -34,7 +34,7 @@
     "majorDimension": { "index": 6, "kind": "property", "displayName": "Major 
Dimension", "group": "consumer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "enum": [ "ROWS", "COLUMNS", 
"DIMENSION_UNSPECIFIED" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "ROWS", "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "S [...]
     "maxResults": { "index": 7, "kind": "property", "displayName": "Max 
Results", "group": "consumer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specify the maximum 
number of returned results. This will limit the number of rows in a returned 
valu [...]
     "range": { "index": 8, "kind": "property", "displayName": "Range", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the range of 
rows and columns in a sheet to get data from." },
-    "scopes": { "index": 9, "kind": "property", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "array", 
"javaType": "java.util.Collection<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a sheets application to have to a [...]
+    "scopes": { "index": 9, "kind": "property", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a sheets application to have to a user account. See ht 
[...]
     "splitResults": { "index": 10, "kind": "property", "displayName": "Split 
Results", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "True if value range 
result should be split into rows or columns to pr [...]
     "valueRenderOption": { "index": 11, "kind": "property", "displayName": 
"Value Render Option", "group": "consumer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "enum": [ "FORMATTED_VALUE", 
"UNFORMATTED_VALUE", "FORMULA" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "FORMATTED_VALUE", "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configu [...]
     "autowiredEnabled": { "index": 12, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
@@ -63,7 +63,7 @@
     "majorDimension": { "index": 5, "kind": "parameter", "displayName": "Major 
Dimension", "group": "consumer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "enum": [ "ROWS", "COLUMNS", 
"DIMENSION_UNSPECIFIED" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "ROWS", "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": " [...]
     "maxResults": { "index": 6, "kind": "parameter", "displayName": "Max 
Results", "group": "consumer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specify the maximum 
number of returned results. This will limit the number of rows in a returned 
val [...]
     "range": { "index": 7, "kind": "parameter", "displayName": "Range", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the range of 
rows and columns in a sheet to get data from." },
-    "scopes": { "index": 8, "kind": "parameter", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "array", 
"javaType": "java.util.Collection<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a sheets application to have to  [...]
+    "scopes": { "index": 8, "kind": "parameter", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a sheets application to have to a user account. See h [...]
     "sendEmptyMessageWhenIdle": { "index": 9, "kind": "parameter", 
"displayName": "Send Empty Message When Idle", "group": "consumer", "label": 
"consumer", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "If the polling consumer did not poll any files, you can 
enable this option to send an empty message (no body) instead." },
     "splitResults": { "index": 10, "kind": "parameter", "displayName": "Split 
Results", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "configuration", "description": "True if value range 
result should be split into rows or columns to p [...]
     "valueRenderOption": { "index": 11, "kind": "parameter", "displayName": 
"Value Render Option", "group": "consumer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "enum": [ "FORMATTED_VALUE", 
"UNFORMATTED_VALUE", "FORMULA" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "FORMATTED_VALUE", "configurationClass": 
"org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
 "configurationField": "config [...]
diff --git 
a/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamComponent.java
 
b/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamComponent.java
index b69cf7ec466..9b7e8b74e91 100644
--- 
a/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamComponent.java
+++ 
b/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamComponent.java
@@ -51,11 +51,11 @@ public class GoogleSheetsStreamComponent extends 
HealthCheckComponent {
         if (client == null) {
             if (config.getClientId() != null && config.getClientSecret() != 
null) {
                 client = getClientFactory().makeClient(config.getClientId(),
-                        config.getClientSecret(), config.getScopes(),
+                        config.getClientSecret(), config.getScopesAsList(),
                         config.getApplicationName(), config.getRefreshToken(), 
config.getAccessToken());
             } else if (config.getServiceAccountKey() != null) {
                 client = getClientFactory().makeClient(getCamelContext(), 
config.getServiceAccountKey(),
-                        config.getScopes(), config.getApplicationName(), 
config.getDelegate());
+                        config.getScopesAsList(), config.getApplicationName(), 
config.getDelegate());
             } else {
                 throw new IllegalArgumentException(
                         "(clientId and clientSecret) or serviceAccountKey are 
required to create Gmail client");
diff --git 
a/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamConfiguration.java
 
b/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamConfiguration.java
index 20af7d35cdd..bf993e11ff2 100644
--- 
a/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamConfiguration.java
+++ 
b/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.google.sheets.stream;
 
 import java.util.Collection;
+import java.util.List;
 
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.Metadata;
@@ -34,7 +35,7 @@ public class GoogleSheetsStreamConfiguration implements 
Cloneable {
     @Metadata(required = true)
     private String spreadsheetId;
     @UriParam
-    private Collection<String> scopes;
+    private String scopes;
     @UriParam
     private String clientId;
     @UriParam(label = "security", secret = true)
@@ -119,17 +120,26 @@ public class GoogleSheetsStreamConfiguration implements 
Cloneable {
         this.applicationName = applicationName;
     }
 
-    public Collection<String> getScopes() {
+    public String getScopes() {
         return scopes;
     }
 
+    public Collection<String> getScopesAsList() {
+        if (scopes != null) {
+            return List.of(scopes.split(","));
+        } else {
+            return null;
+        }
+    }
+
     /**
      * Specifies the level of permissions you want a sheets application to 
have to a user account. See
-     * https://developers.google.com/identity/protocols/googlescopes for more 
info.
+     * https://developers.google.com/identity/protocols/googlescopes for more 
info. Multiple scopes can be separated by
+     * comma.
      *
      * @see com.google.api.services.sheets.v4.SheetsScopes
      */
-    public void setScopes(Collection<String> scopes) {
+    public void setScopes(String scopes) {
         this.scopes = scopes;
     }
 
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleSheetsStreamComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleSheetsStreamComponentBuilderFactory.java
index 70e0d77fe64..37fbdc187f7 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleSheetsStreamComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleSheetsStreamComponentBuilderFactory.java
@@ -210,17 +210,16 @@ public interface 
GoogleSheetsStreamComponentBuilderFactory {
          * Specifies the level of permissions you want a sheets application to
          * have to a user account. See
          * https://developers.google.com/identity/protocols/googlescopes for
-         * more info.
+         * more info. Multiple scopes can be separated by comma.
          * 
-         * The option is a:
-         * 
&lt;code&gt;java.util.Collection&amp;lt;java.lang.String&amp;gt;&lt;/code&gt; 
type.
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
          * Group: consumer
          * 
          * @param scopes the value to set
          * @return the dsl builder
          */
-        default GoogleSheetsStreamComponentBuilder 
scopes(java.util.Collection<java.lang.String> scopes) {
+        default GoogleSheetsStreamComponentBuilder scopes(java.lang.String 
scopes) {
             doSetProperty("scopes", scopes);
             return this;
         }
@@ -431,7 +430,7 @@ public interface GoogleSheetsStreamComponentBuilderFactory {
             case "majorDimension": 
getOrCreateConfiguration((GoogleSheetsStreamComponent) 
component).setMajorDimension((java.lang.String) value); return true;
             case "maxResults": 
getOrCreateConfiguration((GoogleSheetsStreamComponent) 
component).setMaxResults((int) value); return true;
             case "range": 
getOrCreateConfiguration((GoogleSheetsStreamComponent) 
component).setRange((java.lang.String) value); return true;
-            case "scopes": 
getOrCreateConfiguration((GoogleSheetsStreamComponent) 
component).setScopes((java.util.Collection) value); return true;
+            case "scopes": 
getOrCreateConfiguration((GoogleSheetsStreamComponent) 
component).setScopes((java.lang.String) value); return true;
             case "splitResults": 
getOrCreateConfiguration((GoogleSheetsStreamComponent) 
component).setSplitResults((boolean) value); return true;
             case "valueRenderOption": 
getOrCreateConfiguration((GoogleSheetsStreamComponent) 
component).setValueRenderOption((java.lang.String) value); return true;
             case "autowiredEnabled": ((GoogleSheetsStreamComponent) 
component).setAutowiredEnabled((boolean) value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleSheetsStreamEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleSheetsStreamEndpointBuilderFactory.java
index 4b1ce6d7bd4..1d9e8bcf4e4 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleSheetsStreamEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleSheetsStreamEndpointBuilderFactory.java
@@ -182,28 +182,9 @@ public interface GoogleSheetsStreamEndpointBuilderFactory {
          * Specifies the level of permissions you want a sheets application to
          * have to a user account. See
          * https://developers.google.com/identity/protocols/googlescopes for
-         * more info.
+         * more info. Multiple scopes can be separated by comma.
          * 
-         * The option is a:
-         * <code>java.util.Collection&lt;java.lang.String&gt;</code> type.
-         * 
-         * Group: consumer
-         * 
-         * @param scopes the value to set
-         * @return the dsl builder
-         */
-        default GoogleSheetsStreamEndpointBuilder 
scopes(Collection<java.lang.String> scopes) {
-            doSetProperty("scopes", scopes);
-            return this;
-        }
-        /**
-         * Specifies the level of permissions you want a sheets application to
-         * have to a user account. See
-         * https://developers.google.com/identity/protocols/googlescopes for
-         * more info.
-         * 
-         * The option will be converted to a
-         * <code>java.util.Collection&lt;java.lang.String&gt;</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: consumer
          * 

Reply via email to