Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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[]
Expand Down
26 changes: 26 additions & 0 deletions docs/modules/ROOT/partials/google-vertexai-sink-description.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
== Google Vertex AI Sink Kamelet Description

=== Authentication

This Kamelet uses Google Cloud service account authentication. The service account key is optional - if not provided, the Kamelet will use Application Default Credentials (ADC).

If you provide a service account key, it must be base64-encoded. Ensure that the service account has the `aiplatform.endpoints.predict` permission (typically granted through the `Vertex AI User` role).

=== Required Configuration

- **Project ID**: The Google Cloud Project ID
- **Location**: The Google Cloud region where Vertex AI models are available (e.g., `us-central1`)
- **Model ID**: The model identifier to use for predictions (e.g., `gemini-2.5-pro`)

=== Optional Configuration

- **Service Account Key**: Base64-encoded service account credentials
- **Operation**: The operation to perform (default: `generateText`). Supported operations are `generateText`, `generateChat`, `generateImage`, `generateEmbeddings`, `generateCode`, `generateMultimodal`, and `rawPredict`
- **Temperature**: Controls randomness in generation (0.0 to 1.0)
- **Max Output Tokens**: Maximum number of tokens to generate in the response
- **Top P**: Nucleus sampling parameter (0.0 to 1.0)
- **Top K**: Only sample from the top K options for each subsequent token

=== Content Generation

The Kamelet sends the message body as a prompt to the specified Google Vertex AI model and returns the generated content. It supports Google native models (Gemini, Imagen) as well as partner models (Claude, Llama, Mistral) through the `rawPredict` operation.
2 changes: 1 addition & 1 deletion kamelets/aws-redshift-sink.kamelet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion kamelets/aws-redshift-source.kamelet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
96 changes: 96 additions & 0 deletions kamelets/google-vertexai-sink.kamelet.yaml
Original file line number Diff line number Diff line change
@@ -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,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjMxcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjMxIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0yNTIuOTI1ODU0LDEwMy4yMzcwNzcgTDIwMC4zMjczNDQsMTEuNzU5NjY3IEMxOTYuMzAyNTc5LDQuNjIyMjU3MDMgMTg4LjgwMDU0LDAuMTQ4NDI0NzI2IDE4MC42MDc5MDIsMCBMNzUuMzkwODgxNCwwIEM2Ny4xOTcwOTEyLDAuMTQ0Mzg1NDggNTkuNjkzMTk4NCw0LjYxOTMyMzYzIDU1LjY3MTQzOTgsMTEuNzU5NjY3IEwzLjA1MjkyOTg1LDEwMi45OTcwODMgQy0xLjAxNzY0MzI4LDExMC4wODAzNzMgLTEuMDE3NjQzMjgsMTE4Ljc5MzE0NiAzLjA1MjkyOTg1LDEyNS44NzY0MzYgTDU1LjY1MTQ0MDQsMjE3Ljg3MzgzIEM1OS42MzE5NzU1LDIyNS4xMTI3MDcgNjcuMTE1OTA1MiwyMjkuNzM1MTM0IDc1LjM3MDg4MiwyMzAuMDUzNDg2IEwxODAuNTg3OTAzLDIzMC4wNTM0ODYgQzE4OC44NDI0NDIsMjI5Ljc3MDE0NCAxOTYuMzM5ODA5LDIyNS4xNjY4OTYgMjAwLjMyNzM0NCwyMTcuOTMzODI5IEwyNTIuOTI1ODU0LDEyNi40NTY0MTkgQzI1Ny4wMjQ3MTUsMTE5LjI1OTMxMSAyNTcuMDI0NzE1LDExMC40MzQxODUgMjUyLjkyNTg1NCwxMDMuMjM3MDc3IFoiIGlkPSJwYXRoLTEiPjwvcGF0aD4KICAgIDwvZGVmcz4KCQk8Zz4KCQkJCTxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KCQkJCQkJPHVzZSB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KCQkJCTwvbWFzaz4KCQkJCTxnIGZpbGwtcnVsZT0ibm9uemVybyI+PC9nPgoJCQkJPHBhdGggZD0iTTI1Mi45MjU4NTQsMTAzLjIzNzA3NyBMMjAwLjMyNzM0NCwxMS43NTk2NjcgQzE5Ni4zMDI1NzksNC42MjIyNTcwMyAxODguODAwNTQsMC4xNDg0MjQ3MjYgMTgwLjYwNzkwMiwwIEw3NS4zOTA4ODE0LDAgQzY3LjE5NzA5MTIsMC4xNDQzODU0OCA1OS42OTMxOTg0LDQuNjE5MzIzNjMgNTUuNjcxNDM5OCwxMS43NTk2NjcgTDMuMDUyOTI5ODUsMTAyLjk5NzA4MyBDLTEuMDE3NjQzMjgsMTEwLjA4MDM3MyAtMS4wMTc2NDMyOCwxMTguNzkzMTQ2IDMuMDUyOTI5ODUsMTI1Ljg3NjQzNiBMNTUuNjUxNDQwNCwyMTcuODczODMgQzU5LjYzMTk3NTUsMjI1LjExMjcwNyA2Ny4xMTU5MDUyLDIyOS43MzUxMzQgNzUuMzcwODgyLDIzMC4wNTM0ODYgTDE4MC41ODc5MDMsMjMwLjA1MzQ4NiBDMTg4Ljg0MjQ0MiwyMjkuNzcwMTQ0IDE5Ni4zMzk4MDksMjI1LjE2Njg5NiAyMDAuMzI3MzQ0LDIxNy45MzM4MjkgTDI1Mi45MjU4NTQsMTI2LjQ1NjQxOSBDMjU3LjAyNDcxNSwxMTkuMjU5MzExIDI1Ny4wMjQ3MTUsMTEwLjQzNDE4NSAyNTIuOTI1ODU0LDEwMy4yMzcwNzcgWiIgZmlsbD0iIzQyODVGNCIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODcuMTY3NjA1LDg0LjczMTYwMyBMMTc5LjkxNTcxMSw5Mi42NDA5NDg1IEwxODEuNTQ5Mzc5LDEzOS42Mzg3OTcgTDE3NC42NzYwMTksMTQ5LjYwMDE5IEwxNzAuNjkxNDYyLDE0NS42MTU2MzMgTDE3NC4zNTcyNTQsMTQ1LjYxNTYzMyBMMTc0LjM1NzI1NCwxMjkuMzE4Nzk1IEwxNTYuNzY1NDM1LDExMS43MjY5NzYgTDE0My40Njg3NDYsMTE4LjM3MzA0NyBMOTkuMzY3ODkyOSw3NC4xNzI1MjcxIEw3OC4xMzAyMDQ1LDg1LjU0ODQzNzEgTDc1LjUwMDM5NywxMDcuNTgzMDM3IEw4Mi45NTE1MTg0LDE0Ny45MDY3NTMgTDkzLjc0OTY2NzcsMTU4LjQ4NTc1MiBMODguODI4NzM5OSwxNjUuNDc4NjQ5IEwxNTMuMDc2MDk4LDIzMS4yMzY4MTYgTDE3OS45MTU3MTEsMjMxLjIzNjgxNiBDMTg4LjEzODYxNCwyMzAuOTU0NTYgMTk3LjA0NDI3NiwyMjUuNTY1Njk4IDIwMS4wMTY1MjgsMjE4LjM2MDM1MiBMMjQ0Ljc5NTMzNiwxNDIuMzU2OTM0IEwxODcuMTY3NjA1LDg0LjczMTYwMyBaIiBmaWxsPSIjMDAwMDAwIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjAuMDcwMDAwMDAwMyIgbWFzaz0idXJsKCNtYXNrLTIpIj48L3BhdGg+CgkJCQk8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgcG9pbnRzPSI4OC44Mjg3Mzk5IDE2NS40Nzg2NDkgOTkuMzY3ODkyOSAxNTQuOTM5NDk2IDgzLjU2OTEyNDcgMTM5LjE0MDcyOCA4My41NjkxMjQ3IDg5Ljk3MTI5NTMgOTkuMzY3ODkyOSA3NC4xNzI1MjcxIDg4LjgyODczOTkgNjMuNjMzMzc0MSA2Ny43MzA1MTEgODQuNzMxNjAzIDY3LjczMDUxMSAxNDQuMzgwNDIiPjwvcG9seWdvbj4KCQkJCTxjaXJjbGUgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiIGN4PSIxMDUuMTQ1NSIgY3k9IjExNC41NTYwMTIiIHI9IjcuNDcxMDQ0MjMiPjwvY2lyY2xlPgoJCQkJPGNpcmNsZSBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgY3g9IjEyNy40OTg4NjUiIGN5PSIxMTQuNTU2MDEyIiByPSI3LjQ3MTA0NDIzIj48L2NpcmNsZT4KCQkJCTxjaXJjbGUgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiIGN4PSIxNDkuODUyMjI5IiBjeT0iMTE0LjU1NjAxMiIgcj0iNy40NzEwNDQyMyI+PC9jaXJjbGU+CgkJCQk8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgcG9pbnRzPSIxNjYuMDY5Mzc2IDYzLjYzMzM3NDEgMTU1LjUzMDIyMyA3NC4xNzI1MjcxIDE3MS4zMjg5OTEgODkuOTcxMjk1MyAxNzEuMzI4OTkxIDEzOS4xNDA3MjggMTU1LjUzMDIyMyAxNTQuOTM5NDk2IDE2Ni4wNjkzNzYgMTY1LjQ3ODY0OSAxODcuMTY3NjA1IDE0NC4zODA0MiAxODcuMTY3NjA1IDg0LjczMTYwMyI+PC9wb2x5Z29uPgoJCTwvZz4KPC9zdmc+Cg=="
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}}"
2 changes: 1 addition & 1 deletion kamelets/postgresql-sink.kamelet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion kamelets/postgresql-source.kamelet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ void testSupportedHeaders() throws Exception {
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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
@@ -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,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjMxcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjMxIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0yNTIuOTI1ODU0LDEwMy4yMzcwNzcgTDIwMC4zMjczNDQsMTEuNzU5NjY3IEMxOTYuMzAyNTc5LDQuNjIyMjU3MDMgMTg4LjgwMDU0LDAuMTQ4NDI0NzI2IDE4MC42MDc5MDIsMCBMNzUuMzkwODgxNCwwIEM2Ny4xOTcwOTEyLDAuMTQ0Mzg1NDggNTkuNjkzMTk4NCw0LjYxOTMyMzYzIDU1LjY3MTQzOTgsMTEuNzU5NjY3IEwzLjA1MjkyOTg1LDEwMi45OTcwODMgQy0xLjAxNzY0MzI4LDExMC4wODAzNzMgLTEuMDE3NjQzMjgsMTE4Ljc5MzE0NiAzLjA1MjkyOTg1LDEyNS44NzY0MzYgTDU1LjY1MTQ0MDQsMjE3Ljg3MzgzIEM1OS42MzE5NzU1LDIyNS4xMTI3MDcgNjcuMTE1OTA1MiwyMjkuNzM1MTM0IDc1LjM3MDg4MiwyMzAuMDUzNDg2IEwxODAuNTg3OTAzLDIzMC4wNTM0ODYgQzE4OC44NDI0NDIsMjI5Ljc3MDE0NCAxOTYuMzM5ODA5LDIyNS4xNjY4OTYgMjAwLjMyNzM0NCwyMTcuOTMzODI5IEwyNTIuOTI1ODU0LDEyNi40NTY0MTkgQzI1Ny4wMjQ3MTUsMTE5LjI1OTMxMSAyNTcuMDI0NzE1LDExMC40MzQxODUgMjUyLjkyNTg1NCwxMDMuMjM3MDc3IFoiIGlkPSJwYXRoLTEiPjwvcGF0aD4KICAgIDwvZGVmcz4KCQk8Zz4KCQkJCTxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KCQkJCQkJPHVzZSB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KCQkJCTwvbWFzaz4KCQkJCTxnIGZpbGwtcnVsZT0ibm9uemVybyI+PC9nPgoJCQkJPHBhdGggZD0iTTI1Mi45MjU4NTQsMTAzLjIzNzA3NyBMMjAwLjMyNzM0NCwxMS43NTk2NjcgQzE5Ni4zMDI1NzksNC42MjIyNTcwMyAxODguODAwNTQsMC4xNDg0MjQ3MjYgMTgwLjYwNzkwMiwwIEw3NS4zOTA4ODE0LDAgQzY3LjE5NzA5MTIsMC4xNDQzODU0OCA1OS42OTMxOTg0LDQuNjE5MzIzNjMgNTUuNjcxNDM5OCwxMS43NTk2NjcgTDMuMDUyOTI5ODUsMTAyLjk5NzA4MyBDLTEuMDE3NjQzMjgsMTEwLjA4MDM3MyAtMS4wMTc2NDMyOCwxMTguNzkzMTQ2IDMuMDUyOTI5ODUsMTI1Ljg3NjQzNiBMNTUuNjUxNDQwNCwyMTcuODczODMgQzU5LjYzMTk3NTUsMjI1LjExMjcwNyA2Ny4xMTU5MDUyLDIyOS43MzUxMzQgNzUuMzcwODgyLDIzMC4wNTM0ODYgTDE4MC41ODc5MDMsMjMwLjA1MzQ4NiBDMTg4Ljg0MjQ0MiwyMjkuNzcwMTQ0IDE5Ni4zMzk4MDksMjI1LjE2Njg5NiAyMDAuMzI3MzQ0LDIxNy45MzM4MjkgTDI1Mi45MjU4NTQsMTI2LjQ1NjQxOSBDMjU3LjAyNDcxNSwxMTkuMjU5MzExIDI1Ny4wMjQ3MTUsMTEwLjQzNDE4NSAyNTIuOTI1ODU0LDEwMy4yMzcwNzcgWiIgZmlsbD0iIzQyODVGNCIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4KCQkJCTxwYXRoIGQ9Ik0xODcuMTY3NjA1LDg0LjczMTYwMyBMMTc5LjkxNTcxMSw5Mi42NDA5NDg1IEwxODEuNTQ5Mzc5LDEzOS42Mzg3OTcgTDE3NC42NzYwMTksMTQ5LjYwMDE5IEwxNzAuNjkxNDYyLDE0NS42MTU2MzMgTDE3NC4zNTcyNTQsMTQ1LjYxNTYzMyBMMTc0LjM1NzI1NCwxMjkuMzE4Nzk1IEwxNTYuNzY1NDM1LDExMS43MjY5NzYgTDE0My40Njg3NDYsMTE4LjM3MzA0NyBMOTkuMzY3ODkyOSw3NC4xNzI1MjcxIEw3OC4xMzAyMDQ1LDg1LjU0ODQzNzEgTDc1LjUwMDM5NywxMDcuNTgzMDM3IEw4Mi45NTE1MTg0LDE0Ny45MDY3NTMgTDkzLjc0OTY2NzcsMTU4LjQ4NTc1MiBMODguODI4NzM5OSwxNjUuNDc4NjQ5IEwxNTMuMDc2MDk4LDIzMS4yMzY4MTYgTDE3OS45MTU3MTEsMjMxLjIzNjgxNiBDMTg4LjEzODYxNCwyMzAuOTU0NTYgMTk3LjA0NDI3NiwyMjUuNTY1Njk4IDIwMS4wMTY1MjgsMjE4LjM2MDM1MiBMMjQ0Ljc5NTMzNiwxNDIuMzU2OTM0IEwxODcuMTY3NjA1LDg0LjczMTYwMyBaIiBmaWxsPSIjMDAwMDAwIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjAuMDcwMDAwMDAwMyIgbWFzaz0idXJsKCNtYXNrLTIpIj48L3BhdGg+CgkJCQk8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgcG9pbnRzPSI4OC44Mjg3Mzk5IDE2NS40Nzg2NDkgOTkuMzY3ODkyOSAxNTQuOTM5NDk2IDgzLjU2OTEyNDcgMTM5LjE0MDcyOCA4My41NjkxMjQ3IDg5Ljk3MTI5NTMgOTkuMzY3ODkyOSA3NC4xNzI1MjcxIDg4LjgyODczOTkgNjMuNjMzMzc0MSA2Ny43MzA1MTEgODQuNzMxNjAzIDY3LjczMDUxMSAxNDQuMzgwNDIiPjwvcG9seWdvbj4KCQkJCTxjaXJjbGUgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiIGN4PSIxMDUuMTQ1NSIgY3k9IjExNC41NTYwMTIiIHI9IjcuNDcxMDQ0MjMiPjwvY2lyY2xlPgoJCQkJPGNpcmNsZSBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgY3g9IjEyNy40OTg4NjUiIGN5PSIxMTQuNTU2MDEyIiByPSI3LjQ3MTA0NDIzIj48L2NpcmNsZT4KCQkJCTxjaXJjbGUgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI21hc2stMikiIGN4PSIxNDkuODUyMjI5IiBjeT0iMTE0LjU1NjAxMiIgcj0iNy40NzEwNDQyMyI+PC9jaXJjbGU+CgkJCQk8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgcG9pbnRzPSIxNjYuMDY5Mzc2IDYzLjYzMzM3NDEgMTU1LjUzMDIyMyA3NC4xNzI1MjcxIDE3MS4zMjg5OTEgODkuOTcxMjk1MyAxNzEuMzI4OTkxIDEzOS4xNDA3MjggMTU1LjUzMDIyMyAxNTQuOTM5NDk2IDE2Ni4wNjkzNzYgMTY1LjQ3ODY0OSAxODcuMTY3NjA1IDE0NC4zODA0MiAxODcuMTY3NjA1IDg0LjczMTYwMyI+PC9wb2x5Z29uPgoJCTwvZz4KPC9zdmc+Cg=="
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}}"
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Loading