MCP Tools Reference: ces.googleapis.com

Tool: get_app_version

Gets details of the specified app version.

The following sample demonstrate how to use curl to invoke the get_app_version MCP tool.

Curl Request
                  
curl --location 'https://ces.[REGION].rep.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "get_app_version",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request message for AgentService.GetAppVersion.

GetAppVersionRequest

JSON representation
{
  "name": string
}
Fields
name

string

Required. The resource name of the app version to retrieve.

Output Schema

In Customer Engagement Suite (CES), an app version is a snapshot of the app at a specific point in time. It is immutable and cannot be modified once created.

AppVersion

JSON representation
{
  "name": string,
  "displayName": string,
  "description": string,
  "creator": string,
  "createTime": string,
  "snapshot": {
    object (AppSnapshot)
  },
  "etag": string
}
Fields
name

string

Identifier. The unique identifier of the app version. Format: projects/{project}/locations/{location}/apps/{app}/versions/{version}

displayName

string

Optional. The display name of the app version.

description

string

Optional. The description of the app version.

creator

string

Output only. Email of the user who created the app version.

createTime

string (Timestamp format)

Output only. Timestamp when the app version was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

snapshot

object (AppSnapshot)

Output only. The snapshot of the app when the version is created.

etag

string

Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).

nanos

integer

Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive.

AppSnapshot

JSON representation
{
  "app": {
    object (App)
  },
  "agents": [
    {
      object (Agent)
    }
  ],
  "tools": [
    {
      object (Tool)
    }
  ],
  "examples": [
    {
      object (Example)
    }
  ],
  "guardrails": [
    {
      object (Guardrail)
    }
  ],
  "toolsets": [
    {
      object (Toolset)
    }
  ]
}
Fields
app

object (App)

Optional. The basic settings for the app.

agents[]

object (Agent)

Optional. List of agents in the app.

tools[]

object (Tool)

Optional. List of tools in the app.

examples[]

object (Example)

Optional. List of examples in the app.

guardrails[]

object (Guardrail)

Optional. List of guardrails in the app.

toolsets[]

object (Toolset)

Optional. List of toolsets in the app.

App

JSON representation
{
  "name": string,
  "displayName": string,
  "description": string,
  "pinned": boolean,
  "rootAgent": string,
  "languageSettings": {
    object (LanguageSettings)
  },
  "timeZoneSettings": {
    object (TimeZoneSettings)
  },
  "audioProcessingConfig": {
    object (AudioProcessingConfig)
  },
  "loggingSettings": {
    object (LoggingSettings)
  },
  "errorHandlingSettings": {
    object (ErrorHandlingSettings)
  },
  "modelSettings": {
    object (ModelSettings)
  },
  "toolExecutionMode": enum (ToolExecutionMode),
  "evaluationMetricsThresholds": {
    object (EvaluationMetricsThresholds)
  },
  "variableDeclarations": [
    {
      object (VariableDeclaration)
    }
  ],
  "predefinedVariableDeclarations": [
    {
      object (VariableDeclaration)
    }
  ],
  "globalInstruction": string,
  "guardrails": [
    string
  ],
  "dataStoreSettings": {
    object (DataStoreSettings)
  },
  "defaultChannelProfile": {
    object (ChannelProfile)
  },
  "metadata": {
    string: string,
    ...
  },
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "deploymentCount": integer,
  "clientCertificateSettings": {
    object (ClientCertificateSettings)
  },
  "locked": boolean
}
Fields
name

string

Identifier. The unique identifier of the app. Format: projects/{project}/locations/{location}/apps/{app}

displayName

string

Required. Display name of the app.

description

string

Optional. Human-readable description of the app.

pinned

boolean

Optional. Whether the app is pinned in the app list.

rootAgent

string

Optional. The root agent is the entry point of the app. Format: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

languageSettings

object (LanguageSettings)

Optional. Language settings of the app.

timeZoneSettings

object (TimeZoneSettings)

Optional. TimeZone settings of the app.

audioProcessingConfig

object (AudioProcessingConfig)

Optional. Audio processing configuration of the app.

loggingSettings

object (LoggingSettings)

Optional. Logging settings of the app.

errorHandlingSettings

object (ErrorHandlingSettings)

Optional. Error handling settings of the app.

modelSettings

object (ModelSettings)

Optional. The default LLM model settings for the app. Individual resources (e.g. agents, guardrails) can override these configurations as needed.

toolExecutionMode

enum (ToolExecutionMode)

Optional. The tool execution mode for the app. If not provided, will default to PARALLEL.

evaluationMetricsThresholds

object (EvaluationMetricsThresholds)

Optional. The evaluation thresholds for the app.

variableDeclarations[]

object (VariableDeclaration)

Optional. The declarations of the variables.

predefinedVariableDeclarations[]

object (VariableDeclaration)

Output only. The declarations of predefined variables for the app.

globalInstruction

string

Optional. Instructions for all the agents in the app. You can use this instruction to set up a stable identity or personality across all the agents.

guardrails[]

string

Optional. List of guardrails for the app. Format: projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

dataStoreSettings

object (DataStoreSettings)

Optional. The data store settings for the app.

defaultChannelProfile

object (ChannelProfile)

Optional. The default channel profile used by the app.

metadata

map (key: string, value: string)

Optional. Metadata about the app. This field can be used to store additional information relevant to the app's details or intended usages.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

string (Timestamp format)

Output only. Timestamp when the app was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when the app was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

etag

string

Output only. Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

deploymentCount

integer

Output only. Number of deployments in the app.

clientCertificateSettings

object (ClientCertificateSettings)

Optional. The default client certificate settings for the app.

locked

boolean

Optional. Indicates whether the app is locked for changes. If the app is locked, modifications to the app resources will be rejected.

LanguageSettings

JSON representation
{
  "defaultLanguageCode": string,
  "supportedLanguageCodes": [
    string
  ],
  "enableMultilingualSupport": boolean,
  "fallbackAction": string
}
Fields
defaultLanguageCode

string

Optional. The default language code of the app.

supportedLanguageCodes[]

string

Optional. List of languages codes supported by the app, in addition to the default_language_code.

enableMultilingualSupport

boolean

Optional. Enables multilingual support. If true, agents in the app will use pre-built instructions to improve handling of multilingual input.

fallbackAction

string

Optional. The action to perform when an agent receives input in an unsupported language.

This can be a predefined action or a custom tool call. Valid values are: - A tool's full resource name, which triggers a specific tool execution. - A predefined system action, such as "escalate" or "exit", which triggers an EndSession signal with corresponding metadata to terminate the conversation.

TimeZoneSettings

JSON representation
{
  "timeZone": string
}
Fields
timeZone

string

Optional. The time zone of the app from the time zone database, e.g., America/Los_Angeles, Europe/Paris.

AudioProcessingConfig

JSON representation
{
  "synthesizeSpeechConfigs": {
    string: {
      object (SynthesizeSpeechConfig)
    },
    ...
  },
  "bargeInConfig": {
    object (BargeInConfig)
  },
  "inactivityTimeout": string,
  "ambientSoundConfig": {
    object (AmbientSoundConfig)
  }
}
Fields
synthesizeSpeechConfigs

map (key: string, value: object (SynthesizeSpeechConfig))

Optional. Configuration of how the agent response should be synthesized, mapping from the language code to SynthesizeSpeechConfig.

If the configuration for the specified language code is not found, the configuration for the root language code will be used. For example, if the map contains "en-us" and "en", and the specified language code is "en-gb", then "en" configuration will be used.

Note: Language code is case-insensitive.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

bargeInConfig

object (BargeInConfig)

Optional. Configures the agent behavior for the user barge-in activities.

inactivityTimeout

string (Duration format)

Optional. The duration of user inactivity (no speech or interaction) before the agent prompts the user for reengagement. If not set, the agent will not prompt the user for reengagement.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

ambientSoundConfig

object (AmbientSoundConfig)

Optional. Configuration for the ambient sound to be played with the synthesized agent response, to enhance the naturalness of the conversation.

SynthesizeSpeechConfigsEntry

JSON representation
{
  "key": string,
  "value": {
    object (SynthesizeSpeechConfig)
  }
}
Fields
key

string

value

object (SynthesizeSpeechConfig)

SynthesizeSpeechConfig

JSON representation
{
  "voice": string,
  "speakingRate": number
}
Fields
voice

string

Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code.

For the list of available voices, please refer to Supported voices and languages from Cloud Text-to-Speech.

speakingRate

number

Optional. The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0] will return an error.

BargeInConfig

JSON representation
{
  "disableBargeIn": boolean,
  "bargeInAwareness": boolean
}
Fields
disableBargeIn
(deprecated)

boolean

Optional. Disables user barge-in while the agent is speaking. If true, user input during agent response playback will be ignored.

Deprecated: disable_barge_in is deprecated in favor of disable_barge_in_control in ChannelProfile.

bargeInAwareness

boolean

Optional. If enabled, the agent will adapt its next response based on the assumption that the user hasn't heard the full preceding agent message. This should not be used in scenarios where agent responses are displayed visually.

Duration

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years

nanos

integer

Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 seconds field and a positive or negative nanos field. For durations of one second or more, a non-zero value for the nanos field must be of the same sign as the seconds field. Must be from -999,999,999 to +999,999,999 inclusive.

AmbientSoundConfig

JSON representation
{
  "volumeGainDb": number,

  // Union field source can be only one of the following:
  "prebuiltAmbientNoise": enum (PrebuiltAmbientNoise),
  "gcsUri": string,
  "prebuiltAmbientSound": string
  // End of list of possible types for union field source.
}
Fields
volumeGainDb

number

Optional. Volume gain (in dB) of the normal native volume supported by ambient noise, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that.

Union field source. Ambient noise to be played with the synthesized agent response, to enhance the naturalness of the conversation. source can be only one of the following:
prebuiltAmbientNoise
(deprecated)

enum (PrebuiltAmbientNoise)

Optional. Deprecated: prebuilt_ambient_noise is deprecated in favor of prebuilt_ambient_sound.

gcsUri

string

Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in Cloud Storage.

Note: Please make sure the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com has storage.objects.get permission to the Cloud Storage object.

prebuiltAmbientSound

string

Optional. Name of the prebuilt ambient sound. Valid values are: - "coffee_shop" - "keyboard" - "keypad" - "hum" - "office_1" - "office_2" - "office_3" - "room_1" - "room_2" - "room_3" - "room_4" - "room_5" - "air_conditioner"

LoggingSettings

JSON representation
{
  "redactionConfig": {
    object (RedactionConfig)
  },
  "audioRecordingConfig": {
    object (AudioRecordingConfig)
  },
  "bigqueryExportSettings": {
    object (BigQueryExportSettings)
  },
  "cloudLoggingSettings": {
    object (CloudLoggingSettings)
  },
  "conversationLoggingSettings": {
    object (ConversationLoggingSettings)
  },
  "evaluationAudioRecordingConfig": {
    object (AudioRecordingConfig)
  },
  "metricAnalysisSettings": {
    object (MetricAnalysisSettings)
  }
}
Fields
redactionConfig

object (RedactionConfig)

Optional. Configuration for how sensitive data should be redacted.

audioRecordingConfig

object (AudioRecordingConfig)

Optional. Configuration for how audio interactions should be recorded.

bigqueryExportSettings

object (BigQueryExportSettings)

Optional. Settings to describe the BigQuery export behaviors for the app. The conversation data will be exported to BigQuery tables if it is enabled.

cloudLoggingSettings

object (CloudLoggingSettings)

Optional. Settings to describe the Cloud Logging behaviors for the app.

conversationLoggingSettings

object (ConversationLoggingSettings)

Optional. Settings to describe the conversation logging behaviors for the app.

evaluationAudioRecordingConfig

object (AudioRecordingConfig)

Optional. Configuration for how audio interactions should be recorded for the evaluation. By default, audio recording is not enabled for evaluation sessions.

metricAnalysisSettings

object (MetricAnalysisSettings)

Optional. Settings to describe the conversation data collection behaviors for the LLM analysis pipeline for the app.

RedactionConfig

JSON representation
{
  "enableRedaction": boolean,
  "inspectTemplate": string,
  "deidentifyTemplate": string
}
Fields
enableRedaction

boolean

Optional. If true, redaction will be applied in various logging scenarios, including conversation history, Cloud Logging and audio recording.

inspectTemplate

string

Optional. DLP inspect template name to configure detection of sensitive data types.

Format: projects/{project}/locations/{location}/inspectTemplates/{inspect_template}

deidentifyTemplate

string

Optional. DLP deidentify template name to instruct on how to de-identify content.

Format: projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}

AudioRecordingConfig

JSON representation
{
  "gcsBucket": string,
  "gcsPathPrefix": string
}
Fields
gcsBucket

string

Optional. The Cloud Storage bucket to store the session audio recordings. The URI must start with "gs://".

Please choose a bucket location that meets your data residency requirements.

Note: If the Cloud Storage bucket is in a different project from the app, you should grant storage.objects.create permission to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

gcsPathPrefix

string

Optional. The Cloud Storage path prefix for audio recordings.

This prefix can include the following placeholders, which will be dynamically substituted at serving time: - $project: project ID - $location: app location - $app: app ID - $date: session date in YYYY-MM-DD format - $session: session ID

If the path prefix is not specified, the default prefix $project/$location/$app/$date/$session/ will be used.

BigQueryExportSettings

JSON representation
{
  "enabled": boolean,
  "project": string,
  "dataset": string
}
Fields
enabled

boolean

Optional. Indicates whether the BigQuery export is enabled.

project

string

Optional. The project ID of the BigQuery dataset to export the data to.

Note: If the BigQuery dataset is in a different project from the app, you should grant roles/bigquery.admin role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

dataset

string

Optional. The BigQuery dataset to export the data to.

CloudLoggingSettings

JSON representation
{
  "enableCloudLogging": boolean
}
Fields
enableCloudLogging

boolean

Optional. Whether to enable Cloud Logging for the sessions.

ConversationLoggingSettings

JSON representation
{
  "disableConversationLogging": boolean
}
Fields
disableConversationLogging

boolean

Optional. Whether to disable conversation logging for the sessions.

MetricAnalysisSettings

JSON representation
{
  "llmMetricsOptedOut": boolean
}
Fields
llmMetricsOptedOut

boolean

Optional. Whether to collect conversation data for llm analysis metrics. If true, conversation data will not be collected for llm analysis metrics; otherwise, conversation data will be collected.

ErrorHandlingSettings

JSON representation
{
  "errorHandlingStrategy": enum (ErrorHandlingStrategy)
}
Fields
errorHandlingStrategy

enum (ErrorHandlingStrategy)

Optional. The strategy to use for error handling.

ModelSettings

JSON representation
{
  "model": string,

  // Union field _temperature can be only one of the following:
  "temperature": number
  // End of list of possible types for union field _temperature.
}
Fields
model

string

Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.

Union field _temperature.

_temperature can be only one of the following:

temperature

number

Optional. If set, this temperature will be used for the LLM model. Temperature controls the randomness of the model's responses. Lower temperatures produce responses that are more predictable. Higher temperatures produce responses that are more creative.

EvaluationMetricsThresholds

JSON representation
{
  "goldenEvaluationMetricsThresholds": {
    object (GoldenEvaluationMetricsThresholds)
  },
  "hallucinationMetricBehavior": enum (HallucinationMetricBehavior),
  "goldenHallucinationMetricBehavior": enum (HallucinationMetricBehavior),
  "scenarioHallucinationMetricBehavior": enum (HallucinationMetricBehavior)
}
Fields
goldenEvaluationMetricsThresholds

object (GoldenEvaluationMetricsThresholds)

Optional. The golden evaluation metrics thresholds.

hallucinationMetricBehavior
(deprecated)

enum (HallucinationMetricBehavior)

Optional. Deprecated: Use golden_hallucination_metric_behavior instead. The hallucination metric behavior is currently used for golden evaluations.

goldenHallucinationMetricBehavior

enum (HallucinationMetricBehavior)

Optional. The hallucination metric behavior for golden evaluations.

scenarioHallucinationMetricBehavior

enum (HallucinationMetricBehavior)

Optional. The hallucination metric behavior for scenario evaluations.

GoldenEvaluationMetricsThresholds

JSON representation
{
  "turnLevelMetricsThresholds": {
    object (TurnLevelMetricsThresholds)
  },
  "expectationLevelMetricsThresholds": {
    object (ExpectationLevelMetricsThresholds)
  },
  "toolMatchingSettings": {
    object (ToolMatchingSettings)
  }
}
Fields
turnLevelMetricsThresholds

object (TurnLevelMetricsThresholds)

Optional. The turn level metrics thresholds.

expectationLevelMetricsThresholds

object (ExpectationLevelMetricsThresholds)

Optional. The expectation level metrics thresholds.

toolMatchingSettings

object (ToolMatchingSettings)

Optional. The tool matching settings. An extra tool call is a tool call that is present in the execution but does not match any tool call in the golden expectation.

TurnLevelMetricsThresholds

JSON representation
{
  "semanticSimilarityChannel": enum (SemanticSimilarityChannel),

  // Union field _semantic_similarity_success_threshold can be only one of the
  // following:
  "semanticSimilaritySuccessThreshold": integer
  // End of list of possible types for union field
  // _semantic_similarity_success_threshold.

  // Union field _overall_tool_invocation_correctness_threshold can be only one
  // of the following:
  "overallToolInvocationCorrectnessThreshold": number
  // End of list of possible types for union field
  // _overall_tool_invocation_correctness_threshold.
}
Fields
semanticSimilarityChannel

enum (SemanticSimilarityChannel)

Optional. The semantic similarity channel to use for evaluation.

Union field _semantic_similarity_success_threshold.

_semantic_similarity_success_threshold can be only one of the following:

semanticSimilaritySuccessThreshold

integer

Optional. The success threshold for semantic similarity. Must be an integer between 0 and 4. Default is >= 3.

Union field _overall_tool_invocation_correctness_threshold.

_overall_tool_invocation_correctness_threshold can be only one of the following:

overallToolInvocationCorrectnessThreshold

number

Optional. The success threshold for overall tool invocation correctness. Must be a float between 0 and 1. Default is 1.0.

ExpectationLevelMetricsThresholds

JSON representation
{

  // Union field _tool_invocation_parameter_correctness_threshold can be only one
  // of the following:
  "toolInvocationParameterCorrectnessThreshold": number
  // End of list of possible types for union field
  // _tool_invocation_parameter_correctness_threshold.
}
Fields

Union field _tool_invocation_parameter_correctness_threshold.

_tool_invocation_parameter_correctness_threshold can be only one of the following:

toolInvocationParameterCorrectnessThreshold

number

Optional. The success threshold for individual tool invocation parameter correctness. Must be a float between 0 and 1. Default is 1.0.

ToolMatchingSettings

JSON representation
{
  "extraToolCallBehavior": enum (ExtraToolCallBehavior)
}
Fields
extraToolCallBehavior

enum (ExtraToolCallBehavior)

Optional. Behavior for extra tool calls. Defaults to FAIL.

VariableDeclaration

JSON representation
{
  "name": string,
  "description": string,
  "schema": {
    object (Schema)
  }
}
Fields
name

string

Required. The name of the variable. The name must start with a letter or underscore and contain only letters, numbers, or underscores.

description

string

Required. The description of the variable.

schema

object (Schema)

Required. The schema of the variable.

Schema

JSON representation
{
  "type": enum (Type),
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "description": string,
  "items": {
    object (Schema)
  },
  "nullable": boolean,
  "uniqueItems": boolean,
  "prefixItems": [
    {
      object (Schema)
    }
  ],
  "additionalProperties": {
    object (Schema)
  },
  "anyOf": [
    {
      object (Schema)
    }
  ],
  "enum": [
    string
  ],
  "default": value,
  "ref": string,
  "defs": {
    string: {
      object (Schema)
    },
    ...
  },
  "title": string,
  "minItems": string,
  "maxItems": string,

  // Union field _minimum can be only one of the following:
  "minimum": number
  // End of list of possible types for union field _minimum.

  // Union field _maximum can be only one of the following:
  "maximum": number
  // End of list of possible types for union field _maximum.
}
Fields
type

enum (Type)

Required. The type of the data.

properties

map (key: string, value: object (Schema))

Optional. Properties of Type.OBJECT.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[]

string

Optional. Required properties of Type.OBJECT.

description

string

Optional. The description of the data.

items

object (Schema)

Optional. Schema of the elements of Type.ARRAY.

nullable

boolean

Optional. Indicates if the value may be null.

uniqueItems

boolean

Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.

prefixItems[]

object (Schema)

Optional. Schemas of initial elements of Type.ARRAY.

additionalProperties

object (Schema)

Optional. Can either be a boolean or an object, controls the presence of additional properties.

anyOf[]

object (Schema)

Optional. The value should be validated against any (one or more) of the subschemas in the list.

enum[]

string

Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}

default

value (Value format)

Optional. Default value of the data.

ref

string

Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root defs.

For example, the following schema defines a reference to a schema node named "Pet":

type: object
properties:
  pet:
    ref: #/defs/Pet
defs:
  Pet:
    type: object
    properties:
      name:
        type: string

The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.

defs

map (key: string, value: object (Schema))

Optional. A map of definitions for use by ref. Only allowed at the root of the schema.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

title

string

Optional. The title of the schema.

minItems

string (int64 format)

Optional. Minimum number of the elements for Type.ARRAY.

maxItems

string (int64 format)

Optional. Maximum number of the elements for Type.ARRAY.

Union field _minimum.

_minimum can be only one of the following:

minimum

number

Optional. Minimum value for Type.INTEGER and Type.NUMBER.

Union field _maximum.

_maximum can be only one of the following:

maximum

number

Optional. Maximum value for Type.INTEGER and Type.NUMBER.

PropertiesEntry

JSON representation
{
  "key": string,
  "value": {
    object (Schema)
  }
}
Fields
key

string

value

object (Schema)

Value

JSON representation
{

  // Union field kind can be only one of the following:
  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
  // End of list of possible types for union field kind.
}
Fields
Union field kind. The kind of value. kind can be only one of the following:
nullValue

null

Represents a null value.

numberValue

number

Represents a double value.

stringValue

string

Represents a string value.

boolValue

boolean

Represents a boolean value.

structValue

object (Struct format)

Represents a structured value.

listValue

array (ListValue format)

Represents a repeated Value.

Struct

JSON representation
{
  "fields": {
    string: value,
    ...
  }
}
Fields
fields

map (key: string, value: value (Value format))

Unordered map of dynamically typed values.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

JSON representation
{
  "key": string,
  "value": value
}
Fields
key

string

value

value (Value format)

ListValue

JSON representation
{
  "values": [
    value
  ]
}
Fields
values[]

value (Value format)

Repeated field of dynamically typed values.

DefsEntry

JSON representation
{
  "key": string,
  "value": {
    object (Schema)
  }
}
Fields
key

string

value

object (Schema)

DataStoreSettings

JSON representation
{
  "engines": [
    {
      object (Engine)
    }
  ]
}
Fields
engines[]

object (Engine)

Output only. The engines for the app.

Engine

JSON representation
{
  "name": string,
  "type": enum (Type)
}
Fields
name

string

Output only. The resource name of the engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}

type

enum (Type)

Output only. The type of the engine.

ChannelProfile

JSON representation
{
  "profileId": string,
  "channelType": enum (ChannelType),
  "personaProperty": {
    object (PersonaProperty)
  },
  "disableDtmf": boolean,
  "disableBargeInControl": boolean,
  "webWidgetConfig": {
    object (WebWidgetConfig)
  },
  "noiseSuppressionLevel": string
}
Fields
profileId

string

Optional. The unique identifier of the channel profile.

channelType

enum (ChannelType)

Optional. The type of the channel profile.

personaProperty

object (PersonaProperty)

Optional. The persona property of the channel profile.

disableDtmf

boolean

Optional. Whether to disable DTMF (dual-tone multi-frequency).

disableBargeInControl

boolean

Optional. Whether to disable user barge-in control in the conversation. - true: User interruptions are disabled while the agent is speaking. - false: The agent retains automatic control over when the user can interrupt.

webWidgetConfig

object (WebWidgetConfig)

Optional. The configuration for the web widget.

noiseSuppressionLevel

string

Optional. The noise suppression level of the channel profile. Available values are "low", "moderate", "high", "very_high".

PersonaProperty

JSON representation
{
  "persona": enum (Persona)
}
Fields
persona

enum (Persona)

Optional. The persona of the channel.

WebWidgetConfig

JSON representation
{
  "modality": enum (Modality),
  "theme": enum (Theme),
  "webWidgetTitle": string,
  "securitySettings": {
    object (SecuritySettings)
  }
}
Fields
modality

enum (Modality)

Optional. The modality of the web widget.

theme

enum (Theme)

Optional. The theme of the web widget.

webWidgetTitle

string

Optional. The title of the web widget.

securitySettings

object (SecuritySettings)

Optional. The security settings of the web widget.

SecuritySettings

JSON representation
{
  "enablePublicAccess": boolean,
  "enableOriginCheck": boolean,
  "allowedOrigins": [
    string
  ],
  "enableRecaptcha": boolean
}
Fields
enablePublicAccess

boolean

Optional. Indicates whether public access to the web widget is enabled. If true, the web widget will be publicly accessible. If false, the web widget must be integrated with your own authentication and authorization system to return valid credentials for accessing the CES agent.

enableOriginCheck

boolean

Optional. Indicates whether origin check for the web widget is enabled. If true, the web widget will check the origin of the website that loads the web widget and only allow it to be loaded in the same origin or any of the allowed origins.

allowedOrigins[]

string

Optional. The origins that are allowed to host the web widget. An origin is defined by RFC 6454. If empty, all origins are allowed. A maximum of 100 origins is allowed. Example: "https://example.com"

enableRecaptcha

boolean

Optional. Indicates whether reCAPTCHA verification for the web widget is enabled.

MetadataEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

ClientCertificateSettings

JSON representation
{
  "tlsCertificate": string,
  "privateKey": string,
  "passphrase": string
}
Fields
tlsCertificate

string

Required. The TLS certificate encoded in PEM format. This string must include the begin header and end footer lines.

privateKey

string

Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: projects/{project}/secrets/{secret}/versions/{version}

passphrase

string

Optional. The name of the SecretManager secret version resource storing the passphrase to decrypt the private key. Should be left unset if the private key is not encrypted. Format: projects/{project}/secrets/{secret}/versions/{version}

Agent

JSON representation
{
  "name": string,
  "displayName": string,
  "description": string,
  "modelSettings": {
    object (ModelSettings)
  },
  "instruction": string,
  "tools": [
    string
  ],
  "childAgents": [
    string
  ],
  "beforeAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "guardrails": [
    string
  ],
  "etag": string,
  "toolsets": [
    {
      object (AgentToolset)
    }
  ],
  "generatedSummary": string,
  "transferRules": [
    {
      object (TransferRule)
    }
  ],

  // Union field agent_type can be only one of the following:
  "llmAgent": {
    object (LlmAgent)
  },
  "remoteDialogflowAgent": {
    object (RemoteDialogflowAgent)
  }
  // End of list of possible types for union field agent_type.
}
Fields
name

string

Identifier. The unique identifier of the agent. Format: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

displayName

string

Required. Display name of the agent.

description

string

Optional. Human-readable description of the agent.

modelSettings

object (ModelSettings)

Optional. Configurations for the LLM model.

instruction

string

Optional. Instructions for the LLM model to guide the agent's behavior.

tools[]

string

Optional. List of available tools for the agent. Format: projects/{project}/locations/{location}/apps/{app}/tools/{tool}

childAgents[]

string

Optional. List of child agents in the agent tree. Format: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

beforeAgentCallbacks[]

object (Callback)

Optional. The callbacks to execute before the agent is called. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.

afterAgentCallbacks[]

object (Callback)

Optional. The callbacks to execute after the agent is called. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.

beforeModelCallbacks[]

object (Callback)

Optional. The callbacks to execute before the model is called. If there are multiple calls to the model, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.

afterModelCallbacks[]

object (Callback)

Optional. The callbacks to execute after the model is called. If there are multiple calls to the model, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.

beforeToolCallbacks[]

object (Callback)

Optional. The callbacks to execute before the tool is invoked. If there are multiple tool invocations, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.

afterToolCallbacks[]

object (Callback)

Optional. The callbacks to execute after the tool is invoked. If there are multiple tool invocations, the callback will be executed multiple times. The provided callbacks are executed sequentially in the exact order they are given in the list. If a callback returns an overridden response, execution stops and any remaining callbacks are skipped.

createTime

string (Timestamp format)

Output only. Timestamp when the agent was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when the agent was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

guardrails[]

string

Optional. List of guardrails for the agent. Format: projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

etag

string

Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

toolsets[]

object (AgentToolset)

Optional. List of toolsets for the agent.

generatedSummary

string

Output only. If the agent is generated by the LLM assistant, this field contains a descriptive summary of the generation.

transferRules[]

object (TransferRule)

Optional. Agent transfer rules. If multiple rules match, the first one in the list will be used.

Union field agent_type. The type of agent. agent_type can be only one of the following:
llmAgent

object (LlmAgent)

Optional. The default agent type.

remoteDialogflowAgent

object (RemoteDialogflowAgent)

Optional. The remote Dialogflow agent to be used for the agent execution. If this field is set, all other agent level properties will be ignored.

Note: If the Dialogflow agent is in a different project from the app, you should grant roles/dialogflow.client to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

RemoteDialogflowAgent

JSON representation
{
  "agent": string,
  "flowId": string,
  "environmentId": string,
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "respectResponseInterruptionSettings": boolean
}
Fields
agent

string

Required. The Dialogflow agent resource name. Format: projects/{project}/locations/{location}/agents/{agent}

flowId

string

Optional. The flow ID of the flow in the Dialogflow agent.

environmentId

string

Optional. The environment ID of the Dialogflow agent to be used for the agent execution. If not specified, the draft environment will be used.

inputVariableMapping

map (key: string, value: string)

Optional. The mapping of the app variables names to the Dialogflow session parameters names to be sent to the Dialogflow agent as input.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

outputVariableMapping

map (key: string, value: string)

Optional. The mapping of the Dialogflow session parameters names to the app variables names to be sent back to the CES agent after the Dialogflow agent execution ends.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

respectResponseInterruptionSettings

boolean

Optional. Indicates whether to respect the message-level interruption settings configured in the Dialogflow agent.

  • If false: all response messages from the Dialogflow agent follow the app-level barge-in settings.
  • If true: only response messages with allow_playback_interruption set to true will be interruptable, all other messages follow the app-level barge-in settings.

InputVariableMappingEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

OutputVariableMappingEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

Callback

JSON representation
{
  "description": string,
  "disabled": boolean,
  "proactiveExecutionEnabled": boolean,

  // Union field callback can be only one of the following:
  "pythonCode": string
  // End of list of possible types for union field callback.
}
Fields
description

string

Optional. Human-readable description of the callback.

disabled

boolean

Optional. Whether the callback is disabled. Disabled callbacks are ignored by the agent.

proactiveExecutionEnabled

boolean

Optional. If enabled, the callback will also be executed on intermediate model outputs. This setting only affects after model callback. ENABLE WITH CAUTION. Typically after model callback only needs to be executed after receiving all model responses. Enabling proactive execution may have negative implication on the execution cost and latency, and should only be enabled in rare situations.

Union field callback. The callback to execute. callback can be only one of the following:
pythonCode

string

Required. The python code to execute for the callback.

AgentToolset

JSON representation
{
  "toolset": string,
  "toolIds": [
    string
  ]
}
Fields
toolset

string

Required. The resource name of the toolset. Format: projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

toolIds[]

string

Optional. The tools IDs to filter the toolset.

TransferRule

JSON representation
{
  "childAgent": string,
  "direction": enum (Direction),

  // Union field rule_type can be only one of the following:
  "deterministicTransfer": {
    object (DeterministicTransfer)
  },
  "disablePlannerTransfer": {
    object (DisablePlannerTransfer)
  }
  // End of list of possible types for union field rule_type.
}
Fields
childAgent

string

Required. The resource name of the child agent the rule applies to. Format: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

direction

enum (Direction)

Required. The direction of the transfer.

Union field rule_type. The rule type. rule_type can be only one of the following:
deterministicTransfer

object (DeterministicTransfer)

Optional. A rule that immediately transfers to the target agent when the condition is met.

disablePlannerTransfer

object (DisablePlannerTransfer)

Optional. Rule that prevents the planner from transferring to the target agent.

DeterministicTransfer

JSON representation
{

  // Union field condition_type can be only one of the following:
  "expressionCondition": {
    object (ExpressionCondition)
  },
  "pythonCodeCondition": {
    object (PythonCodeCondition)
  }
  // End of list of possible types for union field condition_type.
}
Fields
Union field condition_type. The condition to evaluate. condition_type can be only one of the following:
expressionCondition

object (ExpressionCondition)

Optional. A rule that evaluates a session state condition. If the condition evaluates to true, the transfer occurs.

pythonCodeCondition

object (PythonCodeCondition)

Optional. A rule that uses Python code block to evaluate the conditions. If the condition evaluates to true, the transfer occurs.

ExpressionCondition

JSON representation
{
  "expression": string
}
Fields
expression

string

Required. The string representation of cloud.api.Expression condition.

PythonCodeCondition

JSON representation
{
  "pythonCode": string
}
Fields
pythonCode

string

Required. The python code to execute.

DisablePlannerTransfer

JSON representation
{
  "expressionCondition": {
    object (ExpressionCondition)
  }
}
Fields
expressionCondition

object (ExpressionCondition)

Required. If the condition evaluates to true, planner will not be allowed to transfer to the target agent.

Tool

JSON representation
{
  "name": string,
  "displayName": string,
  "executionType": enum (ExecutionType),
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "generatedSummary": string,
  "toolFakeConfig": {
    object (ToolFakeConfig)
  },

  // Union field tool_type can be only one of the following:
  "clientFunction": {
    object (ClientFunction)
  },
  "openApiTool": {
    object (OpenApiTool)
  },
  "googleSearchTool": {
    object (GoogleSearchTool)
  },
  "connectorTool": {
    object (ConnectorTool)
  },
  "dataStoreTool": {
    object (DataStoreTool)
  },
  "pythonFunction": {
    object (PythonFunction)
  },
  "mcpTool": {
    object (McpTool)
  },
  "fileSearchTool": {
    object (FileSearchTool)
  },
  "systemTool": {
    object (SystemTool)
  },
  "widgetTool": {
    object (WidgetTool)
  }
  // End of list of possible types for union field tool_type.
}
Fields
name

string

Identifier. The unique identifier of the tool. Format: - projects/{project}/locations/{location}/apps/{app}/tools/{tool} for

projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}/tools/{tool} for tools retrieved from a toolset. These tools are dynamic and output-only, they cannot be referenced directly where a tool is expected.

displayName

string

Output only. The display name of the tool, derived based on the tool's type. For example, display name of a [ClientFunction][Tool.ClientFunction] is derived from its name property.

executionType

enum (ExecutionType)

Optional. The execution type of the tool.

createTime

string (Timestamp format)

Output only. Timestamp when the tool was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when the tool was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

etag

string

Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

generatedSummary

string

Output only. If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.

toolFakeConfig

object (ToolFakeConfig)

Optional. Configuration for tool behavior in fake mode.

Union field tool_type. The type of the tool. tool_type can be only one of the following:
clientFunction

object (ClientFunction)

Optional. The client function.

openApiTool

object (OpenApiTool)

Optional. The open API tool.

googleSearchTool

object (GoogleSearchTool)

Optional. The google search tool.

connectorTool

object (ConnectorTool)

Optional. The Integration Connector tool.

dataStoreTool

object (DataStoreTool)

Optional. The data store tool.

pythonFunction

object (PythonFunction)

Optional. The python function tool.

mcpTool

object (McpTool)

Optional. The MCP tool. An MCP tool cannot be created or updated directly and is managed by the MCP toolset.

fileSearchTool

object (FileSearchTool)

Optional. The file search tool.

systemTool

object (SystemTool)

Optional. The system tool.

widgetTool

object (WidgetTool)

Optional. The widget tool.

ClientFunction

JSON representation
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  },
  "response": {
    object (Schema)
  }
}
Fields
name

string

Required. The function name.

description

string

Optional. The function description.

parameters

object (Schema)

Optional. The schema of the function parameters.

response

object (Schema)

Optional. The schema of the function response.

OpenApiTool

JSON representation
{
  "openApiSchema": string,
  "name": string,
  "description": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "ignoreUnknownFields": boolean,
  "url": string
}
Fields
openApiSchema

string

Required. The OpenAPI schema in JSON or YAML format.

name

string

Optional. The name of the tool. If not provided, the name of the tool will be derived from the OpenAPI schema, from operation.operationId.

description

string

Optional. The description of the tool. If not provided, the description of the tool will be derived from the OpenAPI schema, from operation.description or operation.summary.

apiAuthentication

object (ApiAuthentication)

Optional. Authentication information required by the API.

tlsConfig

object (TlsConfig)

Optional. The TLS configuration. Includes the custom server certificates that the client will trust.

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Optional. Service Directory configuration.

ignoreUnknownFields

boolean

Optional. If true, the agent will ignore unknown fields in the API response.

url

string

Optional. The server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.

ApiAuthentication

JSON representation
{

  // Union field auth_config can be only one of the following:
  "apiKeyConfig": {
    object (ApiKeyConfig)
  },
  "oauthConfig": {
    object (OAuthConfig)
  },
  "serviceAgentIdTokenAuthConfig": {
    object (ServiceAgentIdTokenAuthConfig)
  },
  "serviceAccountAuthConfig": {
    object (ServiceAccountAuthConfig)
  },
  "bearerTokenConfig": {
    object (BearerTokenConfig)
  }
  // End of list of possible types for union field auth_config.
}
Fields
Union field auth_config. The auth configuration. auth_config can be only one of the following:
apiKeyConfig

object (ApiKeyConfig)

Optional. Config for API key auth.

oauthConfig

object (OAuthConfig)

Optional. Config for OAuth.

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

Optional. Config for ID token auth generated from CES service agent.

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

Optional. Config for service account authentication.

bearerTokenConfig

object (BearerTokenConfig)

Optional. Config for bearer token auth.

ApiKeyConfig

JSON representation
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (RequestLocation)
}
Fields
keyName

string

Required. The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.

apiKeySecretVersion

string

Required. The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version}

Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

requestLocation

enum (RequestLocation)

Required. Key location in the request.

OAuthConfig

JSON representation
{
  "oauthGrantType": enum (OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
Fields
oauthGrantType

enum (OauthGrantType)

Required. OAuth grant types.

clientId

string

Required. The client ID from the OAuth provider.

clientSecretVersion

string

Required. The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version}

Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

tokenEndpoint

string

Required. The token endpoint in the OAuth provider to exchange for an access token.

scopes[]

string

Optional. The OAuth scopes to grant.

ServiceAccountAuthConfig

JSON representation
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
Fields
serviceAccount

string

Required. The email address of the service account used for authentication. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request.

The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

scopes[]

string

Optional. The OAuth scopes to grant. If not specified, the default scope https://www.googleapis.com/auth/cloud-platform is used.

BearerTokenConfig

JSON representation
{
  "token": string
}
Fields
token

string

Required. The bearer token. Must be in the format $context.variables.<name_of_variable>.

TlsConfig

JSON representation
{
  "caCerts": [
    {
      object (CaCert)
    }
  ]
}
Fields
caCerts[]

object (CaCert)

Required. Specifies a list of allowed custom CA certificates for HTTPS verification.

CaCert

JSON representation
{
  "displayName": string,
  "cert": string
}
Fields
displayName

string

Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.

cert

string (bytes format)

Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")

A base64-encoded string.

ServiceDirectoryConfig

JSON representation
{
  "service": string
}
Fields
service

string

Required. The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.

GoogleSearchTool

JSON representation
{
  "name": string,
  "description": string,
  "contextUrls": [
    string
  ],
  "preferredDomains": [
    string
  ],
  "excludeDomains": [
    string
  ],
  "promptConfig": {
    object (PromptConfig)
  }
}
Fields
name

string

Required. The name of the tool.

description

string

Optional. Description of the tool's purpose.

contextUrls[]

string

Optional. Content will be fetched directly from these URLs for context and grounding. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.

preferredDomains[]

string

Optional. Specifies domains to restrict search results to. Example: "example.com", "another.site". A maximum of 20 domains can be specified.

excludeDomains[]

string

Optional. List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.

promptConfig

object (PromptConfig)

Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice.

PromptConfig

JSON representation
{
  "textPrompt": string,
  "voicePrompt": string
}
Fields
textPrompt

string

Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.

voicePrompt

string

Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.

ConnectorTool

JSON representation
{
  "connection": string,
  "action": {
    object (Action)
  },
  "authConfig": {
    object (EndUserAuthConfig)
  },
  "name": string,
  "description": string
}
Fields
connection

string

Required. The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}

action

object (Action)

Required. Action for the tool to use.

authConfig

object (EndUserAuthConfig)

Optional. Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details.

name

string

Optional. The name of the tool that can be used by the Agent to decide whether to call this ConnectorTool.

description

string

Optional. The description of the tool that can be used by the Agent to decide whether to call this ConnectorTool.

Action

JSON representation
{
  "inputFields": [
    string
  ],
  "outputFields": [
    string
  ],

  // Union field action_spec can be only one of the following:
  "connectionActionId": string,
  "entityOperation": {
    object (EntityOperation)
  }
  // End of list of possible types for union field action_spec.
}
Fields
inputFields[]

string

Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.

outputFields[]

string

Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.

Union field action_spec. Specification for an action to configure for the tool to use. action_spec can be only one of the following:
connectionActionId

string

ID of a Connection action for the tool to use.

entityOperation

object (EntityOperation)

Entity operation configuration for the tool to use.

EntityOperation

JSON representation
{
  "entityId": string,
  "operation": enum (OperationType)
}
Fields
entityId

string

Required. ID of the entity.

operation

enum (OperationType)

Required. Operation to perform on the entity.

EndUserAuthConfig

JSON representation
{

  // Union field auth_config can be only one of the following:
  "oauth2AuthCodeConfig": {
    object (Oauth2AuthCodeConfig)
  },
  "oauth2JwtBearerConfig": {
    object (Oauth2JwtBearerConfig)
  }
  // End of list of possible types for union field auth_config.
}
Fields
Union field auth_config. The auth configuration. auth_config can be only one of the following:
oauth2AuthCodeConfig

object (Oauth2AuthCodeConfig)

Oauth 2.0 Authorization Code authentication.

oauth2JwtBearerConfig

object (Oauth2JwtBearerConfig)

JWT Profile Oauth 2.0 Authorization Grant authentication.

Oauth2AuthCodeConfig

JSON representation
{
  "oauthToken": string
}
Fields
oauthToken

string

Required. Oauth token parameter name to pass through. Must be in the format $context.variables.<name_of_variable>.

Oauth2JwtBearerConfig

JSON representation
{
  "issuer": string,
  "subject": string,
  "clientKey": string
}
Fields
issuer

string

Required. Issuer parameter name to pass through. Must be in the format $context.variables.<name_of_variable>.

subject

string

Required. Subject parameter name to pass through. Must be in the format $context.variables.<name_of_variable>.

clientKey

string

Required. Client parameter name to pass through. Must be in the format $context.variables.<name_of_variable>.

DataStoreTool

JSON representation
{
  "name": string,
  "description": string,
  "boostSpecs": [
    {
      object (BoostSpecs)
    }
  ],
  "modalityConfigs": [
    {
      object (ModalityConfig)
    }
  ],
  "filterParameterBehavior": enum (FilterParameterBehavior),

  // Union field search_source can be only one of the following:
  "dataStoreSource": {
    object (DataStoreSource)
  },
  "engineSource": {
    object (EngineSource)
  }
  // End of list of possible types for union field search_source.
}
Fields
name

string

Required. The data store tool name.

description

string

Optional. The tool description.

boostSpecs[]

object (BoostSpecs)

Optional. Boost specification to boost certain documents.

modalityConfigs[]

object (ModalityConfig)

Optional. The modality configs for the data store.

filterParameterBehavior

enum (FilterParameterBehavior)

Optional. The filter parameter behavior.

Union field search_source. Defines the search source, either a single DataStore or an Engine. search_source can be only one of the following:
dataStoreSource

object (DataStoreSource)

Optional. Search within a single specific DataStore.

engineSource

object (EngineSource)

Optional. Search within an Engine (potentially across multiple DataStores).

DataStoreSource

JSON representation
{
  "filter": string,
  "dataStore": {
    object (DataStore)
  }
}
Fields
filter

string

Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

dataStore

object (DataStore)

Optional. The data store.

DataStore

JSON representation
{
  "name": string,
  "type": enum (DataStoreType),
  "documentProcessingMode": enum (DocumentProcessingMode),
  "displayName": string,
  "createTime": string,
  "connectorConfig": {
    object (ConnectorConfig)
  }
}
Fields
name

string

Required. Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}

type

enum (DataStoreType)

Output only. The type of the data store. This field is readonly and populated by the server.

documentProcessingMode

enum (DocumentProcessingMode)

Output only. The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores.

displayName

string

Output only. The display name of the data store.

createTime

string (Timestamp format)

Output only. Timestamp when the data store was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

connectorConfig

object (ConnectorConfig)

Output only. The connector config for the data store connection.

ConnectorConfig

JSON representation
{
  "collection": string,
  "collectionDisplayName": string,
  "dataSource": string
}
Fields
collection

string

Resource name of the collection the data store belongs to.

collectionDisplayName

string

Display name of the collection the data store belongs to.

dataSource

string

The name of the data source. Example: salesforce, jira, confluence, bigquery.

EngineSource

JSON representation
{
  "engine": string,
  "dataStoreSources": [
    {
      object (DataStoreSource)
    }
  ],
  "filter": string
}
Fields
engine

string

Required. Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}

dataStoreSources[]

object (DataStoreSource)

Optional. Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine.

filter

string

Optional. A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

BoostSpecs

JSON representation
{
  "dataStores": [
    string
  ],
  "spec": [
    {
      object (BoostSpec)
    }
  ]
}
Fields
dataStores[]

string

Required. The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.

spec[]

object (BoostSpec)

Required. A list of boosting specifications.

BoostSpec

JSON representation
{
  "conditionBoostSpecs": [
    {
      object (ConditionBoostSpec)
    }
  ]
}
Fields
conditionBoostSpecs[]

object (ConditionBoostSpec)

Required. A list of boosting specifications.

ConditionBoostSpec

JSON representation
{
  "condition": string,
  "boost": number,
  "boostControlSpec": {
    object (BoostControlSpec)
  }
}
Fields
condition

string

Required. An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))

boost

number

Optional. Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0.

Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion.

Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown.

Setting to 0.0 means no boost applied. The boosting condition is ignored.

boostControlSpec

object (BoostControlSpec)

Optional. Complex specification for custom ranking based on customer defined attribute value.

BoostControlSpec

JSON representation
{
  "fieldName": string,
  "attributeType": enum (AttributeType),
  "interpolationType": enum (InterpolationType),
  "controlPoints": [
    {
      object (ControlPoint)
    }
  ]
}
Fields
fieldName

string

Optional. The name of the field whose value will be used to determine the boost amount.

attributeType

enum (AttributeType)

Optional. The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (time.now() - datetime_field_value).

interpolationType

enum (InterpolationType)

Optional. The interpolation type to be applied to connect the control points listed below.

controlPoints[]

object (ControlPoint)

Optional. The control points used to define the curve. The monotonic function (defined through the interpolation_type above) passes through the control points listed here.

ControlPoint

JSON representation
{
  "attributeValue": string,
  "boostAmount": number
}
Fields
attributeValue

string

Optional. Can be one of: 1. The numerical field value. 2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: [nD][T[nH][nM][nS]].

boostAmount

number

Optional. The value between -1 to 1 by which to boost the score if the attribute_value evaluates to the value specified above.

ModalityConfig

JSON representation
{
  "modalityType": enum (ModalityType),
  "rewriterConfig": {
    object (RewriterConfig)
  },
  "summarizationConfig": {
    object (SummarizationConfig)
  },
  "groundingConfig": {
    object (GroundingConfig)
  }
}
Fields
modalityType

enum (ModalityType)

Required. The modality type.

rewriterConfig

object (RewriterConfig)

Optional. The rewriter config.

summarizationConfig

object (SummarizationConfig)

Optional. The summarization config.

groundingConfig

object (GroundingConfig)

Optional. The grounding configuration.

RewriterConfig

JSON representation
{
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "disabled": boolean
}
Fields
modelSettings

object (ModelSettings)

Required. Configurations for the LLM model.

prompt

string

Optional. The prompt definition. If not set, default prompt will be used.

disabled

boolean

Optional. Whether the rewriter is disabled.

SummarizationConfig

JSON representation
{
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "disabled": boolean
}
Fields
modelSettings

object (ModelSettings)

Optional. Configurations for the LLM model.

prompt

string

Optional. The prompt definition. If not set, default prompt will be used.

disabled

boolean

Optional. Whether summarization is disabled.

GroundingConfig

JSON representation
{
  "groundingLevel": number,
  "disabled": boolean
}
Fields
groundingLevel

number

Optional. The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only.

For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.

disabled

boolean

Optional. Whether grounding is disabled.

PythonFunction

JSON representation
{
  "name": string,
  "pythonCode": string,
  "description": string
}
Fields
name

string

Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.

pythonCode

string

Optional. The Python code to execute for the tool.

description

string

Output only. The description of the Python function, parsed from the python code's docstring.

McpTool

JSON representation
{
  "name": string,
  "description": string,
  "inputSchema": {
    object (Schema)
  },
  "outputSchema": {
    object (Schema)
  },
  "serverAddress": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  }
}
Fields
name

string

Required. The name of the MCP tool.

description

string

Optional. The description of the MCP tool.

inputSchema

object (Schema)

Optional. The schema of the input arguments of the MCP tool.

outputSchema

object (Schema)

Optional. The schema of the output arguments of the MCP tool.

serverAddress

string

Required. The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the server_address in the McpToolset. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details.

apiAuthentication

object (ApiAuthentication)

Optional. Authentication information required to execute the tool against the MCP server. For bearer token authentication, the token applies only to tool execution, not to listing tools. This requires that tools can be listed without authentication.

tlsConfig

object (TlsConfig)

Optional. The TLS configuration. Includes the custom server certificates that the client should trust.

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter.

FileSearchTool

JSON representation
{
  "corpusType": enum (CorpusType),
  "name": string,
  "description": string,
  "fileCorpus": string
}
Fields
corpusType

enum (CorpusType)

Optional. The type of the corpus. Default is FULLY_MANAGED.

name

string

Required. The tool name.

description

string

Optional. The tool description.

fileCorpus

string

Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

SystemTool

JSON representation
{
  "name": string,
  "description": string
}
Fields
name

string

Required. The name of the system tool.

description

string

Output only. The description of the system tool.

WidgetTool

JSON representation
{
  "name": string,
  "description": string,
  "widgetType": enum (WidgetType),

  // Union field input can be only one of the following:
  "parameters": {
    object (Schema)
  }
  // End of list of possible types for union field input.
}
Fields
name

string

Required. The display name of the widget tool.

description

string

Optional. The description of the widget tool.

widgetType

enum (WidgetType)

Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED.

Union field input. The input of the widget tool. input can be only one of the following:
parameters

object (Schema)

Optional. The input parameters of the widget tool.

ToolFakeConfig

JSON representation
{
  "enableFakeMode": boolean,

  // Union field tool_response can be only one of the following:
  "codeBlock": {
    object (CodeBlock)
  }
  // End of list of possible types for union field tool_response.
}
Fields
enableFakeMode

boolean

Optional. Whether the tool is using fake mode.

Union field tool_response. The response is either static or it is provided by a python function. tool_response can be only one of the following:
codeBlock

object (CodeBlock)

Optional. Code block which will be executed instead of a real tool call.

CodeBlock

JSON representation
{
  "pythonCode": string
}
Fields
pythonCode

string

Required. Python code which will be invoked in tool fake mode. Expected Python function signature - To catch all tool calls: def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: To catch a specific tool call: def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: If the function returns None, the real tool will be invoked instead.

Example

JSON representation
{
  "name": string,
  "displayName": string,
  "description": string,
  "entryAgent": string,
  "messages": [
    {
      object (Message)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "invalid": boolean,
  "etag": string
}
Fields
name

string

Identifier. The unique identifier of the example. Format: projects/{project}/locations/{location}/apps/{app}/examples/{example}

displayName

string

Required. Display name of the example.

description

string

Optional. Human-readable description of the example.

entryAgent

string

Optional. The agent that initially handles the conversation. If not specified, the example represents a conversation that is handled by the root agent. Format: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

messages[]

object (Message)

Optional. The collection of messages that make up the conversation.

createTime

string (Timestamp format)

Output only. Timestamp when the example was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when the example was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

invalid

boolean

Output only. The example may become invalid if referencing resources are deleted. Invalid examples will not be used as few-shot examples.

etag

string

Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

Message

JSON representation
{
  "role": string,
  "chunks": [
    {
      object (Chunk)
    }
  ],
  "eventTime": string
}
Fields
role

string

Optional. The role within the conversation, e.g., user, agent.

chunks[]

object (Chunk)

Optional. Content of the message as a series of chunks.

eventTime

string (Timestamp format)

Optional. Timestamp when the message was sent or received. Should not be used if the message is part of an example.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

Chunk

JSON representation
{

  // Union field data can be only one of the following:
  "text": string,
  "transcript": string,
  "blob": {
    object (Blob)
  },
  "payload": {
    object
  },
  "image": {
    object (Image)
  },
  "toolCall": {
    object (ToolCall)
  },
  "toolResponse": {
    object (ToolResponse)
  },
  "agentTransfer": {
    object (AgentTransfer)
  },
  "updatedVariables": {
    object
  },
  "defaultVariables": {
    object
  }
  // End of list of possible types for union field data.
}
Fields
Union field data. Chunk data. data can be only one of the following:
text

string

Optional. Text data.

transcript

string

Optional. Transcript associated with the audio.

blob

object (Blob)

Optional. Blob data.

payload

object (Struct format)

Optional. Custom payload data.

image

object (Image)

Optional. Image data.

toolCall

object (ToolCall)

Optional. Tool execution request.

toolResponse

object (ToolResponse)

Optional. Tool execution response.

agentTransfer

object (AgentTransfer)

Optional. Agent transfer event.

updatedVariables

object (Struct format)

A struct represents variables that were updated in the conversation, keyed by variable names.

defaultVariables

object (Struct format)

A struct represents default variables at the start of the conversation, keyed by variable names.

Blob

JSON representation
{
  "mimeType": string,
  "data": string
}
Fields
mimeType

string

Required. The IANA standard MIME type of the source data.

data

string (bytes format)

Required. Raw bytes of the blob.

A base64-encoded string.

Image

JSON representation
{
  "mimeType": string,
  "data": string
}
Fields
mimeType

string

Required. The IANA standard MIME type of the source data. Supported image types includes: * image/png * image/jpeg * image/webp

data

string (bytes format)

Required. Raw bytes of the image.

A base64-encoded string.

ToolCall

JSON representation
{
  "id": string,
  "displayName": string,
  "args": {
    object
  },

  // Union field tool_identifier can be only one of the following:
  "tool": string,
  "toolsetTool": {
    object (ToolsetTool)
  }
  // End of list of possible types for union field tool_identifier.
}
Fields
id

string

Optional. The unique identifier of the tool call. If populated, the client should return the execution result with the matching ID in ToolResponse.

displayName

string

Output only. Display name of the tool.

args

object (Struct format)

Optional. The input parameters and values for the tool in JSON object format.

Union field tool_identifier. The identifier of the tool to execute. It could be either a persisted tool or a tool from a toolset. tool_identifier can be only one of the following:
tool

string

Optional. The name of the tool to execute. Format: projects/{project}/locations/{location}/apps/{app}/tools/{tool}

toolsetTool

object (ToolsetTool)

Optional. The toolset tool to execute.

ToolsetTool

JSON representation
{
  "toolset": string,
  "toolId": string
}
Fields
toolset

string

Required. The resource name of the Toolset from which this tool is derived. Format: projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

toolId

string

Optional. The tool ID to filter the tools to retrieve the schema for.

ToolResponse

JSON representation
{
  "id": string,
  "displayName": string,
  "response": {
    object
  },

  // Union field tool_identifier can be only one of the following:
  "tool": string,
  "toolsetTool": {
    object (ToolsetTool)
  }
  // End of list of possible types for union field tool_identifier.
}
Fields
id

string

Optional. The matching ID of the tool call the response is for.

displayName

string

Output only. Display name of the tool.

response

object (Struct format)

Required. The tool execution result in JSON object format. Use "output" key to specify tool response and "error" key to specify error details (if any). If "output" and "error" keys are not specified, then whole "response" is treated as tool execution result.

Union field tool_identifier. The identifier of the tool that got executed. It could be either a persisted tool or a tool from a toolset. tool_identifier can be only one of the following:
tool

string

Optional. The name of the tool to execute. Format: projects/{project}/locations/{location}/apps/{app}/tools/{tool}

toolsetTool

object (ToolsetTool)

Optional. The toolset tool that got executed.

AgentTransfer

JSON representation
{
  "targetAgent": string,
  "displayName": string
}
Fields
targetAgent

string

Required. The agent to which the conversation is being transferred. The agent will handle the conversation from this point forward. Format: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

displayName

string

Output only. Display name of the agent.

Guardrail

JSON representation
{
  "name": string,
  "displayName": string,
  "description": string,
  "enabled": boolean,
  "action": {
    object (TriggerAction)
  },
  "createTime": string,
  "updateTime": string,
  "etag": string,

  // Union field guardrail_type can be only one of the following:
  "contentFilter": {
    object (ContentFilter)
  },
  "llmPromptSecurity": {
    object (LlmPromptSecurity)
  },
  "llmPolicy": {
    object (LlmPolicy)
  },
  "modelSafety": {
    object (ModelSafety)
  },
  "codeCallback": {
    object (CodeCallback)
  }
  // End of list of possible types for union field guardrail_type.
}
Fields
name

string

Identifier. The unique identifier of the guardrail. Format: projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

displayName

string

Required. Display name of the guardrail.

description

string

Optional. Description of the guardrail.

enabled

boolean

Optional. Whether the guardrail is enabled.

action

object (TriggerAction)

Optional. Action to take when the guardrail is triggered.

createTime

string (Timestamp format)

Output only. Timestamp when the guardrail was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when the guardrail was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

etag

string

Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

Union field guardrail_type. Guardrail type. guardrail_type can be only one of the following:
contentFilter

object (ContentFilter)

Optional. Guardrail that bans certain content from being used in the conversation.

llmPromptSecurity

object (LlmPromptSecurity)

Optional. Guardrail that blocks the conversation if the prompt is considered unsafe based on the LLM classification.

llmPolicy

object (LlmPolicy)

Optional. Guardrail that blocks the conversation if the LLM response is considered violating the policy based on the LLM classification.

modelSafety

object (ModelSafety)

Optional. Guardrail that blocks the conversation if the LLM response is considered unsafe based on the model safety settings.

codeCallback

object (CodeCallback)

Optional. Guardrail that potentially blocks the conversation based on the result of the callback execution.

ContentFilter

JSON representation
{
  "bannedContents": [
    string
  ],
  "bannedContentsInUserInput": [
    string
  ],
  "bannedContentsInAgentResponse": [
    string
  ],
  "matchType": enum (MatchType),
  "disregardDiacritics": boolean
}
Fields
bannedContents[]

string

Optional. List of banned phrases. Applies to both user inputs and agent responses.

bannedContentsInUserInput[]

string

Optional. List of banned phrases. Applies only to user inputs.

bannedContentsInAgentResponse[]

string

Optional. List of banned phrases. Applies only to agent responses.

matchType

enum (MatchType)

Required. Match type for the content filter.

disregardDiacritics

boolean

Optional. If true, diacritics are ignored during matching.

LlmPromptSecurity

JSON representation
{
  "failOpen": boolean,

  // Union field security_config can be only one of the following:
  "defaultSettings": {
    object (DefaultSecuritySettings)
  },
  "customPolicy": {
    object (LlmPolicy)
  }
  // End of list of possible types for union field security_config.
}
Fields
failOpen

boolean

Optional. Determines the behavior when the guardrail encounters an LLM error. - If true: the guardrail is bypassed. - If false (default): the guardrail triggers/blocks.

Note: If a custom policy is provided, this field is ignored in favor of the policy's 'fail_open' configuration.

Union field security_config. Defines the security configuration mode. The user must choose one of the following configurations. security_config can be only one of the following:
defaultSettings

object (DefaultSecuritySettings)

Optional. Use the system's predefined default security settings. To select this mode, include an empty 'default_settings' message in the request. The 'default_prompt_template' field within will be populated by the server in the response.

customPolicy

object (LlmPolicy)

Optional. Use a user-defined LlmPolicy to configure the security guardrail.

DefaultSecuritySettings

JSON representation
{
  "defaultPromptTemplate": string
}
Fields
defaultPromptTemplate

string

Output only. The default prompt template used by the system. This field is for display purposes to show the user what prompt the system uses by default. It is OUTPUT_ONLY.

LlmPolicy

JSON representation
{
  "maxConversationMessages": integer,
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "policyScope": enum (PolicyScope),
  "failOpen": boolean,
  "allowShortUtterance": boolean
}
Fields
maxConversationMessages

integer

Optional. When checking this policy, consider the last 'n' messages in the conversation. When not set a default value of 10 will be used.

modelSettings

object (ModelSettings)

Optional. Model settings.

prompt

string

Required. Policy prompt.

policyScope

enum (PolicyScope)

Required. Defines when to apply the policy check during the conversation. If set to POLICY_SCOPE_UNSPECIFIED, the policy will be applied to the user input. When applying the policy to the agent response, additional latency will be introduced before the agent can respond.

failOpen

boolean

Optional. If an error occurs during the policy check, fail open and do not trigger the guardrail.

allowShortUtterance

boolean

Optional. By default, the LLM policy check is bypassed for short utterances. Enabling this setting applies the policy check to all utterances, including those that would normally be skipped.

ModelSafety

JSON representation
{
  "safetySettings": [
    {
      object (SafetySetting)
    }
  ]
}
Fields
safetySettings[]

object (SafetySetting)

Required. List of safety settings.

SafetySetting

JSON representation
{
  "category": enum (HarmCategory),
  "threshold": enum (HarmBlockThreshold)
}
Fields
category

enum (HarmCategory)

Required. The harm category.

threshold

enum (HarmBlockThreshold)

Required. The harm block threshold.

CodeCallback

JSON representation
{
  "beforeAgentCallback": {
    object (Callback)
  },
  "afterAgentCallback": {
    object (Callback)
  },
  "beforeModelCallback": {
    object (Callback)
  },
  "afterModelCallback": {
    object (Callback)
  }
}
Fields
beforeAgentCallback

object (Callback)

Optional. The callback to execute before the agent is called. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing.

afterAgentCallback

object (Callback)

Optional. The callback to execute after the agent is called. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing.

beforeModelCallback

object (Callback)

Optional. The callback to execute before the model is called. If there are multiple calls to the model, the callback will be executed multiple times. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing.

afterModelCallback

object (Callback)

Optional. The callback to execute after the model is called. If there are multiple calls to the model, the callback will be executed multiple times. Each callback function is expected to return a structure (e.g., a dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt further processing.

TriggerAction

JSON representation
{

  // Union field action can be only one of the following:
  "respondImmediately": {
    object (RespondImmediately)
  },
  "transferAgent": {
    object (TransferAgent)
  },
  "generativeAnswer": {
    object (GenerativeAnswer)
  }
  // End of list of possible types for union field action.
}
Fields
Union field action. The action to take. action can be only one of the following:
respondImmediately

object (RespondImmediately)

Optional. Immediately respond with a preconfigured response.

transferAgent

object (TransferAgent)

Optional. Transfer the conversation to a different agent.

generativeAnswer

object (GenerativeAnswer)

Optional. Respond with a generative answer.

RespondImmediately

JSON representation
{
  "responses": [
    {
      object (Response)
    }
  ]
}
Fields
responses[]

object (Response)

Required. The canned responses for the agent to choose from. The response is chosen randomly.

Response

JSON representation
{
  "text": string,
  "disabled": boolean
}
Fields
text

string

Required. Text for the agent to respond with.

disabled

boolean

Optional. Whether the response is disabled. Disabled responses are not used by the agent.

TransferAgent

JSON representation
{
  "agent": string
}
Fields
agent

string

Required. The name of the agent to transfer the conversation to. The agent must be in the same app as the current agent. Format: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

GenerativeAnswer

JSON representation
{
  "prompt": string
}
Fields
prompt

string

Required. The prompt to use for the generative answer.

Toolset

JSON representation
{
  "name": string,
  "displayName": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "executionType": enum (ExecutionType),
  "toolFakeConfig": {
    object (ToolFakeConfig)
  },

  // Union field toolset_type can be only one of the following:
  "mcpToolset": {
    object (McpToolset)
  },
  "openApiToolset": {
    object (OpenApiToolset)
  },
  "connectorToolset": {
    object (ConnectorToolset)
  }
  // End of list of possible types for union field toolset_type.
}
Fields
name

string

Identifier. The unique identifier of the toolset. Format: projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

displayName

string

Optional. The display name of the toolset. Must be unique within the same app.

description

string

Optional. The description of the toolset.

createTime

string (Timestamp format)

Output only. Timestamp when the toolset was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when the toolset was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

etag

string

ETag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

executionType

enum (ExecutionType)

Optional. The execution type of the tools in the toolset.

toolFakeConfig

object (ToolFakeConfig)

Optional. Configuration for tools behavior in fake mode.

Union field toolset_type. The type of the toolset. toolset_type can be only one of the following:
mcpToolset

object (McpToolset)

Optional. A toolset that contains a list of tools that are offered by the MCP server.

openApiToolset

object (OpenApiToolset)

Optional. A toolset that contains a list of tools that are defined by an OpenAPI schema.

connectorToolset

object (ConnectorToolset)

Optional. A toolset that generates tools from an Integration Connectors Connection.

McpToolset

JSON representation
{
  "serverAddress": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "tlsConfig": {
    object (TlsConfig)
  }
}
Fields
serverAddress

string

Required. The address of the MCP server, for example, "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details.

apiAuthentication

object (ApiAuthentication)

Optional. Authentication information required to access tools and execute a tool against the MCP server. For bearer token authentication, the token applies only to tool execution, not to listing tools. This requires that tools can be listed without authentication.

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter.

tlsConfig

object (TlsConfig)

Optional. The TLS configuration. Includes the custom server certificates that the client should trust.

OpenApiToolset

JSON representation
{
  "openApiSchema": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "ignoreUnknownFields": boolean,
  "url": string
}
Fields
openApiSchema

string

Required. The OpenAPI schema of the toolset.

apiAuthentication

object (ApiAuthentication)

Optional. Authentication information required by the API.

tlsConfig

object (TlsConfig)

Optional. The TLS configuration. Includes the custom server certificates

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Optional. Service Directory configuration.

ignoreUnknownFields

boolean

Optional. If true, the agent will ignore unknown fields in the API response for all operations defined in the OpenAPI schema.

url

string

Optional. The server URL of the Open API schema. This field is only set in toolsets in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.

ConnectorToolset

JSON representation
{
  "connection": string,
  "authConfig": {
    object (EndUserAuthConfig)
  },
  "connectorActions": [
    {
      object (Action)
    }
  ]
}
Fields
connection

string

Required. The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}

authConfig

object (EndUserAuthConfig)

Optional. Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the Toolset creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override

connectorActions[]

object (Action)

Required. The list of connector actions/entity operations to generate tools for.

Tool Annotations

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌