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

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

commit f3622f0d89843b6f94ea1ba675026f87bbb33187
Author: Raffaele Marcello <marcelloraffa...@gmail.com>
AuthorDate: Sat Feb 13 18:47:26 2021 +0100

    CAMEL-15964 create camel-google-storage component
---
 .../catalog/docs/google-storage-component.adoc     |  6 ++-
 .../GoogleCloudStorageComponentConfigurer.java     |  6 +++
 .../GoogleCloudStorageEndpointConfigurer.java      |  6 +++
 .../GoogleCloudStorageEndpointUriFactory.java      |  3 +-
 .../component/google/storage/google-storage.json   |  2 +
 .../src/main/docs/google-storage-component.adoc    |  6 ++-
 .../GoogleCloudStorageComponentConfiguration.java  | 16 ++++++++
 .../google/storage/GoogleCloudStorageEndpoint.java | 16 +++++++-
 .../dsl/GoogleStorageComponentBuilderFactory.java  | 17 ++++++++
 .../GoogleCloudStorageEndpointBuilderFactory.java  | 48 ++++++++++++++++++++++
 .../ROOT/pages/google-storage-component.adoc       |  6 ++-
 11 files changed, 123 insertions(+), 9 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/google-storage-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/google-storage-component.adoc
index a473b5e..aafb49a 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/google-storage-component.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/google-storage-component.adoc
@@ -82,7 +82,7 @@ 
from("google-storage://myCamelBucket?serviceAccountKey=/home/user/Downloads/my-k
 == URI Options
 
 // component options: START
-The Google Storage component supports 14 options, which are listed below.
+The Google Storage component supports 15 options, which are listed below.
 
 
 
@@ -93,6 +93,7 @@ The Google Storage component supports 14 options, which are 
listed below.
 | *configuration* (common) | The component configuration |  | 
GoogleCloudStorageComponentConfiguration
 | *serviceAccountKey* (common) | Service account key |  | String
 | *storageClient* (common) | Set strage client |  | Storage
+| *storageLocation* (common) | The Cloud Storage location to use when creating 
the new buckets | US-EAST1 | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
 | *deleteAfterRead* (consumer) | Delete objects from the bucket after they 
have been retrieved. The delete is only performed if the Exchange is committed. 
If a rollback occurs, the object is not deleted. If this option is false, then 
the same objects will be retrieve over and over again on the polls. | true | 
boolean
 | *destinationBucket* (consumer) | Define the destination bucket where an 
object must be moved when moveAfterRead is set to true. |  | String
@@ -125,7 +126,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (30 parameters):
+=== Query Parameters (31 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -134,6 +135,7 @@ with the following path and query parameters:
 | *autoCreateBucket* (common) | Setting the autocreation of the bucket 
bucketName. | true | boolean
 | *serviceAccountKey* (common) | Service account key |  | String
 | *storageClient* (common) | Set strage client |  | Storage
+| *storageLocation* (common) | The Cloud Storage location to use when creating 
the new buckets | US-EAST1 | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
 | *deleteAfterRead* (consumer) | Delete objects from the bucket after they 
have been retrieved. The delete is only performed if the Exchange is committed. 
If a rollback occurs, the object is not deleted. If this option is false, then 
the same objects will be retrieve over and over again on the polls. | true | 
boolean
 | *destinationBucket* (consumer) | Define the destination bucket where an 
object must be moved when moveAfterRead is set to true. |  | String
diff --git 
a/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfigurer.java
 
b/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfigurer.java
index f2aa873..649f85b 100644
--- 
a/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfigurer.java
+++ 
b/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfigurer.java
@@ -54,6 +54,8 @@ public class GoogleCloudStorageComponentConfigurer extends 
PropertyConfigurerSup
         case "serviceAccountKey": 
getOrCreateConfiguration(target).setServiceAccountKey(property(camelContext, 
java.lang.String.class, value)); return true;
         case "storageclient":
         case "storageClient": 
getOrCreateConfiguration(target).setStorageClient(property(camelContext, 
com.google.cloud.storage.Storage.class, value)); return true;
+        case "storagelocation":
+        case "storageLocation": 
getOrCreateConfiguration(target).setStorageLocation(property(camelContext, 
java.lang.String.class, value)); return true;
         default: return false;
         }
     }
@@ -87,6 +89,8 @@ public class GoogleCloudStorageComponentConfigurer extends 
PropertyConfigurerSup
         case "serviceAccountKey": return java.lang.String.class;
         case "storageclient":
         case "storageClient": return com.google.cloud.storage.Storage.class;
+        case "storagelocation":
+        case "storageLocation": return java.lang.String.class;
         default: return null;
         }
     }
@@ -121,6 +125,8 @@ public class GoogleCloudStorageComponentConfigurer extends 
PropertyConfigurerSup
         case "serviceAccountKey": return 
getOrCreateConfiguration(target).getServiceAccountKey();
         case "storageclient":
         case "storageClient": return 
getOrCreateConfiguration(target).getStorageClient();
+        case "storagelocation":
+        case "storageLocation": return 
getOrCreateConfiguration(target).getStorageLocation();
         default: return null;
         }
     }
diff --git 
a/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpointConfigurer.java
 
b/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpointConfigurer.java
index 1e8d17a..edb8a63 100644
--- 
a/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpointConfigurer.java
+++ 
b/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpointConfigurer.java
@@ -73,6 +73,8 @@ public class GoogleCloudStorageEndpointConfigurer extends 
PropertyConfigurerSupp
         case "startScheduler": target.setStartScheduler(property(camelContext, 
boolean.class, value)); return true;
         case "storageclient":
         case "storageClient": 
target.getConfiguration().setStorageClient(property(camelContext, 
com.google.cloud.storage.Storage.class, value)); return true;
+        case "storagelocation":
+        case "storageLocation": 
target.getConfiguration().setStorageLocation(property(camelContext, 
java.lang.String.class, value)); return true;
         case "timeunit":
         case "timeUnit": target.setTimeUnit(property(camelContext, 
java.util.concurrent.TimeUnit.class, value)); return true;
         case "usefixeddelay":
@@ -136,6 +138,8 @@ public class GoogleCloudStorageEndpointConfigurer extends 
PropertyConfigurerSupp
         case "startScheduler": return boolean.class;
         case "storageclient":
         case "storageClient": return com.google.cloud.storage.Storage.class;
+        case "storagelocation":
+        case "storageLocation": return java.lang.String.class;
         case "timeunit":
         case "timeUnit": return java.util.concurrent.TimeUnit.class;
         case "usefixeddelay":
@@ -200,6 +204,8 @@ public class GoogleCloudStorageEndpointConfigurer extends 
PropertyConfigurerSupp
         case "startScheduler": return target.isStartScheduler();
         case "storageclient":
         case "storageClient": return 
target.getConfiguration().getStorageClient();
+        case "storagelocation":
+        case "storageLocation": return 
target.getConfiguration().getStorageLocation();
         case "timeunit":
         case "timeUnit": return target.getTimeUnit();
         case "usefixeddelay":
diff --git 
a/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpointUriFactory.java
 
b/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpointUriFactory.java
index 86fe7f9..a243bfb 100644
--- 
a/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpointUriFactory.java
+++ 
b/components/camel-google-storage/src/generated/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpointUriFactory.java
@@ -20,10 +20,11 @@ public class GoogleCloudStorageEndpointUriFactory extends 
org.apache.camel.suppo
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(31);
+        Set<String> props = new HashSet<>(32);
         props.add("backoffMultiplier");
         props.add("bucketName");
         props.add("destinationBucket");
+        props.add("storageLocation");
         props.add("initialDelay");
         props.add("scheduler");
         props.add("bridgeErrorHandler");
diff --git 
a/components/camel-google-storage/src/generated/resources/org/apache/camel/component/google/storage/google-storage.json
 
b/components/camel-google-storage/src/generated/resources/org/apache/camel/component/google/storage/google-storage.json
index 7e946ab..4f4f89e 100644
--- 
a/components/camel-google-storage/src/generated/resources/org/apache/camel/component/google/storage/google-storage.json
+++ 
b/components/camel-google-storage/src/generated/resources/org/apache/camel/component/google/storage/google-storage.json
@@ -26,6 +26,7 @@
     "configuration": { "kind": "property", "displayName": "Configuration", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "deprecated": false, "autowired": false, "secret": false, "description": "The 
component configuration" },
     "serviceAccountKey": { "kind": "property", "displayName": "Service Account 
Key", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Service account key" },
     "storageClient": { "kind": "property", "displayName": "Storage Client", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "com.google.cloud.storage.Storage", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Set strage client" },
+    "storageLocation": { "kind": "property", "displayName": "Storage 
Location", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "US-EAST1", "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "The Cloud Storage 
location to use when creating the new  [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Allows for bridging the 
consumer to the Camel routing Error Handler, which mean any exceptions occurred 
while the consumer is trying to pickup incoming messages, or the likes, will 
now be processed as a me [...]
     "deleteAfterRead": { "kind": "property", "displayName": "Delete After 
Read", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Delete objects from the 
bucket after they have been retrieved. Th [...]
     "destinationBucket": { "kind": "property", "displayName": "Destination 
Bucket", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Define the destination 
bucket where an object must be moved when moveAfterRe [...]
@@ -42,6 +43,7 @@
     "autoCreateBucket": { "kind": "parameter", "displayName": "Auto Create 
Bucket", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Setting the 
autocreation of the bucket bucketName." },
     "serviceAccountKey": { "kind": "parameter", "displayName": "Service 
Account Key", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Service account key" },
     "storageClient": { "kind": "parameter", "displayName": "Storage Client", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "com.google.cloud.storage.Storage", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Set strage client" },
+    "storageLocation": { "kind": "parameter", "displayName": "Storage 
Location", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "US-EAST1", "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "The Cloud Storage 
location to use when creating the new [...]
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Allows for bridging the 
consumer to the Camel routing Error Handler, which mean any exceptions occurred 
while the consumer is trying to pickup incoming messages, or the likes, will 
now be processed as a m [...]
     "deleteAfterRead": { "kind": "parameter", "displayName": "Delete After 
Read", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Delete objects from the 
bucket after they have been retrieved. T [...]
     "destinationBucket": { "kind": "parameter", "displayName": "Destination 
Bucket", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration",
 "configurationField": "configuration", "description": "Define the destination 
bucket where an object must be moved when moveAfterR [...]
diff --git 
a/components/camel-google-storage/src/main/docs/google-storage-component.adoc 
b/components/camel-google-storage/src/main/docs/google-storage-component.adoc
index a473b5e..aafb49a 100644
--- 
a/components/camel-google-storage/src/main/docs/google-storage-component.adoc
+++ 
b/components/camel-google-storage/src/main/docs/google-storage-component.adoc
@@ -82,7 +82,7 @@ 
from("google-storage://myCamelBucket?serviceAccountKey=/home/user/Downloads/my-k
 == URI Options
 
 // component options: START
-The Google Storage component supports 14 options, which are listed below.
+The Google Storage component supports 15 options, which are listed below.
 
 
 
@@ -93,6 +93,7 @@ The Google Storage component supports 14 options, which are 
listed below.
 | *configuration* (common) | The component configuration |  | 
GoogleCloudStorageComponentConfiguration
 | *serviceAccountKey* (common) | Service account key |  | String
 | *storageClient* (common) | Set strage client |  | Storage
+| *storageLocation* (common) | The Cloud Storage location to use when creating 
the new buckets | US-EAST1 | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
 | *deleteAfterRead* (consumer) | Delete objects from the bucket after they 
have been retrieved. The delete is only performed if the Exchange is committed. 
If a rollback occurs, the object is not deleted. If this option is false, then 
the same objects will be retrieve over and over again on the polls. | true | 
boolean
 | *destinationBucket* (consumer) | Define the destination bucket where an 
object must be moved when moveAfterRead is set to true. |  | String
@@ -125,7 +126,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (30 parameters):
+=== Query Parameters (31 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -134,6 +135,7 @@ with the following path and query parameters:
 | *autoCreateBucket* (common) | Setting the autocreation of the bucket 
bucketName. | true | boolean
 | *serviceAccountKey* (common) | Service account key |  | String
 | *storageClient* (common) | Set strage client |  | Storage
+| *storageLocation* (common) | The Cloud Storage location to use when creating 
the new buckets | US-EAST1 | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
 | *deleteAfterRead* (consumer) | Delete objects from the bucket after they 
have been retrieved. The delete is only performed if the Exchange is committed. 
If a rollback occurs, the object is not deleted. If this option is false, then 
the same objects will be retrieve over and over again on the polls. | true | 
boolean
 | *destinationBucket* (consumer) | Define the destination bucket where an 
object must be moved when moveAfterRead is set to true. |  | String
diff --git 
a/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfiguration.java
 
b/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfiguration.java
index 5355ec8..e058a5a 100644
--- 
a/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfiguration.java
+++ 
b/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfiguration.java
@@ -40,6 +40,10 @@ public class GoogleCloudStorageComponentConfiguration 
implements Cloneable {
     @UriParam(label = "producer", description = "Object name")
     private String objectName;
 
+    @UriParam(label = "common", defaultValue = "US-EAST1",
+              description = "The Cloud Storage location to use when creating 
the new buckets")
+    private String storageLocation;
+
     @UriParam(label = "common", defaultValue = "true")
     private boolean autoCreateBucket = true;
 
@@ -100,6 +104,18 @@ public class GoogleCloudStorageComponentConfiguration 
implements Cloneable {
         return storageClient;
     }
 
+    public String getStorageLocation() {
+        return storageLocation;
+    }
+
+    /**
+     * The Cloud Storage location to use when creating the new buckets. The 
complete available locations list at
+     * https://cloud.google.com/storage/docs/locations#location-mr
+     */
+    public void setStorageLocation(String storageLocation) {
+        this.storageLocation = storageLocation;
+    }
+
     /**
      * Set strage client
      * 
diff --git 
a/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpoint.java
 
b/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpoint.java
index 028642a..43e0d95 100644
--- 
a/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpoint.java
+++ 
b/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageEndpoint.java
@@ -22,7 +22,9 @@ import java.util.Date;
 import com.google.cloud.storage.Blob;
 import com.google.cloud.storage.Bucket;
 import com.google.cloud.storage.BucketInfo;
+import com.google.cloud.storage.BucketInfo.Builder;
 import com.google.cloud.storage.Storage;
+import com.google.cloud.storage.StorageClass;
 import org.apache.camel.Category;
 import org.apache.camel.Consumer;
 import org.apache.camel.Exchange;
@@ -45,11 +47,15 @@ import org.slf4j.LoggerFactory;
  * 
  */
 @UriEndpoint(firstVersion = "3.7.0", scheme = "google-storage", title = 
"Google Storage", syntax = "google-storage:bucketName",
-             category = { Category.CLOUD })
+             category = {
+                     Category.CLOUD })
 public class GoogleCloudStorageEndpoint extends ScheduledPollEndpoint {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(GoogleCloudStorageEndpoint.class);
 
+    private static final String DEFAULT_LOCATION = "US-EAST1";
+    private static final StorageClass DEFAULT_STORAGE_CLASS = 
StorageClass.STANDARD;
+
     @UriParam
     private GoogleCloudStorageComponentConfiguration configuration;
 
@@ -92,7 +98,13 @@ public class GoogleCloudStorageEndpoint extends 
ScheduledPollEndpoint {
                     return;
                 } else {
                     // creates the new bucket because it doesn't exist yet
-                    BucketInfo bucketInfo = 
BucketInfo.newBuilder(configuration.getBucketName()).build();
+                    final String location = configuration.getStorageLocation() 
!= null
+                            ? configuration.getStorageLocation() : 
DEFAULT_LOCATION;
+
+                    Builder bucketBuilder = 
BucketInfo.newBuilder(configuration.getBucketName())
+                            .setStorageClass(DEFAULT_STORAGE_CLASS)
+                            .setLocation(location);
+                    BucketInfo bucketInfo = bucketBuilder.build();
                     bucket = storageClient.create(bucketInfo);
                     LOG.trace("Bucket [{}] has been created", 
bucket.getName());
                 }
diff --git 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleStorageComponentBuilderFactory.java
 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleStorageComponentBuilderFactory.java
index 4c8a69d..4150c6e 100644
--- 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleStorageComponentBuilderFactory.java
+++ 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleStorageComponentBuilderFactory.java
@@ -116,6 +116,22 @@ public interface GoogleStorageComponentBuilderFactory {
             return this;
         }
         /**
+         * The Cloud Storage location to use when creating the new buckets.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: US-EAST1
+         * Group: common
+         * 
+         * @param storageLocation the value to set
+         * @return the dsl builder
+         */
+        default GoogleStorageComponentBuilder storageLocation(
+                java.lang.String storageLocation) {
+            doSetProperty("storageLocation", storageLocation);
+            return this;
+        }
+        /**
          * Allows for bridging the consumer to the Camel routing Error Handler,
          * which mean any exceptions occurred while the consumer is trying to
          * pickup incoming messages, or the likes, will now be processed as a
@@ -331,6 +347,7 @@ public interface GoogleStorageComponentBuilderFactory {
             case "configuration": ((GoogleCloudStorageComponent) 
component).setConfiguration((org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration)
 value); return true;
             case "serviceAccountKey": 
getOrCreateConfiguration((GoogleCloudStorageComponent) 
component).setServiceAccountKey((java.lang.String) value); return true;
             case "storageClient": 
getOrCreateConfiguration((GoogleCloudStorageComponent) 
component).setStorageClient((com.google.cloud.storage.Storage) value); return 
true;
+            case "storageLocation": 
getOrCreateConfiguration((GoogleCloudStorageComponent) 
component).setStorageLocation((java.lang.String) value); return true;
             case "bridgeErrorHandler": ((GoogleCloudStorageComponent) 
component).setBridgeErrorHandler((boolean) value); return true;
             case "deleteAfterRead": 
getOrCreateConfiguration((GoogleCloudStorageComponent) 
component).setDeleteAfterRead((boolean) value); return true;
             case "destinationBucket": 
getOrCreateConfiguration((GoogleCloudStorageComponent) 
component).setDestinationBucket((java.lang.String) value); return true;
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
index 804ccf7..5fb83a7 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
@@ -128,6 +128,22 @@ public interface GoogleCloudStorageEndpointBuilderFactory {
             return this;
         }
         /**
+         * The Cloud Storage location to use when creating the new buckets.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: US-EAST1
+         * Group: common
+         * 
+         * @param storageLocation the value to set
+         * @return the dsl builder
+         */
+        default GoogleCloudStorageEndpointConsumerBuilder storageLocation(
+                String storageLocation) {
+            doSetProperty("storageLocation", storageLocation);
+            return this;
+        }
+        /**
          * Allows for bridging the consumer to the Camel routing Error Handler,
          * which mean any exceptions occurred while the consumer is trying to
          * pickup incoming messages, or the likes, will now be processed as a
@@ -1074,6 +1090,22 @@ public interface 
GoogleCloudStorageEndpointBuilderFactory {
             return this;
         }
         /**
+         * The Cloud Storage location to use when creating the new buckets.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: US-EAST1
+         * Group: common
+         * 
+         * @param storageLocation the value to set
+         * @return the dsl builder
+         */
+        default GoogleCloudStorageEndpointProducerBuilder storageLocation(
+                String storageLocation) {
+            doSetProperty("storageLocation", storageLocation);
+            return this;
+        }
+        /**
          * Whether the producer should be started lazy (on the first message).
          * By starting lazy you can use this to allow CamelContext and routes 
to
          * startup in situations where a producer may otherwise fail during
@@ -1272,6 +1304,22 @@ public interface 
GoogleCloudStorageEndpointBuilderFactory {
             doSetProperty("storageClient", storageClient);
             return this;
         }
+        /**
+         * The Cloud Storage location to use when creating the new buckets.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: US-EAST1
+         * Group: common
+         * 
+         * @param storageLocation the value to set
+         * @return the dsl builder
+         */
+        default GoogleCloudStorageEndpointBuilder storageLocation(
+                String storageLocation) {
+            doSetProperty("storageLocation", storageLocation);
+            return this;
+        }
     }
 
     /**
diff --git a/docs/components/modules/ROOT/pages/google-storage-component.adoc 
b/docs/components/modules/ROOT/pages/google-storage-component.adoc
index 447289a..51c49ff 100644
--- a/docs/components/modules/ROOT/pages/google-storage-component.adoc
+++ b/docs/components/modules/ROOT/pages/google-storage-component.adoc
@@ -84,7 +84,7 @@ 
from("google-storage://myCamelBucket?serviceAccountKey=/home/user/Downloads/my-k
 == URI Options
 
 // component options: START
-The Google Storage component supports 14 options, which are listed below.
+The Google Storage component supports 15 options, which are listed below.
 
 
 
@@ -95,6 +95,7 @@ The Google Storage component supports 14 options, which are 
listed below.
 | *configuration* (common) | The component configuration |  | 
GoogleCloudStorageComponentConfiguration
 | *serviceAccountKey* (common) | Service account key |  | String
 | *storageClient* (common) | Set strage client |  | Storage
+| *storageLocation* (common) | The Cloud Storage location to use when creating 
the new buckets | US-EAST1 | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
 | *deleteAfterRead* (consumer) | Delete objects from the bucket after they 
have been retrieved. The delete is only performed if the Exchange is committed. 
If a rollback occurs, the object is not deleted. If this option is false, then 
the same objects will be retrieve over and over again on the polls. | true | 
boolean
 | *destinationBucket* (consumer) | Define the destination bucket where an 
object must be moved when moveAfterRead is set to true. |  | String
@@ -127,7 +128,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (30 parameters):
+=== Query Parameters (31 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -136,6 +137,7 @@ with the following path and query parameters:
 | *autoCreateBucket* (common) | Setting the autocreation of the bucket 
bucketName. | true | boolean
 | *serviceAccountKey* (common) | Service account key |  | String
 | *storageClient* (common) | Set strage client |  | Storage
+| *storageLocation* (common) | The Cloud Storage location to use when creating 
the new buckets | US-EAST1 | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by the routing Error Handler. By default the 
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with 
exceptions, that will be logged at WARN or ERROR level and ignored. | false | 
boolean
 | *deleteAfterRead* (consumer) | Delete objects from the bucket after they 
have been retrieved. The delete is only performed if the Exchange is committed. 
If a rollback occurs, the object is not deleted. If this option is false, then 
the same objects will be retrieve over and over again on the polls. | true | 
boolean
 | *destinationBucket* (consumer) | Define the destination bucket where an 
object must be moved when moveAfterRead is set to true. |  | String

Reply via email to