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

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

commit 44a6318660969291ad00e4b65e9b0ba82cec9e4b
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Feb 17 10:21:27 2026 +0100

    Create a Google Vertex AI Sink Kamelet
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 docs/modules/ROOT/nav.adoc                         |  1 +
 kamelets/aws-redshift-sink.kamelet.yaml            |  2 +-
 kamelets/aws-redshift-source.kamelet.yaml          |  2 +-
 kamelets/google-vertexai-sink.kamelet.yaml         | 96 ++++++++++++++++++++++
 kamelets/postgresql-sink.kamelet.yaml              |  2 +-
 kamelets/postgresql-source.kamelet.yaml            |  2 +-
 .../kamelets/catalog/KameletsCatalogTest.java      |  2 +-
 .../kamelets/aws-redshift-sink.kamelet.yaml        |  2 +-
 .../kamelets/aws-redshift-source.kamelet.yaml      |  2 +-
 .../kamelets/google-vertexai-sink.kamelet.yaml     | 96 ++++++++++++++++++++++
 .../kamelets/postgresql-sink.kamelet.yaml          |  2 +-
 .../kamelets/postgresql-source.kamelet.yaml        |  2 +-
 12 files changed, 202 insertions(+), 9 deletions(-)

diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 7e7bea1de..62b60c6e1 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -101,6 +101,7 @@
 * xref:google-storage-event-based-source.adoc[]
 * xref:google-storage-sink.adoc[]
 * xref:google-storage-source.adoc[]
+* xref:google-vertexai-sink.adoc[]
 * xref:graphql-sink.adoc[]
 * xref:has-header-filter-action.adoc[]
 * xref:header-matches-filter-action.adoc[]
diff --git a/kamelets/aws-redshift-sink.kamelet.yaml 
b/kamelets/aws-redshift-sink.kamelet.yaml
index d2af0fca3..06aea8b01 100644
--- a/kamelets/aws-redshift-sink.kamelet.yaml
+++ b/kamelets/aws-redshift-sink.kamelet.yaml
@@ -78,7 +78,7 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:sql"
-  - "mvn:com.amazon.redshift:redshift-jdbc42:2.2.3"
+  - "mvn:com.amazon.redshift:redshift-jdbc42:2.2.4"
   - "mvn:org.apache.commons:commons-dbcp2:2.14.0"
   template:
     beans:
diff --git a/kamelets/aws-redshift-source.kamelet.yaml 
b/kamelets/aws-redshift-source.kamelet.yaml
index d00f769b4..ef4f32490 100644
--- a/kamelets/aws-redshift-source.kamelet.yaml
+++ b/kamelets/aws-redshift-source.kamelet.yaml
@@ -88,7 +88,7 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:sql"
-  - "mvn:com.amazon.redshift:redshift-jdbc42:2.2.3"
+  - "mvn:com.amazon.redshift:redshift-jdbc42:2.2.4"
   - "mvn:org.apache.commons:commons-dbcp2:2.14.0"
   template:
     beans:
diff --git a/kamelets/google-vertexai-sink.kamelet.yaml 
b/kamelets/google-vertexai-sink.kamelet.yaml
new file mode 100644
index 000000000..daa19b5ab
--- /dev/null
+++ b/kamelets/google-vertexai-sink.kamelet.yaml
@@ -0,0 +1,96 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+apiVersion: camel.apache.org/v1
+kind: Kamelet
+metadata:
+  name: google-vertexai-sink
+  annotations:
+    camel.apache.org/kamelet.support.level: "Preview"
+    camel.apache.org/catalog.version: "4.18.0-SNAPSHOT"
+    camel.apache.org/kamelet.icon: 
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjMxcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjMxIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0yNTIuOTI1ODU0LDEwMy4yMzcwNzcgTDIwMC4zMjczNDQsMTEuNzU5NjY3IEMxOTYuMzAyNTc5LDQuNjIyMjU3MDMgMTg4LjgwMD
 [...]
+    camel.apache.org/provider: "Apache Software Foundation"
+    camel.apache.org/kamelet.group: "Google Vertex AI"
+    camel.apache.org/kamelet.namespace: "GCP"
+  labels:
+    camel.apache.org/kamelet.type: "sink"
+spec:
+  definition:
+    title: "Google Vertex AI Sink"
+    description: Send data to Google Vertex AI for generating content with 
generative AI models.
+    required:
+      - projectId
+      - location
+      - modelId
+    type: object
+    properties:
+      projectId:
+        title: Google Cloud Project Id
+        description: The Google Cloud Project ID.
+        type: string
+      location:
+        title: Google Cloud Location
+        description: The Google Cloud region (e.g., us-central1).
+        type: string
+      modelId:
+        title: Model Id
+        description: The Model ID to use for predictions (e.g., 
gemini-2.5-pro).
+        type: string
+      serviceAccountKey:
+        title: Service Account Key
+        description: The service account key to use as credentials for the 
Vertex AI client. You must encode this value in base64.
+        type: binary
+        x-descriptors:
+        - urn:camel:group:credentials
+      operation:
+        title: Operation
+        description: The operation to perform.
+        type: string
+        default: generateText
+        enum: ["generateText", "generateChat", "generateImage", 
"generateEmbeddings", "generateCode", "generateMultimodal", "rawPredict"]
+      temperature:
+        title: Temperature
+        description: Controls randomness in generation. Lower values make 
output more deterministic. Range 0.0 to 1.0.
+        type: string
+      maxOutputTokens:
+        title: Max Output Tokens
+        description: Maximum number of tokens to generate in the response.
+        type: string
+      topP:
+        title: Top P
+        description: Nucleus sampling parameter. Considers tokens with top_p 
probability mass. Range 0.0 to 1.0.
+        type: string
+      topK:
+        title: Top K
+        description: Only sample from the top K options for each subsequent 
token.
+        type: string
+  dependencies:
+    - "camel:core"
+    - "camel:kamelet"
+    - "camel:google-vertexai"
+  template:
+    from:
+      uri: "kamelet:source"
+      steps:
+      - to:
+          uri: "google-vertexai:{{projectId}}:{{location}}:{{modelId}}"
+          parameters:
+            serviceAccountKey: "{{?serviceAccountKey}}"
+            operation: "{{operation}}"
+            temperature: "{{?temperature}}"
+            maxOutputTokens: "{{?maxOutputTokens}}"
+            topP: "{{?topP}}"
+            topK: "{{?topK}}"
diff --git a/kamelets/postgresql-sink.kamelet.yaml 
b/kamelets/postgresql-sink.kamelet.yaml
index ca310abd0..f7251469a 100644
--- a/kamelets/postgresql-sink.kamelet.yaml
+++ b/kamelets/postgresql-sink.kamelet.yaml
@@ -78,7 +78,7 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:sql"
-  - "mvn:org.postgresql:postgresql:42.7.9"
+  - "mvn:org.postgresql:postgresql:42.7.10"
   - "mvn:org.apache.commons:commons-dbcp2:2.14.0"
   template:
     beans:
diff --git a/kamelets/postgresql-source.kamelet.yaml 
b/kamelets/postgresql-source.kamelet.yaml
index 789d0d082..7cdf7f1c8 100644
--- a/kamelets/postgresql-source.kamelet.yaml
+++ b/kamelets/postgresql-source.kamelet.yaml
@@ -88,7 +88,7 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:sql"
-  - "mvn:org.postgresql:postgresql:42.7.9"
+  - "mvn:org.postgresql:postgresql:42.7.10"
   - "mvn:org.apache.commons:commons-dbcp2:2.14.0"
   template:
     beans:
diff --git 
a/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java
 
b/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java
index 5c2afd295..fe79189a2 100644
--- 
a/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java
+++ 
b/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java
@@ -193,7 +193,7 @@ public class KameletsCatalogTest {
         verifyHeaders("google-functions-sink", 5);
         verifyHeaders("google-mail-source", 6);
         verifyHeaders("google-pubsub-sink", 3);
-        verifyHeaders("google-pubsub-source", 5);
+        verifyHeaders("google-pubsub-source", 6);
         verifyHeaders("google-sheets-source", 6);
         verifyHeaders("google-storage-source", 21);
         verifyHeaders("google-storage-sink", 15);
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-sink.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-sink.kamelet.yaml
index be24935ad..06aea8b01 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-sink.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-sink.kamelet.yaml
@@ -78,7 +78,7 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:sql"
-  - "mvn:com.amazon.redshift:redshift-jdbc42:2.2.2"
+  - "mvn:com.amazon.redshift:redshift-jdbc42:2.2.4"
   - "mvn:org.apache.commons:commons-dbcp2:2.14.0"
   template:
     beans:
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-source.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-source.kamelet.yaml
index 51271e204..ef4f32490 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-source.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-source.kamelet.yaml
@@ -88,7 +88,7 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:sql"
-  - "mvn:com.amazon.redshift:redshift-jdbc42:2.2.2"
+  - "mvn:com.amazon.redshift:redshift-jdbc42:2.2.4"
   - "mvn:org.apache.commons:commons-dbcp2:2.14.0"
   template:
     beans:
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/google-vertexai-sink.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/google-vertexai-sink.kamelet.yaml
new file mode 100644
index 000000000..daa19b5ab
--- /dev/null
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/google-vertexai-sink.kamelet.yaml
@@ -0,0 +1,96 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+apiVersion: camel.apache.org/v1
+kind: Kamelet
+metadata:
+  name: google-vertexai-sink
+  annotations:
+    camel.apache.org/kamelet.support.level: "Preview"
+    camel.apache.org/catalog.version: "4.18.0-SNAPSHOT"
+    camel.apache.org/kamelet.icon: 
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjMxcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjMxIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0yNTIuOTI1ODU0LDEwMy4yMzcwNzcgTDIwMC4zMjczNDQsMTEuNzU5NjY3IEMxOTYuMzAyNTc5LDQuNjIyMjU3MDMgMTg4LjgwMD
 [...]
+    camel.apache.org/provider: "Apache Software Foundation"
+    camel.apache.org/kamelet.group: "Google Vertex AI"
+    camel.apache.org/kamelet.namespace: "GCP"
+  labels:
+    camel.apache.org/kamelet.type: "sink"
+spec:
+  definition:
+    title: "Google Vertex AI Sink"
+    description: Send data to Google Vertex AI for generating content with 
generative AI models.
+    required:
+      - projectId
+      - location
+      - modelId
+    type: object
+    properties:
+      projectId:
+        title: Google Cloud Project Id
+        description: The Google Cloud Project ID.
+        type: string
+      location:
+        title: Google Cloud Location
+        description: The Google Cloud region (e.g., us-central1).
+        type: string
+      modelId:
+        title: Model Id
+        description: The Model ID to use for predictions (e.g., 
gemini-2.5-pro).
+        type: string
+      serviceAccountKey:
+        title: Service Account Key
+        description: The service account key to use as credentials for the 
Vertex AI client. You must encode this value in base64.
+        type: binary
+        x-descriptors:
+        - urn:camel:group:credentials
+      operation:
+        title: Operation
+        description: The operation to perform.
+        type: string
+        default: generateText
+        enum: ["generateText", "generateChat", "generateImage", 
"generateEmbeddings", "generateCode", "generateMultimodal", "rawPredict"]
+      temperature:
+        title: Temperature
+        description: Controls randomness in generation. Lower values make 
output more deterministic. Range 0.0 to 1.0.
+        type: string
+      maxOutputTokens:
+        title: Max Output Tokens
+        description: Maximum number of tokens to generate in the response.
+        type: string
+      topP:
+        title: Top P
+        description: Nucleus sampling parameter. Considers tokens with top_p 
probability mass. Range 0.0 to 1.0.
+        type: string
+      topK:
+        title: Top K
+        description: Only sample from the top K options for each subsequent 
token.
+        type: string
+  dependencies:
+    - "camel:core"
+    - "camel:kamelet"
+    - "camel:google-vertexai"
+  template:
+    from:
+      uri: "kamelet:source"
+      steps:
+      - to:
+          uri: "google-vertexai:{{projectId}}:{{location}}:{{modelId}}"
+          parameters:
+            serviceAccountKey: "{{?serviceAccountKey}}"
+            operation: "{{operation}}"
+            temperature: "{{?temperature}}"
+            maxOutputTokens: "{{?maxOutputTokens}}"
+            topP: "{{?topP}}"
+            topK: "{{?topK}}"
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/postgresql-sink.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/postgresql-sink.kamelet.yaml
index ca310abd0..f7251469a 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/postgresql-sink.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/postgresql-sink.kamelet.yaml
@@ -78,7 +78,7 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:sql"
-  - "mvn:org.postgresql:postgresql:42.7.9"
+  - "mvn:org.postgresql:postgresql:42.7.10"
   - "mvn:org.apache.commons:commons-dbcp2:2.14.0"
   template:
     beans:
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/postgresql-source.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/postgresql-source.kamelet.yaml
index 789d0d082..7cdf7f1c8 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/postgresql-source.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/postgresql-source.kamelet.yaml
@@ -88,7 +88,7 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:sql"
-  - "mvn:org.postgresql:postgresql:42.7.9"
+  - "mvn:org.postgresql:postgresql:42.7.10"
   - "mvn:org.apache.commons:commons-dbcp2:2.14.0"
   template:
     beans:

Reply via email to