---
title: Google Vertex AI
slug: connectors/google-vertex-ai
docTags: 
createdAt: 2026-06-09T16:30:20.381Z
---

Google Vertex AI is a machine learning platform that simplifies the process of building, deploying, and scaling ML models.

Google Vertex AI is a comprehensive AI platform that enables the development and deployment of machine learning models at scale. This connector allows Swimlane Turbine users to leverage Google Vertex AI's advanced capabilities for interacting with AI models, engaging in conversations, and querying reasoning engines. By integrating with Google Vertex AI, Swimlane Turbine users can enhance their security automation workflows with powerful AI-driven insights and actions, enabling more efficient threat detection and response.

### Limitations

- None to date.

### Supported Versions

- This Google Vertex AI connector uses the v1 API.

### Additional Documents

- Documentation [Google Vertex AI](https://docs.cloud.google.com/vertex-ai/docs/reference)

## Configuration

### Prerequisites

Before you can use the Google Vertex AI connector for Turbine, you'll need access to the Google Vertex AI API. This requires the following:

- OAuth2.0 authentication using the following parameters:
  - Service Account Info: JSON key file for service account authentication.
  - URL: Endpoint URL for accessing Google Vertex AI services.
  - Scopes: Permissions required for accessing specific Google Cloud resources.

## Authentication Methods

- Service Account Info: Base64-encoded JSON key file for service account authentication.
- URL: Endpoint URL for accessing Google Vertex AI services.
- Scopes: Permissions required for accessing specific resources within Google Vertex AI.

**Setup instructions**

1. In Google Cloud, enable the Vertex AI API for your project.
2. Create or select a service account that can invoke Vertex AI reasoning engine endpoints.
3. Generate a JSON key for that service account.
4. Base64 encode the full JSON key file and use that value for **Service Account Info**.
   - Example: `base64 -i service-account.json | tr -d '\n'`
5. Set **URL** to your Vertex AI base endpoint, for example:
   - `https://us-central1-aiplatform.googleapis.com`
6. Set **Scopes** with at least:
   - `https://www.googleapis.com/auth/cloud-platform`

If authentication fails, verify the service account roles, decoded JSON validity, endpoint region, and scope list.

## Capabilities

This Connector provides the following capabilities:

- Ask Vertex
- Chat with Claude using Vertex AI
- Reasoning Engines Query
- Reasoning Engines Stream Query

### Reasoning Engines Query

- Queries using a reasoning engine [Click Here](https://docs.cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.reasoningEngines/query)

### Reasoning Engines Stream Query

- Streams queries using a reasoning engine [Click Here](https://docs.cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.reasoningEngines/streamQuery).

### Ask Vertex

- Ask Vertex is a tool that allows you to ask questions to a model [Click Here](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/projects.locations.publishers.models/generateContent).

# Configurations

## Google Vertex AI

OAuth2.0 authentication for Google Vertex AI.

### Configuration Parameters

| **Parameter**      | **Description**                                                   | **Type** | **Required** |
| ------------------ | ----------------------------------------------------------------- | -------- | ------------ |
| b64\_service\_info | Base64-encoded bk\_credentials JSON authentication file contents. | string   | Required     |
| url                | Server API Address.                                               | string   | Required     |
| scopes             | Scope to be used for authentication.                              | array    | Required     |
| verify\_ssl        | Verify SSL certificate                                            | boolean  | Optional     |
| http\_proxy        | A proxy to route requests through.                                | string   | Optional     |

# Actions

## Ask Vertex

Interact with a Google Vertex AI model by asking questions. Requires project, location, and model as path parameters, and contents in the JSON body.

### Endpoint

- **URL:** `v1/projects/{{project}}/locations/{{location}}/publishers/google/models/{{model}}:generateContent`
- **Method:** `POST`

### Input

| **Argument Name**                        | **Type** | **Required** | **Description**                       |
| ---------------------------------------- | -------- | ------------ | ------------------------------------- |
| `path_parameters.project`                | string   | Required     | The project ID of the project to use. |
| `path_parameters.location`               | string   | Required     | The location of the project to use.   |
| `path_parameters.model`                  | string   | Required     | The model to use.                     |
| `contents`                               | array    | Optional     | Response content                      |
| `contents.role`                          | string   | Optional     | Response content                      |
| `contents.parts`                         | array    | Optional     | Response content                      |
| `contents.parts.text`                    | string   | Optional     | Response content                      |
| `cachedContent`                          | string   | Optional     | Response content                      |
| `tools`                                  | array    | Optional     | Parameter for Ask Vertex              |
| `tools.functionDeclarations`             | object   | Optional     | Parameter for Ask Vertex              |
| `tools.functionDeclarations.name`        | string   | Optional     | Name of the resource                  |
| `tools.functionDeclarations.description` | string   | Optional     | Parameter for Ask Vertex              |
| `toolConfig`                             | object   | Optional     | Parameter for Ask Vertex              |
| `toolConfig.functionCallingConfig`       | object   | Optional     | Parameter for Ask Vertex              |
| `toolConfig.retrievalConfig`             | object   | Optional     | Parameter for Ask Vertex              |
| `labels`                                 | object   | Optional     | Parameter for Ask Vertex              |
| `labels.key`                             | string   | Optional     | Parameter for Ask Vertex              |
| `safetySettings`                         | array    | Optional     | Parameter for Ask Vertex              |
| `safetySettings.category`                | string   | Optional     | Parameter for Ask Vertex              |
| `safetySettings.method`                  | string   | Optional     | HTTP method to use                    |
| `safetySettings.threshold`               | string   | Optional     | Parameter for Ask Vertex              |
| `modelArmorConfig`                       | object   | Optional     | Parameter for Ask Vertex              |
| `modelArmorConfig.promptTemplateName`    | string   | Optional     | Name of the resource                  |
| `modelArmorConfig.responseTemplateName`  | string   | Optional     | Name of the resource                  |
| `generationConfig`                       | object   | Optional     | Parameter for Ask Vertex              |

### Input Example

`{"json_body":{"contents":[{"role":"user","parts":[{"text":"What is the capital of France?"}]}],"cachedContent":"projects/{project}/locations/{location}/cachedContents/{cachedContent}","tools":[{"functionDeclarations":{"name":"get_current_weather","description":"Get the current weather for a given location"}}],"toolConfig":{"functionCallingConfig":{},"retrievalConfig":{}},"labels":{"key":"value"},"safetySettings":[{"category":"HARM_CATEGORY_HATE_SPEECH","method":"HARM_BLOCK_METHOD_UNSPECIFIED","threshold":"HARM_BLOCK_THRESHOLD_UNSPECIFIED"}],"modelArmorConfig":{"promptTemplateName":"","responseTemplateName":""},"generationConfig":{"temperature":0.7,"maxOutputTokens":1024},"systemInstruction":{}},"path_parameters":{"project":"project-8bb1fbea-bfe5-4ef6-a06","location":"us-central1","model":"gemini-2.5-flash"}}`

### Output

| **Parameter**                                      | **Type** | **Description**                  |
| -------------------------------------------------- | -------- | -------------------------------- |
| `status_code`                                      | number   | HTTP status code of the response |
| `reason`                                           | string   | Response reason phrase           |
| `candidates`                                       | array    | Unique identifier                |
| `candidates.content`                               | object   | Unique identifier                |
| `candidates.content.role`                          | string   | Unique identifier                |
| `candidates.content.parts`                         | array    | Unique identifier                |
| `candidates.content.parts.text`                    | string   | Unique identifier                |
| `candidates.finishReason`                          | string   | Unique identifier                |
| `candidates.avgLogprobs`                           | number   | Unique identifier                |
| `usageMetadata`                                    | object   | Response data                    |
| `usageMetadata.promptTokenCount`                   | number   | Response data                    |
| `usageMetadata.candidatesTokenCount`               | number   | Response data                    |
| `usageMetadata.totalTokenCount`                    | number   | Response data                    |
| `usageMetadata.trafficType`                        | string   | Response data                    |
| `usageMetadata.promptTokensDetails`                | array    | Response data                    |
| `usageMetadata.promptTokensDetails.modality`       | string   | Response data                    |
| `usageMetadata.promptTokensDetails.tokenCount`     | number   | Response data                    |
| `usageMetadata.candidatesTokensDetails`            | array    | Response data                    |
| `usageMetadata.candidatesTokensDetails.modality`   | string   | Response data                    |
| `usageMetadata.candidatesTokensDetails.tokenCount` | number   | Response data                    |
| `usageMetadata.thoughtsTokenCount`                 | number   | Response data                    |
| `modelVersion`                                     | string   | Output field: modelVersion       |
| `createTime`                                       | string   | Time value                       |
| `responseId`                                       | string   | Unique identifier                |

### Output Example

`{"status_code":200,"response_headers":{"Content-Type":"application/json; charset=UTF-8","Vary":"Origin, X-Origin, Referer","Content-Encoding":"gzip","Date":"Wed, 29 Apr 2026 07:09:08 GMT","Server":"scaffolding on HTTPServer2","X-XSS-Protection":"0","X-Frame-Options":"SAMEORIGIN","X-Content-Type-Options":"nosniff","Alt-Svc":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000","Transfer-Encoding":"chunked"},"reason":"OK","json_body":{"candidates":[{}],"usageMetadata":{"promptTokenCount":7,"candida...`

## Chat with Claude using Vertex AI

Engage in a conversation with Claude using Google Vertex AI. Requires project, location, and model as path parameters, and anthropic\_version, messages, and max\_tokens in the JSON body.

### Endpoint

- **URL:** `v1/projects/{{project}}/locations/{{location}}/publishers/anthropic/models/{{model}}:rawPredict`
- **Method:** `POST`

### Input

| **Argument Name**          | **Type** | **Required** | **Description**                            |
| -------------------------- | -------- | ------------ | ------------------------------------------ |
| `path_parameters.project`  | string   | Required     | The project ID of the project to use.      |
| `path_parameters.location` | string   | Required     | The location of the project to use.        |
| `path_parameters.model`    | string   | Required     | The model to use.                          |
| `anthropic_version`        | string   | Optional     | The version of the Anthropic API to use.   |
| `messages`                 | array    | Optional     | The messages to send to the model.         |
| `messages.role`            | string   | Required     | The role of the message.                   |
| `messages.content`         | string   | Required     | The content of the message.                |
| `max_tokens`               | number   | Optional     | The maximum number of tokens to generate.  |
| `temperature`              | number   | Optional     | The temperature to use for the generation. |

### Input Example

`{"json_body":{"anthropic_version":"vertex-2023-10-16","messages":[{"role":"user","content":"Hello, how are you?"}],"max_tokens":1024,"temperature":0.7},"path_parameters":{"project":"project-8bb1fbea-bfe5-4ef6-a06","location":"global","model":"claude-sonnet-4-6"}}`

### Output

| **Parameter** | **Type** | **Description**                  |
| ------------- | -------- | -------------------------------- |
| `status_code` | number   | HTTP status code of the response |
| `reason`      | string   | Response reason phrase           |

### Output Example

`{"status_code":200,"response_headers":{"Content-Type":"application/json; charset=UTF-8","Vary":"Origin, X-Origin, Referer","Content-Encoding":"gzip","Date":"Tue, 28 Apr 2026 07:43:52 GMT","Server":"scaffolding on HTTPServer2","X-XSS-Protection":"0","X-Frame-Options":"SAMEORIGIN","X-Content-Type-Options":"nosniff","Alt-Svc":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000","Transfer-Encoding":"chunked"},"reason":"OK","json_body":{}}`

## Reasoning Engines Query

Query a reasoning engine in Google Vertex AI using specified project, location, and reasoning engine path parameters.

### Endpoint

- **URL:** `v1/projects/{{project}}/locations/{{location}}/reasoningEngines/{{reasoningEngine}}:query`
- **Method:** `POST`

### Input

| **Argument Name**                 | **Type** | **Required** | **Description**                  |
| --------------------------------- | -------- | ------------ | -------------------------------- |
| `path_parameters.project`         | string   | Required     | The project ID.                  |
| `path_parameters.location`        | string   | Required     | The location of the project.     |
| `path_parameters.reasoningEngine` | string   | Required     | The reasoning engine ID.         |
| `classMethod`                     | string   | Optional     | The method to call on the class. |
| `input`                           | object   | Optional     | Input data for the action        |
| `input.input`                     | object   | Optional     | Input data for the action        |
| `input.input.text`                | string   | Optional     | The text to query.               |

### Input Example

`{"path_parameters":{"project":"project-8bb1fbea-bfe5-4ef6-a06","location":"us-central1","reasoningEngine":"8068625892701634560"}}`

### Output

| **Parameter**   | **Type** | **Description**                  |
| --------------- | -------- | -------------------------------- |
| `status_code`   | number   | HTTP status code of the response |
| `reason`        | string   | Response reason phrase           |
| `output`        | object   | Output field: output             |
| `output.result` | number   | Result of the operation          |

### Output Example

`{"status_code":200,"response_headers":{"Content-Type":"application/json; charset=UTF-8","Vary":"Origin, X-Origin, Referer","Content-Encoding":"gzip","Date":"Tue, 28 Apr 2026 07:43:52 GMT","Server":"scaffolding on HTTPServer2","X-XSS-Protection":"0","X-Frame-Options":"SAMEORIGIN","X-Content-Type-Options":"nosniff","Alt-Svc":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000","Transfer-Encoding":"chunked"},"reason":"OK","json_body":{"output":{"result":12}}}`

## Reasoning Engines Stream Query

Stream queries using a reasoning engine in Google Vertex AI. Requires path parameters: project, location, and reasoningEngine.

### Endpoint

- **URL:** `v1/projects/{{project}}/locations/{{location}}/reasoningEngines/{{reasoningEngine}}:streamQuery`
- **Method:** `POST`

### Input

| **Argument Name**                 | **Type** | **Required** | **Description**                  |
| --------------------------------- | -------- | ------------ | -------------------------------- |
| `path_parameters.project`         | string   | Required     | The project ID.                  |
| `path_parameters.location`        | string   | Required     | The location of the project.     |
| `path_parameters.reasoningEngine` | string   | Required     | The reasoning engine ID.         |
| `classMethod`                     | string   | Optional     | The method to call on the class. |
| `input`                           | object   | Optional     | Input data for the action        |
| `input.input`                     | object   | Optional     | The input to the method.         |
| `input.input.text`                | string   | Optional     | The text to query.               |

### Input Example

`{"path_parameters":{"project":"project-8bb1fbea-bfe5-4ef6-a06","location":"us-central1","reasoningEngine":"2751000632683921408"}}`

### Output

| **Parameter**   | **Type** | **Description**                  |
| --------------- | -------- | -------------------------------- |
| `status_code`   | number   | HTTP status code of the response |
| `reason`        | string   | Response reason phrase           |
| `output`        | object   | Output field: output             |
| `output.result` | number   | Result of the operation          |

### Output Example

`{"status_code":200,"response_headers":{"Content-Type":"application/json; charset=UTF-8","Vary":"Origin, X-Origin, Referer","Content-Encoding":"gzip","Date":"Tue, 28 Apr 2026 07:43:52 GMT","Server":"scaffolding on HTTPServer2","X-XSS-Protection":"0","X-Frame-Options":"SAMEORIGIN","X-Content-Type-Options":"nosniff","Alt-Svc":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000","Transfer-Encoding":"chunked"},"reason":"OK","json_body":{"output":{"result":12}}}`

# Response Headers

| **Header**             | **Description**                                          | **Example**                                    |
| ---------------------- | -------------------------------------------------------- | ---------------------------------------------- |
| Alt-Svc                | HTTP response header: Alt-Svc                            | h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 |
| Content-Encoding       | HTTP response header: Content-Encoding                   | gzip                                           |
| Content-Type           | The media type of the resource                           | application/json; charset=UTF-8                |
| Date                   | The date and time at which the message was originated    | Wed, 29 Apr 2026 07:09:08 GMT                  |
| Server                 | Information about the software used by the origin server | scaffolding on HTTPServer2                     |
| Transfer-Encoding      | HTTP response header: Transfer-Encoding                  | chunked                                        |
| Vary                   | HTTP response header: Vary                               | Origin, X-Origin, Referer                      |
| X-Content-Type-Options | HTTP response header: X-Content-Type-Options             | nosniff                                        |
| X-Frame-Options        | HTTP response header: X-Frame-Options                    | SAMEORIGIN                                     |
| X-XSS-Protection       | HTTP response header: X-XSS-Protection                   | 0                                              |
