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:
